public setMissedSortProperties()

in src/app/stores/migrator.ts [685:935]


  public setMissedSortProperties(state: AppStoreState) {
    for (const item of forEachObject(state.chart)) {
      if (item.kind == ObjectItemKind.Mark) {
        if (Prototypes.isType(item.mark.classID, "mark.rect")) {
          (item.mark.properties as RectElementProperties).rx = 0;
          (item.mark.properties as RectElementProperties).ry = 0;
        }
        if (Prototypes.isType(item.mark.classID, "mark.symbol")) {
          (item.mark.properties as SymbolElementProperties).rotation = 0;
        }
      }
      if (item.kind == ObjectItemKind.Chart) {
        item.object.properties.exposed = true;
      }
      if (item.kind == ObjectItemKind.ChartElement) {
        if (
          Prototypes.isType(item.chartElement.classID, "plot-segment.cartesian")
        ) {
          const element = item.chartElement as PlotSegment<CartesianProperties>;
          if (element.properties.xData) {
            element.properties.xData = this.updateAxis(
              element.properties.xData
            );
            if (element.properties.xData?.style) {
              element.properties.xData.style.showTicks = true;
              element.properties.xData.style.showBaseline = true;
            }
            element.properties.xData.offset = 0;
            element.properties.xData.barOffset = 0;
            if (element.properties.xData.orderByCategories == undefined) {
              element.properties.xData.orderByCategories =
                element.properties.xData.categories;
            }
            if (element.properties.xData.orderByExpression == undefined) {
              element.properties.xData.orderByExpression = this.parseExpression(
                element.properties.xData.expression
              );
            }
            element.properties.xData.enableSelection = true;
          }
          if (element.properties.xData === undefined) {
            element.properties.xData = null;
          }

          if (element.properties.yData) {
            element.properties.yData = this.updateAxis(
              element.properties.yData
            );
            if (element.properties.yData?.style) {
              element.properties.yData.style.showTicks = true;
              element.properties.yData.style.showBaseline = true;
            }
            element.properties.yData.offset = 0;
            element.properties.yData.barOffset = 0;
            if (element.properties.yData.orderByCategories == undefined) {
              element.properties.yData.orderByCategories =
                element.properties.yData.categories;
            }
            if (element.properties.yData.orderByExpression == undefined) {
              element.properties.yData.orderByExpression = this.parseExpression(
                element.properties.yData.expression
              );
            }
            element.properties.yData.enableSelection = true;
          }
          if (element.properties.yData === undefined) {
            element.properties.yData = null;
          }
        }
        if (
          Prototypes.isType(item.chartElement.classID, "plot-segment.polar")
        ) {
          const element = item.chartElement as PlotSegment<PolarProperties>;
          if (element.properties.xData) {
            element.properties.xData = this.updateAxis(
              element.properties.xData
            );
            if (element.properties.xData?.style) {
              element.properties.xData.style.showTicks = true;
              element.properties.xData.style.showBaseline = true;
            }
            element.properties.xData.offset = 0;
            element.properties.xData.barOffset = 0;
            if (element.properties.xData.orderByCategories == undefined) {
              element.properties.xData.orderByCategories =
                element.properties.xData.categories;
            }
            if (element.properties.xData.orderByExpression == undefined) {
              element.properties.xData.orderByExpression = this.parseExpression(
                element.properties.xData.expression
              );
            }
            element.properties.xData.enableSelection = true;
          }
          if (element.properties.xData === undefined) {
            element.properties.xData = null;
          }
          if (element.properties.yData) {
            element.properties.yData = this.updateAxis(
              element.properties.yData
            );
            if (element.properties.yData?.style) {
              element.properties.yData.style.showTicks = true;
              element.properties.yData.style.showBaseline = true;
            }
            if (element.properties.yData.orderByCategories == undefined) {
              element.properties.yData.orderByCategories =
                element.properties.yData.categories;
            }
            if (element.properties.yData.orderByExpression == undefined) {
              element.properties.yData.orderByExpression = this.parseExpression(
                element.properties.yData.expression
              );
            }
            element.properties.yData.offset = 0;
            element.properties.yData.barOffset = 0;
            element.properties.yData.enableSelection = true;
          }
          if (element.properties.yData === undefined) {
            element.properties.yData = null;
          }
        }
        if (Prototypes.isType(item.chartElement.classID, "plot-segment.line")) {
          const element = item.chartElement as PlotSegment<LineGuideProperties>;
          if (element.properties.axis) {
            element.properties.axis = this.updateAxis(element.properties.axis);
            if (element.properties.axis?.style) {
              element.properties.axis.style.showBaseline = true;
              element.properties.axis.style.showTicks = true;
            }
            if (element.properties.axis.orderByCategories == undefined) {
              element.properties.axis.orderByCategories =
                element.properties.axis.categories;
            }
            if (element.properties.axis.orderByExpression == undefined) {
              element.properties.axis.orderByExpression = this.parseExpression(
                element.properties.axis.expression
              );
            }
            element.properties.axis.enableSelection = true;
            element.properties.axis.barOffset = 0;
          }
        }
        if (
          Prototypes.isType(item.chartElement.classID, "plot-segment.curve")
        ) {
          const element = item.chartElement as PlotSegment<CurveProperties>;
          if (element.properties.xData) {
            element.properties.xData = this.updateAxis(
              element.properties.xData
            );
            if (element.properties.xData?.style) {
              element.properties.xData.style.showTicks = true;
              element.properties.xData.style.showBaseline = true;
            }
            element.properties.xData.offset = 0;
            element.properties.xData.barOffset = 0;
            if (element.properties.xData.orderByCategories == undefined) {
              element.properties.xData.orderByCategories =
                element.properties.xData.categories;
            }
            if (element.properties.xData.orderByExpression == undefined) {
              element.properties.xData.orderByExpression = this.parseExpression(
                element.properties.xData.expression
              );
            }
            element.properties.xData.enableSelection = true;
          }
          if (element.properties.xData === undefined) {
            element.properties.xData = null;
          }
          if (element.properties.yData) {
            element.properties.yData = this.updateAxis(
              element.properties.yData
            );
            if (element.properties.yData?.style) {
              element.properties.yData.style.showTicks = true;
              element.properties.yData.style.showBaseline = true;
            }
            if (element.properties.yData.orderByCategories == undefined) {
              element.properties.yData.orderByCategories =
                element.properties.yData.categories;
            }
            if (element.properties.yData.orderByExpression == undefined) {
              element.properties.yData.orderByExpression = this.parseExpression(
                element.properties.yData.expression
              );
            }
            element.properties.yData.offset = 0;
            element.properties.yData.barOffset = 0;
            element.properties.yData.enableSelection = true;
          }
          if (element.properties.yData === undefined) {
            element.properties.yData = null;
          }
        }
        if (Prototypes.isType(item.chartElement.classID, "mark.data-axis")) {
          // eslint-disable-next-line @typescript-eslint/ban-types
          const element = (item.chartElement as unknown) as Object<
            DataAxisProperties
          >;
          if (element.properties.axis) {
            element.properties.axis = this.updateAxis(element.properties.axis);
            if (element.properties.axis.orderByCategories == undefined) {
              element.properties.axis.orderByCategories =
                element.properties.axis.categories;
            }
            if (element.properties.axis.orderByExpression == undefined) {
              element.properties.axis.orderByExpression = this.parseExpression(
                element.properties.axis.expression
              );
            }
            element.properties.axis.enableSelection = true;
            element.properties.axis.barOffset = 0;

            if (element.properties.axis?.style) {
              element.properties.axis.style.showBaseline = true;
              element.properties.axis.style.showTicks = true;
            }
          }
          if (element.properties.axis === undefined) {
            element.properties.axis = null;
          }
        }
      }
      if (item.kind == ObjectItemKind.Mark) {
        if (Prototypes.isType(item.mark.classID, "mark.data-axis")) {
          // eslint-disable-next-line @typescript-eslint/ban-types
          const element = (item.mark as unknown) as Object<DataAxisProperties>;
          if (element.properties.axis) {
            element.properties.axis = this.updateAxis(element.properties.axis);
            element.properties.axis.orderByExpression = this.parseExpression(
              element.properties.axis.expression
            );
            element.properties.axis.orderByCategories =
              element.properties.axis.categories;
            element.properties.axis.enableSelection = true;

            if (element.properties.axis.style) {
              element.properties.axis.style.showBaseline = true;
              element.properties.axis.style.showTicks = true;
            }
          }
          if (element.properties.axis === undefined) {
            element.properties.axis = null;
          }
        }
      }
    }
    return state;
  }