mdt-charts 1.12.11 → 1.12.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  import { Scale } from "../scale/scale";
2
- import { AXIS_VERTICAL_LABEL_PADDING } from "../../../model/marginModel";
3
2
  import { NamesHelper } from '../../helpers/namesHelper';
4
3
  import { AxisHelper } from './axisHelper';
5
4
  import { AxisLabelHelper } from './axisLabelDomHelper';
6
5
  import { AxisDomHelper } from './axisDomHelper';
7
6
  import { select } from 'd3-selection';
8
7
  import { AxisLabelsEventManager } from './axisLabelsEventManager';
8
+ import { AXIS_VERTICAL_LABEL_PADDING } from '../../../model/margin/twoDim/twoDimMarginModel';
9
9
  const MINIMAL_STEP_SIZE_FOR_WRAPPING = 38;
10
10
  export class Axis {
11
11
  static render(block, scales, scaleModel, axisModel, blockSize) {
@@ -1,7 +1,7 @@
1
1
  import { select } from 'd3-selection';
2
- import { AXIS_HORIZONTAL_LABEL_PADDING, AXIS_VERTICAL_LABEL_PADDING } from "../../../model/marginModel";
3
2
  import { DomHelper } from '../../helpers/domHelper';
4
3
  import { Helper } from '../../helpers/helper';
4
+ import { AXIS_HORIZONTAL_LABEL_PADDING, AXIS_VERTICAL_LABEL_PADDING } from '../../../model/margin/twoDim/twoDimMarginModel';
5
5
  export class AxisLabelHelper {
6
6
  static setTitles(axisElement) {
7
7
  axisElement.selectAll('.tick text')
@@ -14,6 +14,7 @@ export declare class DataManagerModel {
14
14
  private static polarMarginCalculator;
15
15
  static getPreparedData(data: MdtChartsDataSource, allowableKeys: string[], config: MdtChartsConfig): MdtChartsDataSource;
16
16
  static initDataScope(config: MdtChartsConfig, data: MdtChartsDataSource, designerConfig: DesignerConfig, legendBlock: LegendBlockModel, modelInstance: ModelInstance): void;
17
+ private static initScopedData;
17
18
  static getDataValuesByKeyField(data: MdtChartsDataSource, dataSourceName: string, keyFieldName: string): string[];
18
19
  private static initDataScopeFor2D;
19
20
  private static initDataScopeForPolar;
@@ -17,6 +17,11 @@ export class DataManagerModel {
17
17
  else if (config.options.type === 'polar') {
18
18
  this.initDataScopeForPolar(config.options, modelInstance, data, legendBlock, designerConfig.canvas.legendBlock);
19
19
  }
20
+ this.initScopedData(data, modelInstance, config);
21
+ }
22
+ static initScopedData(data, modelInstance, config) {
23
+ const preparedData = DataManagerModel.getPreparedData(data, modelInstance.dataModel.getAllowableKeys(), config);
24
+ modelInstance.dataModel.repository.initScopedFullSource(preparedData);
20
25
  }
21
26
  static getDataValuesByKeyField(data, dataSourceName, keyFieldName) {
22
27
  return data[dataSourceName].map(dataRow => dataRow[keyFieldName]);
@@ -10,12 +10,12 @@ export class LegendModel {
10
10
  },
11
11
  bottom: {
12
12
  size: 0,
13
- margin: { top: 0, bottom: 20, left: 0, right: 0 },
13
+ margin: { top: 5, bottom: 20, left: 0, right: 0 },
14
14
  pad: 0
15
15
  },
16
16
  right: {
17
17
  size: 0,
18
- margin: { top: canvasModel.titleCanvas.getAllNeededSpace(), bottom: mb, left: 5, right: 0 },
18
+ margin: { top: canvasModel.titleCanvas.getAllNeededSpace(), bottom: mb, left: 10, right: 0 },
19
19
  pad: 0
20
20
  },
21
21
  top: {
@@ -1,5 +1,5 @@
1
1
  import { getPxPercentUnitByValue } from "../../helpers/unitsFromConfigReader";
2
- import { MarginModel } from "../../marginModel";
2
+ import { MarginModel } from "../../margin/marginModel";
3
3
  export class LegendPolarMarginCalculator {
4
4
  updateMargin(legendPosition, canvasModel, legendBlockModel, size) {
5
5
  canvasModel.legendCanvas.setPosition(legendPosition);
@@ -1,4 +1,4 @@
1
- import { MarginModel } from "../../marginModel";
1
+ import { MarginModel } from "../../margin/marginModel";
2
2
  export class TwoDimLegendModel {
3
3
  recalcMarginWith2DLegend(modelInstance, legendBlockModel) {
4
4
  const canvasModel = modelInstance.canvasModel;
@@ -7,10 +7,10 @@ export declare enum ScaleType {
7
7
  }
8
8
  export declare class ScaleModel {
9
9
  static getScaleKey(allowableKeys: string[], orient: ChartOrientation, canvasModel: CanvasModel, charts: MdtChartsTwoDimensionalChart[], barCharts: MdtChartsTwoDimensionalChart[]): ScaleKeyModel;
10
- static getScaleLinear(options: MdtChartsTwoDimensionalOptions, data: MdtChartsDataSource, canvasModel: CanvasModel): ScaleValueModel;
10
+ static getScaleLinear(options: MdtChartsTwoDimensionalOptions, dataRows: MdtChartsDataRow[], canvasModel: CanvasModel): ScaleValueModel;
11
11
  static getRangePeek(scaleType: ScaleType, chartOrientation: string, canvasModel: CanvasModel): number;
12
12
  static getDateValueDomain(data: MdtChartsDataSource, chart: IntervalChart, keyAxisPosition: AxisPosition, dataSource: string): [Date, Date];
13
- static getLinearDomain(configDomain: NumberDomain, data: MdtChartsDataSource, configOptions: MdtChartsTwoDimensionalOptions): [number, number];
13
+ static getLinearDomain(configDomain: NumberDomain, dataRows: MdtChartsDataRow[], configOptions: MdtChartsTwoDimensionalOptions): [number, number];
14
14
  static getScaleKeyType(charts: MdtChartsTwoDimensionalChart[]): ScaleKeyType;
15
15
  static getScaleValueType(charts: MdtChartsTwoDimensionalChart[] | IntervalChart[]): ScaleValueType;
16
16
  static getElementsAmount(barCharts: MdtChartsTwoDimensionalChart[]): number;
@@ -16,9 +16,9 @@ export class ScaleModel {
16
16
  elementsAmount: this.getElementsAmount(barCharts)
17
17
  };
18
18
  }
19
- static getScaleLinear(options, data, canvasModel) {
19
+ static getScaleLinear(options, dataRows, canvasModel) {
20
20
  return {
21
- domain: ScaleModel.getLinearDomain(options.axis.value.domain, data, options),
21
+ domain: ScaleModel.getLinearDomain(options.axis.value.domain, dataRows, options),
22
22
  range: {
23
23
  start: 0,
24
24
  end: ScaleModel.getRangePeek(ScaleType.Value, options.orientation, canvasModel)
@@ -43,15 +43,15 @@ export class ScaleModel {
43
43
  return [domainPeekMin, domainPeekMax];
44
44
  return [domainPeekMax, domainPeekMin];
45
45
  }
46
- static getLinearDomain(configDomain, data, configOptions) {
46
+ static getLinearDomain(configDomain, dataRows, configOptions) {
47
47
  let domainPeekMin;
48
48
  let domainPeekMax;
49
49
  if (configDomain.start === -1)
50
- domainPeekMin = this.getScaleMinValue(configOptions.charts, data[configOptions.data.dataSource]);
50
+ domainPeekMin = this.getScaleMinValue(configOptions.charts, dataRows);
51
51
  else
52
52
  domainPeekMin = configDomain.start;
53
53
  if (configDomain.end === -1)
54
- domainPeekMax = this.getScaleMaxValue(configOptions.charts, data[configOptions.data.dataSource]);
54
+ domainPeekMax = this.getScaleMaxValue(configOptions.charts, dataRows);
55
55
  else
56
56
  domainPeekMax = configDomain.end;
57
57
  if (configOptions.axis.key.position === 'start')
@@ -0,0 +1,11 @@
1
+ import { MdtChartsConfig, MdtChartsDataSource, MdtChartsTwoDimensionalOptions } from "../../config/config";
2
+ import { DesignerConfig } from "../../designer/designerConfig";
3
+ import { LegendBlockModel, Orient, OtherCommonComponents } from "../model";
4
+ import { ModelInstance } from "../modelInstance/modelInstance";
5
+ import { CanvasModel } from "../modelInstance/canvasModel/canvasModel";
6
+ export declare class MarginModel {
7
+ static initMargin(designerConfig: DesignerConfig, config: MdtChartsConfig, otherComponents: OtherCommonComponents, data: MdtChartsDataSource, modelInstance: ModelInstance): void;
8
+ static recalcMarginByVerticalAxisLabel(modelInstance: ModelInstance, options: MdtChartsTwoDimensionalOptions, designerConfig: DesignerConfig): void;
9
+ static appendToGlobalMarginValuesLegendMargin(canvasModel: CanvasModel, position: Orient, legendBlockModel: LegendBlockModel): void;
10
+ private static recalcMarginByTitle;
11
+ }
@@ -0,0 +1,26 @@
1
+ import { TwoDimMarginModel } from "./twoDim/twoDimMarginModel";
2
+ export class MarginModel {
3
+ static initMargin(designerConfig, config, otherComponents, data, modelInstance) {
4
+ const canvasModel = modelInstance.canvasModel;
5
+ canvasModel.initMargin(Object.assign({}, designerConfig.canvas.chartBlockMargin));
6
+ this.recalcMarginByTitle(canvasModel, otherComponents.titleBlock);
7
+ if (config.options.type === '2d') {
8
+ const twoDimModel = new TwoDimMarginModel();
9
+ twoDimModel.recalcMargin(designerConfig, config.options, otherComponents, data, modelInstance);
10
+ }
11
+ }
12
+ static recalcMarginByVerticalAxisLabel(modelInstance, options, designerConfig) {
13
+ const twoDimModel = new TwoDimMarginModel();
14
+ twoDimModel.recalcMarginByVerticalAxisLabel(modelInstance, options, designerConfig);
15
+ }
16
+ static appendToGlobalMarginValuesLegendMargin(canvasModel, position, legendBlockModel) {
17
+ const legendCoordinate = legendBlockModel.coordinate;
18
+ if (position === 'left' || position === 'right')
19
+ canvasModel.increaseMarginSide(position, legendCoordinate[position].margin.left + legendCoordinate[position].margin.right);
20
+ else
21
+ canvasModel.increaseMarginSide(position, legendCoordinate[position].margin.top + legendCoordinate[position].margin.bottom);
22
+ }
23
+ static recalcMarginByTitle(canvasModel, titleBlockModel) {
24
+ canvasModel.increaseMarginSide("top", titleBlockModel.margin.top + titleBlockModel.size + titleBlockModel.margin.bottom);
25
+ }
26
+ }
@@ -0,0 +1,14 @@
1
+ import { MdtChartsDataSource, MdtChartsTwoDimensionalOptions } from "../../../config/config";
2
+ import { DesignerConfig } from "../../../designer/designerConfig";
3
+ import { OtherCommonComponents } from "../../model";
4
+ import { ModelInstance } from "../../modelInstance/modelInstance";
5
+ export declare const AXIS_HORIZONTAL_LABEL_PADDING = 15;
6
+ export declare const AXIS_VERTICAL_LABEL_PADDING = 10;
7
+ export declare class TwoDimMarginModel {
8
+ private twoDimLegendModel;
9
+ recalcMargin(designerConfig: DesignerConfig, options: MdtChartsTwoDimensionalOptions, otherComponents: OtherCommonComponents, data: MdtChartsDataSource, modelInstance: ModelInstance): void;
10
+ recalcMarginByVerticalAxisLabel(modelInstance: ModelInstance, options: MdtChartsTwoDimensionalOptions, designerConfig: DesignerConfig): void;
11
+ private getHorizontalMarginByAxisLabels;
12
+ private recalcVerticalMarginByAxisLabelHeight;
13
+ private recalcHorizontalMarginByAxisLabelWidth;
14
+ }
@@ -0,0 +1,69 @@
1
+ import { DataManagerModel } from "../../dataManagerModel/dataManagerModel";
2
+ import { AxisModel } from "../../featuresModel/axisModel";
3
+ import { TwoDimLegendModel } from "../../featuresModel/legendModel/twoDimLegendModel";
4
+ import { keyAxisLabelHorizontalLog, keyAxisLabelVerticalLog } from "../../featuresModel/scaleModel/scaleAxisRecalcer";
5
+ import { AxisType } from "../../modelBuilder";
6
+ import { TwoDimensionalModel } from "../../notations/twoDimensionalModel";
7
+ export const AXIS_HORIZONTAL_LABEL_PADDING = 15;
8
+ export const AXIS_VERTICAL_LABEL_PADDING = 10;
9
+ export class TwoDimMarginModel {
10
+ constructor() {
11
+ this.twoDimLegendModel = new TwoDimLegendModel();
12
+ }
13
+ recalcMargin(designerConfig, options, otherComponents, data, modelInstance) {
14
+ const canvasModel = modelInstance.canvasModel;
15
+ this.twoDimLegendModel.recalcMarginWith2DLegend(modelInstance, otherComponents.legendBlock);
16
+ const labelSize = this.getHorizontalMarginByAxisLabels(designerConfig.canvas.axisLabel.maxSize.main, options.axis, data, options);
17
+ this.recalcVerticalMarginByAxisLabelHeight(labelSize, canvasModel, options.orientation, options.axis);
18
+ // Если встроенный лейбл показывает ключи, то лейблы оси ключей не показываются
19
+ // При этом все графики должны иметь: embeddedLabels = 'key'
20
+ // И все графики должны быть типа bar.
21
+ const showingFlag = options.type === '2d'
22
+ ? !TwoDimensionalModel.getChartsEmbeddedLabelsFlag(options.charts, options.orientation)
23
+ : true;
24
+ this.recalcHorizontalMarginByAxisLabelWidth(labelSize, canvasModel, options.orientation, options.axis, showingFlag);
25
+ }
26
+ recalcMarginByVerticalAxisLabel(modelInstance, options, designerConfig) {
27
+ if (options.orientation === 'vertical') {
28
+ const dataModel = modelInstance.dataModel;
29
+ const axisLabelSize = AxisModel.getLabelSize(designerConfig.canvas.axisLabel.maxSize.main, dataModel.getAllowableKeys());
30
+ const axisConfig = AxisModel.getKeyAxisLabelPosition(modelInstance.canvasModel, dataModel.getAllowableKeys().length, options.axis.key);
31
+ const marginOrient = options.axis.key.position === 'end' ? 'bottom' : 'top';
32
+ if (axisConfig === 'rotated') {
33
+ modelInstance.canvasModel.decreaseMarginSide(marginOrient, axisLabelSize.height);
34
+ modelInstance.canvasModel.increaseMarginSide(marginOrient, axisLabelSize.width, keyAxisLabelVerticalLog);
35
+ }
36
+ }
37
+ }
38
+ getHorizontalMarginByAxisLabels(labelsMaxWidth, axis, data, options) {
39
+ const keyAxisOrient = AxisModel.getAxisOrient(AxisType.Key, options.orientation, axis.key.position);
40
+ let labelsTexts;
41
+ if (keyAxisOrient === 'left' || keyAxisOrient === 'right') {
42
+ labelsTexts = DataManagerModel.getDataValuesByKeyField(data, options.data.dataSource, options.data.keyField.name);
43
+ }
44
+ else {
45
+ labelsTexts = ['0000'];
46
+ }
47
+ return AxisModel.getLabelSize(labelsMaxWidth, labelsTexts);
48
+ }
49
+ recalcVerticalMarginByAxisLabelHeight(labelSize, canvasModel, orientation, axis) {
50
+ const keyAxisOrient = AxisModel.getAxisOrient(AxisType.Key, orientation, axis.key.position);
51
+ const valueAxisOrient = AxisModel.getAxisOrient(AxisType.Value, orientation, axis.value.position);
52
+ if ((keyAxisOrient === 'bottom' || keyAxisOrient === 'top')) {
53
+ if (axis.key.visibility)
54
+ canvasModel.increaseMarginSide(keyAxisOrient, labelSize.height + AXIS_HORIZONTAL_LABEL_PADDING, keyAxisLabelVerticalLog);
55
+ }
56
+ else if (axis.value.visibility)
57
+ canvasModel.increaseMarginSide(valueAxisOrient, labelSize.height + AXIS_HORIZONTAL_LABEL_PADDING);
58
+ }
59
+ recalcHorizontalMarginByAxisLabelWidth(labelSize, canvasModel, orientation, axis, isShow) {
60
+ const keyAxisOrient = AxisModel.getAxisOrient(AxisType.Key, orientation, axis.key.position);
61
+ const valueAxisOrient = AxisModel.getAxisOrient(AxisType.Value, orientation, axis.value.position);
62
+ if ((keyAxisOrient === 'left' || keyAxisOrient === 'right') && isShow && axis.key.visibility) {
63
+ canvasModel.increaseMarginSide(keyAxisOrient, labelSize.width + AXIS_VERTICAL_LABEL_PADDING, keyAxisLabelHorizontalLog);
64
+ }
65
+ else if ((valueAxisOrient === 'left' || valueAxisOrient === 'right') && axis.value.visibility) {
66
+ canvasModel.increaseMarginSide(valueAxisOrient, labelSize.width + AXIS_VERTICAL_LABEL_PADDING);
67
+ }
68
+ }
69
+ }
@@ -13,4 +13,3 @@ export declare const CLASSES: {
13
13
  };
14
14
  export declare function assembleModel(config: MdtChartsConfig, data: MdtChartsDataSource, designerConfig: DesignerConfig): Model;
15
15
  export declare function getPreparedData(model: Model, data: MdtChartsDataSource, config: MdtChartsConfig): MdtChartsDataSource;
16
- export declare function getUpdatedModel(config: MdtChartsConfig, data: MdtChartsDataSource, designerConfig: DesignerConfig): Model;
@@ -1,4 +1,4 @@
1
- import { MarginModel } from './marginModel';
1
+ import { MarginModel } from './margin/marginModel';
2
2
  import { TwoDimensionalModel } from './notations/twoDimensionalModel';
3
3
  import { PolarModel } from './notations/polar/polarModel';
4
4
  import { DataManagerModel } from './dataManagerModel/dataManagerModel';
@@ -30,16 +30,16 @@ function getChartBlockModel(modelInstance) {
30
30
  margin: modelInstance.canvasModel.getMargin()
31
31
  };
32
32
  }
33
- function getOptions(config, designerConfig, modelInstance, data) {
33
+ function getOptions(config, designerConfig, modelInstance) {
34
34
  //TODO: migrate to polymorphism
35
35
  if (config.options.type === '2d') {
36
- return TwoDimensionalModel.getOptions(config.options, designerConfig, data, modelInstance);
36
+ return TwoDimensionalModel.getOptions(config.options, designerConfig, modelInstance);
37
37
  }
38
38
  else if (config.options.type === 'polar') {
39
39
  return PolarModel.getOptions(config.options, designerConfig, modelInstance);
40
40
  }
41
41
  else if (config.options.type === 'interval') {
42
- return IntervalModel.getOptions(config, designerConfig, modelInstance.canvasModel.getMargin(), modelInstance.dataModel.getScope(), data, modelInstance);
42
+ return IntervalModel.getOptions(config.options, designerConfig, modelInstance);
43
43
  }
44
44
  }
45
45
  function getDataSettings(dataScope, designerConfig) {
@@ -70,13 +70,11 @@ export function assembleModel(config, data, designerConfig) {
70
70
  const otherComponents = OtherComponentsModel.getOtherComponentsModel({ elementsOptions: designerConfig.elementsOptions, title: config.options.title }, modelInstance);
71
71
  MarginModel.initMargin(designerConfig, config, otherComponents, data, modelInstance);
72
72
  DataManagerModel.initDataScope(config, data, designerConfig, otherComponents.legendBlock, modelInstance);
73
- const preparedData = DataManagerModel.getPreparedData(data, modelInstance.dataModel.getAllowableKeys(), config);
74
- modelInstance.dataModel.repository.initScopedFullSource(preparedData);
75
73
  if (config.options.type === '2d' && config.options.axis.key.visibility)
76
- MarginModel.recalcMarginByVerticalAxisLabel(modelInstance, config, designerConfig, modelInstance.dataModel.getScope());
74
+ MarginModel.recalcMarginByVerticalAxisLabel(modelInstance, config.options, designerConfig);
77
75
  const blockCanvas = getBlockCanvas(config, modelInstance);
78
76
  const chartBlock = getChartBlockModel(modelInstance);
79
- const options = getOptions(config, designerConfig, modelInstance, preparedData);
77
+ const options = getOptions(config, designerConfig, modelInstance);
80
78
  const dataSettings = getDataSettings(modelInstance.dataModel.getScope(), designerConfig);
81
79
  const transitions = getTransitions(designerConfig);
82
80
  modelInstance.canvasModel.roundMargin();
@@ -111,6 +109,3 @@ export function getPreparedData(model, data, config) {
111
109
  const preparedData = DataManagerModel.getPreparedData(data, model.dataSettings.scope.allowableKeys, config);
112
110
  return preparedData;
113
111
  }
114
- export function getUpdatedModel(config, data, designerConfig) {
115
- return assembleModel(config, data, designerConfig);
116
- }
@@ -1,9 +1,9 @@
1
- import { MdtChartsConfig, MdtChartsDataSource, MdtChartsIntervalOptions } from "../../config/config";
1
+ import { MdtChartsIntervalOptions } from "../../config/config";
2
2
  import { DesignerConfig } from "../../designer/designerConfig";
3
- import { AdditionalElementsOptions, BlockMargin, DataScope, IntervalOptionsModel } from "../model";
3
+ import { AdditionalElementsOptions, IntervalOptionsModel } from "../model";
4
4
  import { ModelInstance } from "../modelInstance/modelInstance";
5
5
  export declare class IntervalModel {
6
- static getOptions(config: MdtChartsConfig, designerConfig: DesignerConfig, margin: BlockMargin, dataScope: DataScope, data: MdtChartsDataSource, modelInstance: ModelInstance): IntervalOptionsModel;
6
+ static getOptions(options: MdtChartsIntervalOptions, designerConfig: DesignerConfig, modelInstance: ModelInstance): IntervalOptionsModel;
7
7
  static getAdditionalElements(options: MdtChartsIntervalOptions): AdditionalElementsOptions;
8
8
  private static getChartsModel;
9
9
  }
@@ -5,9 +5,9 @@ import { AxisType } from "../modelBuilder";
5
5
  import { ScaleModel, ScaleType } from "../featuresModel/scaleModel/scaleModel";
6
6
  import { TwoDimensionalModel } from "./twoDimensionalModel";
7
7
  export class IntervalModel {
8
- static getOptions(config, designerConfig, margin, dataScope, data, modelInstance) {
9
- const options = config.options;
8
+ static getOptions(options, designerConfig, modelInstance) {
10
9
  const canvasModel = modelInstance.canvasModel;
10
+ const dataModelRep = modelInstance.dataModel.repository;
11
11
  return {
12
12
  legend: canvasModel.legendCanvas.getModel(),
13
13
  title: options.title,
@@ -15,7 +15,7 @@ export class IntervalModel {
15
15
  orient: options.orientation,
16
16
  scale: {
17
17
  key: {
18
- domain: dataScope.allowableKeys,
18
+ domain: modelInstance.dataModel.getAllowableKeys(),
19
19
  range: {
20
20
  start: 0,
21
21
  end: ScaleModel.getRangePeek(ScaleType.Key, options.orientation, canvasModel)
@@ -24,7 +24,7 @@ export class IntervalModel {
24
24
  elementsAmount: 1
25
25
  },
26
26
  value: {
27
- domain: ScaleModel.getDateValueDomain(data, options.chart, options.axis.key.position, options.data.dataSource),
27
+ domain: ScaleModel.getDateValueDomain(dataModelRep.getScopedFullSource(), options.chart, options.axis.key.position, options.data.dataSource),
28
28
  range: {
29
29
  start: 0,
30
30
  end: ScaleModel.getRangePeek(ScaleType.Value, options.orientation, canvasModel)
@@ -43,8 +43,8 @@ export class IntervalModel {
43
43
  cssClass: 'key-axis',
44
44
  ticks: options.axis.key.ticks,
45
45
  labels: {
46
- maxSize: AxisModel.getLabelSize(designerConfig.canvas.axisLabel.maxSize.main, data[options.data.dataSource].map(d => d[options.data.keyField.name])).width,
47
- position: AxisModel.getKeyAxisLabelPosition(canvasModel, DataManagerModel.getDataValuesByKeyField(data, options.data.dataSource, options.data.keyField.name).length),
46
+ maxSize: AxisModel.getLabelSize(designerConfig.canvas.axisLabel.maxSize.main, dataModelRep.getScopedRows().map(d => d[options.data.keyField.name])).width,
47
+ position: AxisModel.getKeyAxisLabelPosition(canvasModel, DataManagerModel.getDataValuesByKeyField(dataModelRep.getScopedFullSource(), options.data.dataSource, options.data.keyField.name).length),
48
48
  visible: true,
49
49
  defaultTooltip: designerConfig.elementsOptions.tooltip.position === 'fixed'
50
50
  },
@@ -1,9 +1,9 @@
1
- import { ChartOrientation, MdtChartsDataSource, MdtChartsTwoDimensionalChart, MdtChartsTwoDimensionalOptions } from "../../config/config";
1
+ import { ChartOrientation, MdtChartsTwoDimensionalChart, MdtChartsTwoDimensionalOptions } from "../../config/config";
2
2
  import { BarOptionsCanvas, DesignerConfig } from "../../designer/designerConfig";
3
3
  import { TwoDimensionalOptionsModel, TwoDimChartElementsSettings } from "../model";
4
4
  import { ModelInstance } from "../modelInstance/modelInstance";
5
5
  export declare class TwoDimensionalModel {
6
- static getOptions(options: MdtChartsTwoDimensionalOptions, designerConfig: DesignerConfig, data: MdtChartsDataSource, modelInstance: ModelInstance): TwoDimensionalOptionsModel;
6
+ static getOptions(options: MdtChartsTwoDimensionalOptions, designerConfig: DesignerConfig, modelInstance: ModelInstance): TwoDimensionalOptionsModel;
7
7
  static getChartsEmbeddedLabelsFlag(charts: MdtChartsTwoDimensionalChart[], chartOrientation: ChartOrientation): boolean;
8
8
  /**
9
9
  * Сортирует список чартов в порядке: area - bar - line.
@@ -4,9 +4,10 @@ import { AxisModel } from "../featuresModel/axisModel";
4
4
  import { ScaleAxisRecalcer } from "../featuresModel/scaleModel/scaleAxisRecalcer";
5
5
  import { ScaleModel } from "../featuresModel/scaleModel/scaleModel";
6
6
  export class TwoDimensionalModel {
7
- static getOptions(options, designerConfig, data, modelInstance) {
7
+ static getOptions(options, designerConfig, modelInstance) {
8
8
  const canvasModel = modelInstance.canvasModel;
9
- const scaleMarginRecalcer = new ScaleAxisRecalcer(() => ScaleModel.getScaleLinear(options, data, canvasModel));
9
+ const dataModelRep = modelInstance.dataModel.repository;
10
+ const scaleMarginRecalcer = new ScaleAxisRecalcer(() => ScaleModel.getScaleLinear(options, dataModelRep.getScopedRows(), canvasModel));
10
11
  scaleMarginRecalcer.recalculateMargin(canvasModel, options.orientation, options.axis.key);
11
12
  const scaleValueInfo = scaleMarginRecalcer.getScaleValue();
12
13
  return {
@@ -19,7 +20,7 @@ export class TwoDimensionalModel {
19
20
  value: scaleValueInfo.scale
20
21
  },
21
22
  axis: {
22
- key: AxisModel.getKeyAxis(options, data, designerConfig.canvas.axisLabel, canvasModel, designerConfig.elementsOptions.tooltip, () => scaleValueInfo.scaleFn(0)),
23
+ key: AxisModel.getKeyAxis(options, dataModelRep.getScopedFullSource(), designerConfig.canvas.axisLabel, canvasModel, designerConfig.elementsOptions.tooltip, () => scaleValueInfo.scaleFn(0)),
23
24
  value: AxisModel.getValueAxis(options.orientation, options.axis.value, designerConfig.canvas.axisLabel, canvasModel)
24
25
  },
25
26
  type: options.type,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdt-charts",
3
- "version": "1.12.11",
3
+ "version": "1.12.12",
4
4
  "description": "",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {