@carbon/charts 0.41.78 → 0.41.82
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.
- package/CHANGELOG.md +35 -0
- package/build/demo/data/line.d.ts +20 -0
- package/build/src/interfaces/events.d.ts +4 -4
- package/bundle.js +1 -1
- package/components/graphs/radar.js +3 -2
- package/components/graphs/radar.js.map +1 -1
- package/components/graphs/scatter.js +2 -2
- package/components/graphs/scatter.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/index.js +5 -0
- package/demo/data/index.js.map +1 -1
- package/demo/data/line.d.ts +20 -0
- package/demo/data/line.js +22 -0
- package/demo/data/line.js.map +1 -1
- package/demo/tsconfig.tsbuildinfo +3 -3
- package/interfaces/events.d.ts +4 -4
- package/interfaces/events.js +4 -4
- package/interfaces/events.js.map +1 -1
- package/package.json +1 -1
- package/services/scales-cartesian.js +13 -3
- package/services/scales-cartesian.js.map +1 -1
- package/tsconfig.tsbuildinfo +5 -5
package/interfaces/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,KAOX;AAPD,WAAY,KAAK;IAChB,4CAAmC,CAAA;IACnC,gCAAuB,CAAA;IACvB,sCAA6B,CAAA;IAC7B,iCAAiC;IACjC,yBAAyB;IACzB,oCAA2B,CAAA;AAC5B,CAAC,EAPW,KAAK,KAAL,KAAK,QAOhB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,KAEX;AAFD,WAAY,KAAK;IAChB,gCAAuB,CAAA;AACxB,CAAC,EAFW,KAAK,KAAL,KAAK,QAEhB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IAClB,4DAAiD,CAAA;IACjD,4DAAiD,CAAA;AAClD,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IAClB,qCAA0B,CAAA;IAC1B,uDAA4C,CAAA;IAC5C,mEAAwD,CAAA;IACxD,mDAAwC,CAAA;AACzC,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACrB,2CAA6B,CAAA;AAC9B,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,+CAAiC,CAAA;IACjC,iDAAmC,CAAA;AACpC,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,IAKX;AALD,WAAY,IAAI;IACf,gDAAwC,CAAA;IACxC,gDAAwC,CAAA;IACxC,wCAAgC,CAAA;IAChC,8CAAsC,CAAA;AACvC,CAAC,EALW,IAAI,KAAJ,IAAI,QAKf;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,IAKX;AALD,WAAY,IAAI;IACf,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * enum of all events related to the chart on the DOM\n */\nexport enum Chart {\n\tRENDER_FINISHED = 'render-finished',\n\tRESIZE = 'chart-resize',\n\tMOUSEOVER = 'chart-mouseover',\n\t// MOUSEMOVE = \"chart-mousemove\",\n\t// CLICK = \"chart-click\",\n\tMOUSEOUT = 'chart-mouseout',\n}\n\n/**\n * enum of all events related to the chart model\n */\nexport enum Model {\n\tUPDATE = 'model-update',\n}\n\n/**\n * enum of all toolbar events\n */\nexport enum Toolbar {\n\tSHOW_OVERFLOW_MENU = 'show-toolbar-overflow-menu',\n\tHIDE_OVERFLOW_MENU = 'hide-toolbar-overflow-menu',\n}\n\n/**\n * enum of all events related to the zoom-bar\n */\nexport enum ZoomBar {\n\tUPDATE = 'zoom-bar-update',\n\tSELECTION_START = 'zoom-bar-selection-start',\n\tSELECTION_IN_PROGRESS = 'zoom-bar-selection-in-progress',\n\tSELECTION_END = 'zoom-bar-selection-end',\n}\n\n/**\n * enum of all events related to the zoom domain\n */\nexport enum ZoomDomain {\n\tCHANGE = 'zoom-domain-change',\n}\n\n/** enum of all events related to canvas zoom *\n *\n */\nexport enum CanvasZoom {\n\tCANVAS_ZOOM_IN = 'canvas-zoom-in',\n\tCANVAS_ZOOM_OUT = 'canvas-zoom-out',\n}\n\n/**\n * enum of all axis-related events\n */\nexport enum Axis {\n\tLABEL_MOUSEOVER = 'axis-label-mouseover',\n\tLABEL_MOUSEMOVE = 'axis-label-mousemove',\n\tLABEL_CLICK = 'axis-label-click',\n\tLABEL_MOUSEOUT = 'axis-label-mouseout',\n}\n\n/**\n * enum of all area graph events\n */\nexport enum Area {\n\tPOINT_MOUSEOVER = 'scatter-mouseover',\n\tPOINT_MOUSEMOVE = 'scatter-mousemove',\n\tPOINT_CLICK = 'scatter-click',\n\tPOINT_MOUSEOUT = 'scatter-mouseout',\n}\n\n/**\n * enum of all wordcloud graph events\n */\nexport enum WordCloud {\n\tWORD_MOUSEOVER = 'wordcloud-word-mouseover',\n\tWORD_MOUSEMOVE = 'wordcloud-word-mousemove',\n\tWORD_CLICK = 'wordcloud-word-click',\n\tWORD_MOUSEOUT = 'wordcloud-word-mouseout',\n}\n\n/**\n * enum of all pie graph events\n */\nexport enum Pie {\n\tSLICE_MOUSEOVER = 'pie-slice-mouseover',\n\tSLICE_MOUSEMOVE = 'pie-slice-mousemove',\n\tSLICE_CLICK = 'pie-slice-click',\n\tSLICE_MOUSEOUT = 'pie-slice-mouseout',\n}\n\n/**\n * enum of all gauge graph events\n */\nexport enum Gauge {\n\tARC_MOUSEOVER = 'gauge-arc-mouseover',\n\tARC_MOUSEMOVE = 'gauge-arc-mousemove',\n\tARC_CLICK = 'gauge-arc-click',\n\tARC_MOUSEOUT = 'gauge-arc-mouseout',\n}\n\n/**\n * enum of all bar graph events\n */\nexport enum Bar {\n\tBAR_MOUSEOVER = 'bar-mouseover',\n\tBAR_MOUSEMOVE = 'bar-mousemove',\n\tBAR_CLICK = 'bar-click',\n\tBAR_MOUSEOUT = 'bar-mouseout',\n}\n\n/**\n * enum of all boxplot graph events\n */\nexport enum Boxplot {\n\tBOX_MOUSEOVER = 'box-mouseover',\n\tBOX_MOUSEMOVE = 'box-mousemove',\n\tBOX_CLICK = 'box-click',\n\tBOX_MOUSEOUT = 'box-mouseout',\n\tOUTLIER_MOUSEOVER = 'outlier-mouseover',\n\tOUTLIER_MOUSEMOVE = 'outlier-mousemove',\n\tOUTLIER_CLICK = 'outlier-click',\n\tOUTLIER_MOUSEOUT = 'outlier-mouseout',\n}\n\n/**\n * enum of all scatter graph events\n */\nexport enum Scatter {\n\tSCATTER_MOUSEOVER = 'scatter-mouseover',\n\tSCATTER_MOUSEMOVE = 'scatter-mousemove',\n\tSCATTER_CLICK = 'scatter-click',\n\tSCATTER_MOUSEOUT = 'scatter-mouseout',\n}\n\n/**\n * enum of all line graph events\n */\nexport enum Line {\n\tPOINT_MOUSEOVER = 'scatter-mouseover',\n\tPOINT_MOUSEMOVE = 'scatter-mousemove',\n\tPOINT_CLICK = 'scatter-click',\n\tPOINT_MOUSEOUT = 'scatter-mouseout',\n}\n\n/**\n * enum of all radar graph events\n */\nexport enum Radar {\n\tX_AXIS_MOUSEOVER = 'radar-x-axis-mouseover',\n\tX_AXIS_MOUSEMOVE = 'radar-x-axis-mousemove',\n\tX_AXIS_CLICK = 'radar-x-axis-click',\n\tX_AXIS_MOUSEOUT = 'radar-x-axis-mouseout',\n}\n\n/**\n * enum of all treemap graph events\n */\nexport enum Treemap {\n\tLEAF_MOUSEOVER = 'leaf-mouseover',\n\tLEAF_MOUSEMOVE = 'leaf-mousemove',\n\tLEAF_CLICK = 'leaf-click',\n\tLEAF_MOUSEOUT = 'leaf-mouseout',\n}\n\n/**\n * enum of all tooltip events\n */\nexport enum Tooltip {\n\tSHOW = 'show-tooltip',\n\tMOVE = 'move-tooltip',\n\tHIDE = 'hide-tooltip',\n}\n\n/**\n * enum of all threshold events\n */\nexport enum Threshold {\n\tSHOW = 'show-threshold',\n\tHIDE = 'hide-threshold',\n}\n\n/**\n * enum of all legend related events\n */\nexport enum Legend {\n\tITEM_HOVER = 'legend-item-onhover',\n\tITEM_CLICK = 'legend-item-onclick',\n\tITEM_MOUSEOUT = 'legend-item-onmouseout',\n\tITEMS_UPDATE = 'legend-items-update',\n}\n\n/**\n * enum of all circlepack related events\n */\nexport enum CirclePack {\n\tCIRCLE_MOUSEOVER = 'circle-leaf-mouseover',\n\tCIRCLE_CLICK = 'circle-leaf-click',\n\tCIRCLE_MOUSEOUT = 'circle-leaf-mouseout',\n\tCIRCLE_MOUSEMOVE = 'circle-leaf-mousemove',\n}\n"]}
|
package/package.json
CHANGED
|
@@ -281,7 +281,7 @@ var CartesianScales = /** @class */ (function (_super) {
|
|
|
281
281
|
return addSpacingToTimeDomain(domain, spaceToAddToEdges);
|
|
282
282
|
}
|
|
283
283
|
else {
|
|
284
|
-
return addSpacingToContinuousDomain(domain, Configuration.axis.paddingRatio);
|
|
284
|
+
return addSpacingToContinuousDomain(domain, Configuration.axis.paddingRatio, axisOptions.scaleType);
|
|
285
285
|
}
|
|
286
286
|
};
|
|
287
287
|
CartesianScales.prototype.findVerticalAxesPositions = function () {
|
|
@@ -437,7 +437,10 @@ var CartesianScales = /** @class */ (function (_super) {
|
|
|
437
437
|
}
|
|
438
438
|
});
|
|
439
439
|
}
|
|
440
|
-
|
|
440
|
+
// Time can never be 0 and log of base 0 is -Infinity
|
|
441
|
+
if (scaleType !== ScaleTypes.TIME &&
|
|
442
|
+
scaleType !== ScaleTypes.LOG &&
|
|
443
|
+
includeZero) {
|
|
441
444
|
allDataValues.push(0);
|
|
442
445
|
}
|
|
443
446
|
// Add threshold values into the scale
|
|
@@ -569,7 +572,7 @@ function addSpacingToTimeDomain(domain, spaceToAddToEdges) {
|
|
|
569
572
|
}
|
|
570
573
|
return [startDate, endDate];
|
|
571
574
|
}
|
|
572
|
-
function addSpacingToContinuousDomain(_a, paddingRatio) {
|
|
575
|
+
function addSpacingToContinuousDomain(_a, paddingRatio, scaleType) {
|
|
573
576
|
var lower = _a[0], upper = _a[1];
|
|
574
577
|
var domainLength = upper - lower;
|
|
575
578
|
var padding = domainLength * paddingRatio;
|
|
@@ -577,6 +580,13 @@ function addSpacingToContinuousDomain(_a, paddingRatio) {
|
|
|
577
580
|
var newUpper = upper <= 0 && upper + padding > 0 ? 0 : upper + padding;
|
|
578
581
|
// If padding crosses 0, keep 0 as new lower bound
|
|
579
582
|
var newLower = lower >= 0 && lower - padding < 0 ? 0 : lower - padding;
|
|
583
|
+
// Log of base 0 or a negative number is -Infinity
|
|
584
|
+
if (scaleType === ScaleTypes.LOG && newLower <= 0) {
|
|
585
|
+
if (lower <= 0) {
|
|
586
|
+
throw Error('Data must have values greater than 0 if log scale type is used.');
|
|
587
|
+
}
|
|
588
|
+
newLower = lower;
|
|
589
|
+
}
|
|
580
590
|
return [newLower, newUpper];
|
|
581
591
|
}
|
|
582
592
|
//# sourceMappingURL=../../src/services/scales-cartesian.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scales-cartesian.js","sourceRoot":"","sources":["scales-cartesian.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport * as Configuration from '../configuration';\nimport { Service } from './service';\nimport {\n\tAxisPositions,\n\tCartesianOrientations,\n\tScaleTypes,\n\tThresholdOptions,\n} from '../interfaces';\nimport { Tools } from '../tools';\n\n// D3 Imports\nimport { scaleBand, scaleLinear, scaleTime, scaleLog } from 'd3-scale';\nimport { extent, sum } from 'd3-array';\nimport { map, values } from 'd3-collection';\n\n// Misc\nimport {\n\tdifferenceInYears,\n\taddYears,\n\tsubYears,\n\tdifferenceInMonths,\n\taddMonths,\n\tsubMonths,\n\tdifferenceInDays,\n\taddDays,\n\tsubDays,\n\tdifferenceInHours,\n\taddHours,\n\tsubHours,\n\tdifferenceInMinutes,\n\taddMinutes,\n\tsubMinutes,\n\tdifferenceInSeconds,\n\tsubSeconds,\n\taddSeconds,\n} from 'date-fns';\n\nexport class CartesianScales extends Service {\n\tprotected scaleTypes = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected scales = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected domainAxisPosition: AxisPositions;\n\tprotected rangeAxisPosition: AxisPositions;\n\tprotected secondaryDomainAxisPosition: AxisPositions;\n\tprotected secondaryRangeAxisPosition: AxisPositions;\n\n\tprotected dualAxes: Boolean;\n\n\tprotected orientation: CartesianOrientations;\n\n\tgetDomainAxisPosition({ datum = null } = {}) {\n\t\tif (this.dualAxes && datum) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axesOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryDomainAxisPosition\n\t\t\t);\n\t\t\tconst dataset = datum[groupMapsTo];\n\t\t\tif (\n\t\t\t\taxesOptions?.correspondingDatasets &&\n\t\t\t\taxesOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryDomainAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.domainAxisPosition;\n\t}\n\n\tgetRangeAxisPosition({ datum = null, groups = null } = {}) {\n\t\tif (this.dualAxes) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axisOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryRangeAxisPosition\n\t\t\t);\n\t\t\tlet dataset;\n\t\t\tif (datum !== null) {\n\t\t\t\tdataset = datum[groupMapsTo];\n\t\t\t} else if (groups && groups.length > 0) {\n\t\t\t\tdataset = groups[0];\n\t\t\t}\n\t\t\tif (\n\t\t\t\taxisOptions?.correspondingDatasets &&\n\t\t\t\taxisOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryRangeAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.rangeAxisPosition;\n\t}\n\n\tgetAxisOptions(position: AxisPositions) {\n\t\treturn Tools.getProperty(this.model.getOptions(), 'axes', position);\n\t}\n\n\tgetDomainAxisOptions() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getAxisOptions(domainAxisPosition);\n\t}\n\n\tgetRangeAxisOptions() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getAxisOptions(rangeAxisPosition);\n\t}\n\n\tupdate(animate = true) {\n\t\tthis.determineAxisDuality();\n\t\tthis.findDomainAndRangeAxes();\n\t\tthis.determineOrientation();\n\t\tconst axisPositions = Object.keys(AxisPositions).map(\n\t\t\t(axisPositionKey) => AxisPositions[axisPositionKey]\n\t\t);\n\t\taxisPositions.forEach((axisPosition) => {\n\t\t\tthis.scales[axisPosition] = this.createScale(axisPosition);\n\t\t});\n\t}\n\n\tfindDomainAndRangeAxes() {\n\t\t// find main axes between (left & right) && (bottom & top)\n\t\tconst verticalAxesPositions = this.findVerticalAxesPositions();\n\t\tconst horizontalAxesPositions = this.findHorizontalAxesPositions();\n\n\t\t// Now we have horizontal & vertical main axes to choose domain & range axes from\n\t\tconst domainAndRangeAxesPositions = this.findDomainAndRangeAxesPositions(\n\t\t\tverticalAxesPositions,\n\t\t\thorizontalAxesPositions\n\t\t);\n\n\t\tthis.domainAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryDomainAxisPosition;\n\t\tthis.rangeAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryRangeAxisPosition;\n\n\t\tif (this.isDualAxes()) {\n\t\t\tthis.secondaryDomainAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryDomainAxisPosition;\n\t\t\tthis.secondaryRangeAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryRangeAxisPosition;\n\t\t}\n\t}\n\n\tdetermineOrientation() {\n\t\tif (\n\t\t\t(this.rangeAxisPosition === AxisPositions.LEFT ||\n\t\t\t\tthis.rangeAxisPosition === AxisPositions.RIGHT) &&\n\t\t\t(this.domainAxisPosition === AxisPositions.BOTTOM ||\n\t\t\t\tthis.domainAxisPosition === AxisPositions.TOP)\n\t\t) {\n\t\t\tthis.orientation = CartesianOrientations.VERTICAL;\n\t\t} else {\n\t\t\tthis.orientation = CartesianOrientations.HORIZONTAL;\n\t\t}\n\t}\n\n\tisDualAxes() {\n\t\treturn this.dualAxes;\n\t}\n\n\t// if any of the axes objects have correspondingDatasets [] asserted we flag the chart as dual axes\n\t// it does not count as dual axes if it just has another axis turned on but is not actually using it to map a dataset\n\tdetermineAxisDuality() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\n\t\tif (\n\t\t\t(axesOptions[AxisPositions.LEFT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.RIGHT]) ||\n\t\t\t(axesOptions[AxisPositions.RIGHT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.LEFT]) ||\n\t\t\t(axesOptions[AxisPositions.TOP]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.BOTTOM]) ||\n\t\t\t(axesOptions[AxisPositions.BOTTOM]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.TOP])\n\t\t) {\n\t\t\tthis.dualAxes = true;\n\t\t}\n\t}\n\n\tgetOrientation() {\n\t\treturn this.orientation;\n\t}\n\n\tgetScaleByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scales[axisPosition];\n\t}\n\n\tgetScaleTypeByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scaleTypes[axisPosition];\n\t}\n\n\tgetDomainAxisScaleType() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getScaleTypeByPosition(domainAxisPosition);\n\t}\n\n\tgetRangeAxisScaleType() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getScaleTypeByPosition(rangeAxisPosition);\n\t}\n\n\tgetDomainScale() {\n\t\treturn this.scales[this.domainAxisPosition];\n\t}\n\n\tgetRangeScale() {\n\t\treturn this.scales[this.rangeAxisPosition];\n\t}\n\n\t// Find the main x-axis out of the 2 x-axis on the chart (when 2D axis is used)\n\tgetMainXAxisPosition() {\n\t\tconst possibleXAxisPositions = [\n\t\t\tAxisPositions.BOTTOM,\n\t\t\tAxisPositions.TOP,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleXAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\t// Find the main y-axis out of the 2 y-axis on the chart (when 2D axis is used)\n\tgetMainYAxisPosition() {\n\t\tconst possibleYAxisPositions = [\n\t\t\tAxisPositions.LEFT,\n\t\t\tAxisPositions.RIGHT,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleYAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\tgetMainXScale() {\n\t\treturn this.scales[this.getMainXAxisPosition()];\n\t}\n\n\tgetMainYScale() {\n\t\treturn this.scales[this.getMainYAxisPosition()];\n\t}\n\n\tgetValueFromScale(\n\t\tscale: any,\n\t\tscaleType: ScaleTypes,\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[axisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value =\n\t\t\tTools.getProperty(datum, mapsTo) !== null ? datum[mapsTo] : datum;\n\t\tlet scaledValue;\n\t\tswitch (scaleType) {\n\t\t\tcase ScaleTypes.LABELS:\n\t\t\t\tscaledValue = scale(value) + scale.step() / 2;\n\t\t\t\tbreak;\n\t\t\tcase ScaleTypes.TIME:\n\t\t\t\tscaledValue = scale(new Date(value));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tscaledValue = scale(value);\n\t\t}\n\t\treturn scaledValue;\n\t}\n\n\tgetBoundedScaledValues(datum: any, index?: number) {\n\t\tconst { bounds } = this.model.getOptions();\n\t\tconst scale = this.scales[this.rangeAxisPosition];\n\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[this.rangeAxisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value = datum[mapsTo] !== undefined ? datum[mapsTo] : datum;\n\n\t\tconst boundedValues = [\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.upperBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.upperBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.lowerBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.lowerBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t];\n\n\t\treturn boundedValues;\n\t}\n\n\tgetValueThroughAxisPosition(\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst scaleType = this.scaleTypes[axisPosition];\n\t\tconst scale = this.scales[axisPosition];\n\n\t\treturn this.getValueFromScale(\n\t\t\tscale,\n\t\t\tscaleType,\n\t\t\taxisPosition,\n\t\t\tdatum,\n\t\t\tindex\n\t\t);\n\t}\n\n\tgetDomainValue(d, i) {\n\t\tconst axisPosition = this.getDomainAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetRangeValue(d, i) {\n\t\tconst axisPosition = this.getRangeAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetMainXScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainXAxisPosition());\n\t}\n\n\tgetMainYScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainYAxisPosition());\n\t}\n\n\tgetDomainIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getDomainAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\tgetRangeIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getRangeAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\textendsDomain(axisPosition: AxisPositions, domain: any) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\tconst spaceToAddToEdges = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'timeScale',\n\t\t\t\t'addSpaceOnEdges'\n\t\t\t);\n\t\t\treturn addSpacingToTimeDomain(domain, spaceToAddToEdges);\n\t\t} else {\n\t\t\treturn addSpacingToContinuousDomain(\n\t\t\t\tdomain,\n\t\t\t\tConfiguration.axis.paddingRatio\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected findVerticalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If right axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.LEFT) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.LEFT,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.RIGHT,\n\t\t\t\tsecondary: AxisPositions.LEFT,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.LEFT, secondary: AxisPositions.RIGHT };\n\t}\n\n\tprotected findHorizontalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If top axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.BOTTOM) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.BOTTOM,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.TOP,\n\t\t\t\tsecondary: AxisPositions.BOTTOM,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.BOTTOM, secondary: AxisPositions.TOP };\n\t}\n\n\tprotected findDomainAndRangeAxesPositions(\n\t\tverticalAxesPositions,\n\t\thorizontalAxesPositions\n\t) {\n\t\tconst options = this.model.getOptions();\n\n\t\tconst mainVerticalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tverticalAxesPositions.primary\n\t\t);\n\t\tconst mainHorizontalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\thorizontalAxesPositions.primary\n\t\t);\n\n\t\tconst mainVerticalScaleType =\n\t\t\tmainVerticalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\t\tconst mainHorizontalScaleType =\n\t\t\tmainHorizontalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\n\t\tconst result = {\n\t\t\tprimaryDomainAxisPosition: null,\n\t\t\tsecondaryDomainAxisPosition: null,\n\t\t\tprimaryRangeAxisPosition: null,\n\t\t\tsecondaryRangeAxisPosition: null,\n\t\t};\n\n\t\t// assign to to be a vertical chart by default\n\t\tresult.primaryDomainAxisPosition = horizontalAxesPositions.primary;\n\t\tresult.primaryRangeAxisPosition = verticalAxesPositions.primary;\n\t\t// secondary axes\n\t\tresult.secondaryDomainAxisPosition = horizontalAxesPositions.secondary;\n\t\tresult.secondaryRangeAxisPosition = verticalAxesPositions.secondary;\n\n\t\t// if neither the horizontal axes are label or time\n\t\t// and atleast one of the main vertical ones are labels or time then it should be horizontal\n\t\tif (\n\t\t\t(!(\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.LABELS ||\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.TIME\n\t\t\t) &&\n\t\t\t\tmainVerticalScaleType === ScaleTypes.LABELS) ||\n\t\t\tmainVerticalScaleType === ScaleTypes.TIME\n\t\t) {\n\t\t\tresult.primaryDomainAxisPosition = verticalAxesPositions.primary;\n\t\t\tresult.primaryRangeAxisPosition = horizontalAxesPositions.primary;\n\t\t\t// secondary axes\n\t\t\tresult.secondaryDomainAxisPosition =\n\t\t\t\tverticalAxesPositions.secondary;\n\t\t\tresult.secondaryRangeAxisPosition =\n\t\t\t\thorizontalAxesPositions.secondary;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getScaleDomain(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tconst bounds = Tools.getProperty(options, 'bounds');\n\t\tconst { includeZero } = axisOptions;\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\n\t\tif (this.model.isDataEmpty()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst {\n\t\t\textendLinearDomainBy,\n\t\t\tmapsTo,\n\t\t\tpercentage,\n\t\t\tthresholds,\n\t\t} = axisOptions;\n\t\tconst {\n\t\t\treference: ratioReference,\n\t\t\tcompareTo: ratioCompareTo,\n\t\t} = Configuration.axis.ratio;\n\n\t\t// If domain is specified return that domain\n\t\tif (axisOptions.domain) {\n\t\t\tif (scaleType === ScaleTypes.LABELS) {\n\t\t\t\treturn axisOptions.domain;\n\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\taxisOptions.domain = axisOptions.domain.map((d) =>\n\t\t\t\t\td.getTime === undefined ? new Date(d) : d\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this.extendsDomain(axisPosition, axisOptions.domain);\n\t\t}\n\n\t\t// Return [0, 100] for percentage axis scale\n\t\tif (percentage) {\n\t\t\treturn [0, 100];\n\t\t}\n\n\t\t// If scale is a LABELS scale, return some labels as the domain\n\t\tif (axisOptions && scaleType === ScaleTypes.LABELS) {\n\t\t\t// Get unique values\n\t\t\treturn map(displayData, (d) => d[mapsTo]).keys();\n\t\t}\n\n\t\t// Get the extent of the domain\n\t\tlet domain;\n\t\tlet allDataValues;\n\t\tconst dataGroupNames = this.model.getDataGroupNames();\n\n\t\tif (scaleType === ScaleTypes.LABELS_RATIO) {\n\t\t\treturn displayData.map(\n\t\t\t\t(datum) => `${datum[ratioReference]}/${datum[ratioCompareTo]}`\n\t\t\t);\n\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\tallDataValues = displayData.map(\n\t\t\t\t(datum) => +new Date(datum[mapsTo])\n\t\t\t);\n\t\t} else if (bounds && options.axes) {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tallDataValues.push(datum[mapsTo]);\n\n\t\t\t\tif (datum[bounds.upperBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.upperBoundMapsTo]);\n\t\t\t\t}\n\t\t\t\tif (datum[bounds.lowerBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.lowerBoundMapsTo]);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (\n\t\t\taxisOptions.stacked === true &&\n\t\t\tdataGroupNames &&\n\t\t\taxisPosition === this.getRangeAxisPosition()\n\t\t) {\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst dataValuesGroupedByKeys = this.model.getDataValuesGroupedByKeys(\n\t\t\t\tdataGroupNames\n\t\t\t);\n\t\t\tconst nonStackedGroupsData = displayData.filter(\n\t\t\t\t(datum) => !dataGroupNames.includes(datum[groupMapsTo])\n\t\t\t);\n\t\t\tconst stackedValues = dataValuesGroupedByKeys.map((dataValues) => {\n\t\t\t\tconst { sharedStackKey, ...numericalValues } = dataValues;\n\t\t\t\treturn sum(values(numericalValues) as number[]);\n\t\t\t});\n\n\t\t\tallDataValues = [\n\t\t\t\t...stackedValues,\n\t\t\t\t...nonStackedGroupsData.map((datum) => datum[mapsTo]),\n\t\t\t];\n\t\t} else {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tconst value = datum[mapsTo];\n\t\t\t\tif (Array.isArray(value) && value.length === 2) {\n\t\t\t\t\tallDataValues.push(value[0]);\n\t\t\t\t\tallDataValues.push(value[1]);\n\t\t\t\t} else {\n\t\t\t\t\tif (extendLinearDomainBy) {\n\t\t\t\t\t\tallDataValues.push(\n\t\t\t\t\t\t\tMath.max(datum[mapsTo], datum[extendLinearDomainBy])\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tallDataValues.push(value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (scaleType !== ScaleTypes.TIME && includeZero) {\n\t\t\tallDataValues.push(0);\n\t\t}\n\n\t\t// Add threshold values into the scale\n\t\tif (thresholds && thresholds.length > 0) {\n\t\t\tthresholds.forEach((threshold) => {\n\t\t\t\tconst thresholdValue = Tools.getProperty(threshold, 'value');\n\t\t\t\tif (thresholdValue !== null) allDataValues.push(thresholdValue);\n\t\t\t});\n\t\t}\n\n\t\tdomain = extent(allDataValues);\n\t\tdomain = this.extendsDomain(axisPosition, domain);\n\n\t\treturn domain;\n\t}\n\n\tprotected createScale(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\n\t\tif (!axisOptions) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\t\tthis.scaleTypes[axisPosition] = scaleType;\n\n\t\tlet scale;\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\tscale = scaleTime();\n\t\t} else if (scaleType === ScaleTypes.LOG) {\n\t\t\tscale = scaleLog().base(axisOptions.base || 10);\n\t\t} else if (\n\t\t\tscaleType === ScaleTypes.LABELS ||\n\t\t\tscaleType === ScaleTypes.LABELS_RATIO\n\t\t) {\n\t\t\tscale = scaleBand();\n\t\t} else {\n\t\t\tscale = scaleLinear();\n\t\t}\n\n\t\tscale.domain(this.getScaleDomain(axisPosition));\n\n\t\treturn scale;\n\t}\n\n\tprotected getHighestDomainThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[domainAxisPosition];\n\n\t\tif (!thresholds) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainScale = this.getDomainScale();\n\t\t// Find the highest threshold for the domain\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\tconst scaleType = this.getScaleTypeByPosition(domainAxisPosition);\n\t\tif (\n\t\t\tscaleType === ScaleTypes.TIME &&\n\t\t\t(typeof highestThreshold.value === 'string' ||\n\t\t\t\thighestThreshold.value.getTime === undefined)\n\t\t) {\n\t\t\thighestThreshold.value = new Date(highestThreshold.value);\n\t\t}\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: domainScale(highestThreshold.value),\n\t\t};\n\t}\n\n\tprotected getHighestRangeThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[rangeAxisPosition];\n\n\t\tif (!thresholds) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst rangeScale = this.getRangeScale();\n\t\t// Find the highest threshold for the range\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: rangeScale(highestThreshold.value),\n\t\t};\n\t}\n}\n\nfunction addSpacingToTimeDomain(domain: any, spaceToAddToEdges: number) {\n\tconst startDate = new Date(domain[0]);\n\tconst endDate = new Date(domain[1]);\n\n\tif (differenceInYears(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubYears(startDate, spaceToAddToEdges),\n\t\t\taddYears(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMonths(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMonths(startDate, spaceToAddToEdges),\n\t\t\taddMonths(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInDays(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubDays(startDate, spaceToAddToEdges),\n\t\t\taddDays(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInHours(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubHours(startDate, spaceToAddToEdges),\n\t\t\taddHours(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 30) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges * 30),\n\t\t\taddMinutes(endDate, spaceToAddToEdges * 30),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges),\n\t\t\taddMinutes(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 15) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges * 15),\n\t\t\taddSeconds(endDate, spaceToAddToEdges * 15),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges),\n\t\t\taddSeconds(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\treturn [startDate, endDate];\n}\n\nfunction addSpacingToContinuousDomain(\n\t[lower, upper]: number[],\n\tpaddingRatio: number\n) {\n\tconst domainLength = upper - lower;\n\tconst padding = domainLength * paddingRatio;\n\n\t// If padding crosses 0, keep 0 as new upper bound\n\tconst newUpper = upper <= 0 && upper + padding > 0 ? 0 : upper + padding;\n\t// If padding crosses 0, keep 0 as new lower bound\n\tconst newLower = lower >= 0 && lower - padding < 0 ? 0 : lower - padding;\n\n\treturn [newLower, newUpper];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"scales-cartesian.js","sourceRoot":"","sources":["scales-cartesian.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport * as Configuration from '../configuration';\nimport { Service } from './service';\nimport {\n\tAxisPositions,\n\tCartesianOrientations,\n\tScaleTypes,\n\tThresholdOptions,\n} from '../interfaces';\nimport { Tools } from '../tools';\n\n// D3 Imports\nimport { scaleBand, scaleLinear, scaleTime, scaleLog } from 'd3-scale';\nimport { extent, sum } from 'd3-array';\nimport { map, values } from 'd3-collection';\n\n// Misc\nimport {\n\tdifferenceInYears,\n\taddYears,\n\tsubYears,\n\tdifferenceInMonths,\n\taddMonths,\n\tsubMonths,\n\tdifferenceInDays,\n\taddDays,\n\tsubDays,\n\tdifferenceInHours,\n\taddHours,\n\tsubHours,\n\tdifferenceInMinutes,\n\taddMinutes,\n\tsubMinutes,\n\tdifferenceInSeconds,\n\tsubSeconds,\n\taddSeconds,\n} from 'date-fns';\n\nexport class CartesianScales extends Service {\n\tprotected scaleTypes = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected scales = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected domainAxisPosition: AxisPositions;\n\tprotected rangeAxisPosition: AxisPositions;\n\tprotected secondaryDomainAxisPosition: AxisPositions;\n\tprotected secondaryRangeAxisPosition: AxisPositions;\n\n\tprotected dualAxes: Boolean;\n\n\tprotected orientation: CartesianOrientations;\n\n\tgetDomainAxisPosition({ datum = null } = {}) {\n\t\tif (this.dualAxes && datum) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axesOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryDomainAxisPosition\n\t\t\t);\n\t\t\tconst dataset = datum[groupMapsTo];\n\t\t\tif (\n\t\t\t\taxesOptions?.correspondingDatasets &&\n\t\t\t\taxesOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryDomainAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.domainAxisPosition;\n\t}\n\n\tgetRangeAxisPosition({ datum = null, groups = null } = {}) {\n\t\tif (this.dualAxes) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axisOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryRangeAxisPosition\n\t\t\t);\n\t\t\tlet dataset;\n\t\t\tif (datum !== null) {\n\t\t\t\tdataset = datum[groupMapsTo];\n\t\t\t} else if (groups && groups.length > 0) {\n\t\t\t\tdataset = groups[0];\n\t\t\t}\n\t\t\tif (\n\t\t\t\taxisOptions?.correspondingDatasets &&\n\t\t\t\taxisOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryRangeAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.rangeAxisPosition;\n\t}\n\n\tgetAxisOptions(position: AxisPositions) {\n\t\treturn Tools.getProperty(this.model.getOptions(), 'axes', position);\n\t}\n\n\tgetDomainAxisOptions() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getAxisOptions(domainAxisPosition);\n\t}\n\n\tgetRangeAxisOptions() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getAxisOptions(rangeAxisPosition);\n\t}\n\n\tupdate(animate = true) {\n\t\tthis.determineAxisDuality();\n\t\tthis.findDomainAndRangeAxes();\n\t\tthis.determineOrientation();\n\t\tconst axisPositions = Object.keys(AxisPositions).map(\n\t\t\t(axisPositionKey) => AxisPositions[axisPositionKey]\n\t\t);\n\t\taxisPositions.forEach((axisPosition) => {\n\t\t\tthis.scales[axisPosition] = this.createScale(axisPosition);\n\t\t});\n\t}\n\n\tfindDomainAndRangeAxes() {\n\t\t// find main axes between (left & right) && (bottom & top)\n\t\tconst verticalAxesPositions = this.findVerticalAxesPositions();\n\t\tconst horizontalAxesPositions = this.findHorizontalAxesPositions();\n\n\t\t// Now we have horizontal & vertical main axes to choose domain & range axes from\n\t\tconst domainAndRangeAxesPositions = this.findDomainAndRangeAxesPositions(\n\t\t\tverticalAxesPositions,\n\t\t\thorizontalAxesPositions\n\t\t);\n\n\t\tthis.domainAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryDomainAxisPosition;\n\t\tthis.rangeAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryRangeAxisPosition;\n\n\t\tif (this.isDualAxes()) {\n\t\t\tthis.secondaryDomainAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryDomainAxisPosition;\n\t\t\tthis.secondaryRangeAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryRangeAxisPosition;\n\t\t}\n\t}\n\n\tdetermineOrientation() {\n\t\tif (\n\t\t\t(this.rangeAxisPosition === AxisPositions.LEFT ||\n\t\t\t\tthis.rangeAxisPosition === AxisPositions.RIGHT) &&\n\t\t\t(this.domainAxisPosition === AxisPositions.BOTTOM ||\n\t\t\t\tthis.domainAxisPosition === AxisPositions.TOP)\n\t\t) {\n\t\t\tthis.orientation = CartesianOrientations.VERTICAL;\n\t\t} else {\n\t\t\tthis.orientation = CartesianOrientations.HORIZONTAL;\n\t\t}\n\t}\n\n\tisDualAxes() {\n\t\treturn this.dualAxes;\n\t}\n\n\t// if any of the axes objects have correspondingDatasets [] asserted we flag the chart as dual axes\n\t// it does not count as dual axes if it just has another axis turned on but is not actually using it to map a dataset\n\tdetermineAxisDuality() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\n\t\tif (\n\t\t\t(axesOptions[AxisPositions.LEFT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.RIGHT]) ||\n\t\t\t(axesOptions[AxisPositions.RIGHT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.LEFT]) ||\n\t\t\t(axesOptions[AxisPositions.TOP]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.BOTTOM]) ||\n\t\t\t(axesOptions[AxisPositions.BOTTOM]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.TOP])\n\t\t) {\n\t\t\tthis.dualAxes = true;\n\t\t}\n\t}\n\n\tgetOrientation() {\n\t\treturn this.orientation;\n\t}\n\n\tgetScaleByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scales[axisPosition];\n\t}\n\n\tgetScaleTypeByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scaleTypes[axisPosition];\n\t}\n\n\tgetDomainAxisScaleType() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getScaleTypeByPosition(domainAxisPosition);\n\t}\n\n\tgetRangeAxisScaleType() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getScaleTypeByPosition(rangeAxisPosition);\n\t}\n\n\tgetDomainScale() {\n\t\treturn this.scales[this.domainAxisPosition];\n\t}\n\n\tgetRangeScale() {\n\t\treturn this.scales[this.rangeAxisPosition];\n\t}\n\n\t// Find the main x-axis out of the 2 x-axis on the chart (when 2D axis is used)\n\tgetMainXAxisPosition() {\n\t\tconst possibleXAxisPositions = [\n\t\t\tAxisPositions.BOTTOM,\n\t\t\tAxisPositions.TOP,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleXAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\t// Find the main y-axis out of the 2 y-axis on the chart (when 2D axis is used)\n\tgetMainYAxisPosition() {\n\t\tconst possibleYAxisPositions = [\n\t\t\tAxisPositions.LEFT,\n\t\t\tAxisPositions.RIGHT,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleYAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\tgetMainXScale() {\n\t\treturn this.scales[this.getMainXAxisPosition()];\n\t}\n\n\tgetMainYScale() {\n\t\treturn this.scales[this.getMainYAxisPosition()];\n\t}\n\n\tgetValueFromScale(\n\t\tscale: any,\n\t\tscaleType: ScaleTypes,\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[axisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value =\n\t\t\tTools.getProperty(datum, mapsTo) !== null ? datum[mapsTo] : datum;\n\t\tlet scaledValue;\n\t\tswitch (scaleType) {\n\t\t\tcase ScaleTypes.LABELS:\n\t\t\t\tscaledValue = scale(value) + scale.step() / 2;\n\t\t\t\tbreak;\n\t\t\tcase ScaleTypes.TIME:\n\t\t\t\tscaledValue = scale(new Date(value));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tscaledValue = scale(value);\n\t\t}\n\t\treturn scaledValue;\n\t}\n\n\tgetBoundedScaledValues(datum: any, index?: number) {\n\t\tconst { bounds } = this.model.getOptions();\n\t\tconst scale = this.scales[this.rangeAxisPosition];\n\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[this.rangeAxisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value = datum[mapsTo] !== undefined ? datum[mapsTo] : datum;\n\n\t\tconst boundedValues = [\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.upperBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.upperBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.lowerBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.lowerBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t];\n\n\t\treturn boundedValues;\n\t}\n\n\tgetValueThroughAxisPosition(\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst scaleType = this.scaleTypes[axisPosition];\n\t\tconst scale = this.scales[axisPosition];\n\n\t\treturn this.getValueFromScale(\n\t\t\tscale,\n\t\t\tscaleType,\n\t\t\taxisPosition,\n\t\t\tdatum,\n\t\t\tindex\n\t\t);\n\t}\n\n\tgetDomainValue(d, i) {\n\t\tconst axisPosition = this.getDomainAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetRangeValue(d, i) {\n\t\tconst axisPosition = this.getRangeAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetMainXScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainXAxisPosition());\n\t}\n\n\tgetMainYScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainYAxisPosition());\n\t}\n\n\tgetDomainIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getDomainAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\tgetRangeIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getRangeAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\textendsDomain(axisPosition: AxisPositions, domain: any) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\tconst spaceToAddToEdges = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'timeScale',\n\t\t\t\t'addSpaceOnEdges'\n\t\t\t);\n\t\t\treturn addSpacingToTimeDomain(domain, spaceToAddToEdges);\n\t\t} else {\n\t\t\treturn addSpacingToContinuousDomain(\n\t\t\t\tdomain,\n\t\t\t\tConfiguration.axis.paddingRatio,\n\t\t\t\taxisOptions.scaleType\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected findVerticalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If right axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.LEFT) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.LEFT,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.RIGHT,\n\t\t\t\tsecondary: AxisPositions.LEFT,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.LEFT, secondary: AxisPositions.RIGHT };\n\t}\n\n\tprotected findHorizontalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If top axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.BOTTOM) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.BOTTOM,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.TOP,\n\t\t\t\tsecondary: AxisPositions.BOTTOM,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.BOTTOM, secondary: AxisPositions.TOP };\n\t}\n\n\tprotected findDomainAndRangeAxesPositions(\n\t\tverticalAxesPositions,\n\t\thorizontalAxesPositions\n\t) {\n\t\tconst options = this.model.getOptions();\n\n\t\tconst mainVerticalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tverticalAxesPositions.primary\n\t\t);\n\t\tconst mainHorizontalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\thorizontalAxesPositions.primary\n\t\t);\n\n\t\tconst mainVerticalScaleType =\n\t\t\tmainVerticalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\t\tconst mainHorizontalScaleType =\n\t\t\tmainHorizontalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\n\t\tconst result = {\n\t\t\tprimaryDomainAxisPosition: null,\n\t\t\tsecondaryDomainAxisPosition: null,\n\t\t\tprimaryRangeAxisPosition: null,\n\t\t\tsecondaryRangeAxisPosition: null,\n\t\t};\n\n\t\t// assign to to be a vertical chart by default\n\t\tresult.primaryDomainAxisPosition = horizontalAxesPositions.primary;\n\t\tresult.primaryRangeAxisPosition = verticalAxesPositions.primary;\n\t\t// secondary axes\n\t\tresult.secondaryDomainAxisPosition = horizontalAxesPositions.secondary;\n\t\tresult.secondaryRangeAxisPosition = verticalAxesPositions.secondary;\n\n\t\t// if neither the horizontal axes are label or time\n\t\t// and atleast one of the main vertical ones are labels or time then it should be horizontal\n\t\tif (\n\t\t\t(!(\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.LABELS ||\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.TIME\n\t\t\t) &&\n\t\t\t\tmainVerticalScaleType === ScaleTypes.LABELS) ||\n\t\t\tmainVerticalScaleType === ScaleTypes.TIME\n\t\t) {\n\t\t\tresult.primaryDomainAxisPosition = verticalAxesPositions.primary;\n\t\t\tresult.primaryRangeAxisPosition = horizontalAxesPositions.primary;\n\t\t\t// secondary axes\n\t\t\tresult.secondaryDomainAxisPosition =\n\t\t\t\tverticalAxesPositions.secondary;\n\t\t\tresult.secondaryRangeAxisPosition =\n\t\t\t\thorizontalAxesPositions.secondary;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getScaleDomain(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tconst bounds = Tools.getProperty(options, 'bounds');\n\t\tconst { includeZero } = axisOptions;\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\n\t\tif (this.model.isDataEmpty()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst {\n\t\t\textendLinearDomainBy,\n\t\t\tmapsTo,\n\t\t\tpercentage,\n\t\t\tthresholds,\n\t\t} = axisOptions;\n\t\tconst {\n\t\t\treference: ratioReference,\n\t\t\tcompareTo: ratioCompareTo,\n\t\t} = Configuration.axis.ratio;\n\n\t\t// If domain is specified return that domain\n\t\tif (axisOptions.domain) {\n\t\t\tif (scaleType === ScaleTypes.LABELS) {\n\t\t\t\treturn axisOptions.domain;\n\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\taxisOptions.domain = axisOptions.domain.map((d) =>\n\t\t\t\t\td.getTime === undefined ? new Date(d) : d\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this.extendsDomain(axisPosition, axisOptions.domain);\n\t\t}\n\n\t\t// Return [0, 100] for percentage axis scale\n\t\tif (percentage) {\n\t\t\treturn [0, 100];\n\t\t}\n\n\t\t// If scale is a LABELS scale, return some labels as the domain\n\t\tif (axisOptions && scaleType === ScaleTypes.LABELS) {\n\t\t\t// Get unique values\n\t\t\treturn map(displayData, (d) => d[mapsTo]).keys();\n\t\t}\n\n\t\t// Get the extent of the domain\n\t\tlet domain;\n\t\tlet allDataValues;\n\t\tconst dataGroupNames = this.model.getDataGroupNames();\n\n\t\tif (scaleType === ScaleTypes.LABELS_RATIO) {\n\t\t\treturn displayData.map(\n\t\t\t\t(datum) => `${datum[ratioReference]}/${datum[ratioCompareTo]}`\n\t\t\t);\n\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\tallDataValues = displayData.map(\n\t\t\t\t(datum) => +new Date(datum[mapsTo])\n\t\t\t);\n\t\t} else if (bounds && options.axes) {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tallDataValues.push(datum[mapsTo]);\n\n\t\t\t\tif (datum[bounds.upperBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.upperBoundMapsTo]);\n\t\t\t\t}\n\t\t\t\tif (datum[bounds.lowerBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.lowerBoundMapsTo]);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (\n\t\t\taxisOptions.stacked === true &&\n\t\t\tdataGroupNames &&\n\t\t\taxisPosition === this.getRangeAxisPosition()\n\t\t) {\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst dataValuesGroupedByKeys = this.model.getDataValuesGroupedByKeys(\n\t\t\t\tdataGroupNames\n\t\t\t);\n\t\t\tconst nonStackedGroupsData = displayData.filter(\n\t\t\t\t(datum) => !dataGroupNames.includes(datum[groupMapsTo])\n\t\t\t);\n\t\t\tconst stackedValues = dataValuesGroupedByKeys.map((dataValues) => {\n\t\t\t\tconst { sharedStackKey, ...numericalValues } = dataValues;\n\t\t\t\treturn sum(values(numericalValues) as number[]);\n\t\t\t});\n\n\t\t\tallDataValues = [\n\t\t\t\t...stackedValues,\n\t\t\t\t...nonStackedGroupsData.map((datum) => datum[mapsTo]),\n\t\t\t];\n\t\t} else {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tconst value = datum[mapsTo];\n\t\t\t\tif (Array.isArray(value) && value.length === 2) {\n\t\t\t\t\tallDataValues.push(value[0]);\n\t\t\t\t\tallDataValues.push(value[1]);\n\t\t\t\t} else {\n\t\t\t\t\tif (extendLinearDomainBy) {\n\t\t\t\t\t\tallDataValues.push(\n\t\t\t\t\t\t\tMath.max(datum[mapsTo], datum[extendLinearDomainBy])\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tallDataValues.push(value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Time can never be 0 and log of base 0 is -Infinity\n\t\tif (\n\t\t\tscaleType !== ScaleTypes.TIME &&\n\t\t\tscaleType !== ScaleTypes.LOG &&\n\t\t\tincludeZero\n\t\t) {\n\t\t\tallDataValues.push(0);\n\t\t}\n\n\t\t// Add threshold values into the scale\n\t\tif (thresholds && thresholds.length > 0) {\n\t\t\tthresholds.forEach((threshold) => {\n\t\t\t\tconst thresholdValue = Tools.getProperty(threshold, 'value');\n\t\t\t\tif (thresholdValue !== null) allDataValues.push(thresholdValue);\n\t\t\t});\n\t\t}\n\n\t\tdomain = extent(allDataValues);\n\t\tdomain = this.extendsDomain(axisPosition, domain);\n\n\t\treturn domain;\n\t}\n\n\tprotected createScale(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\n\t\tif (!axisOptions) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\t\tthis.scaleTypes[axisPosition] = scaleType;\n\n\t\tlet scale;\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\tscale = scaleTime();\n\t\t} else if (scaleType === ScaleTypes.LOG) {\n\t\t\tscale = scaleLog().base(axisOptions.base || 10);\n\t\t} else if (\n\t\t\tscaleType === ScaleTypes.LABELS ||\n\t\t\tscaleType === ScaleTypes.LABELS_RATIO\n\t\t) {\n\t\t\tscale = scaleBand();\n\t\t} else {\n\t\t\tscale = scaleLinear();\n\t\t}\n\n\t\tscale.domain(this.getScaleDomain(axisPosition));\n\n\t\treturn scale;\n\t}\n\n\tprotected getHighestDomainThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[domainAxisPosition];\n\n\t\tif (!thresholds) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainScale = this.getDomainScale();\n\t\t// Find the highest threshold for the domain\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\tconst scaleType = this.getScaleTypeByPosition(domainAxisPosition);\n\t\tif (\n\t\t\tscaleType === ScaleTypes.TIME &&\n\t\t\t(typeof highestThreshold.value === 'string' ||\n\t\t\t\thighestThreshold.value.getTime === undefined)\n\t\t) {\n\t\t\thighestThreshold.value = new Date(highestThreshold.value);\n\t\t}\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: domainScale(highestThreshold.value),\n\t\t};\n\t}\n\n\tprotected getHighestRangeThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[rangeAxisPosition];\n\n\t\tif (!thresholds) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst rangeScale = this.getRangeScale();\n\t\t// Find the highest threshold for the range\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: rangeScale(highestThreshold.value),\n\t\t};\n\t}\n}\n\nfunction addSpacingToTimeDomain(domain: any, spaceToAddToEdges: number) {\n\tconst startDate = new Date(domain[0]);\n\tconst endDate = new Date(domain[1]);\n\n\tif (differenceInYears(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubYears(startDate, spaceToAddToEdges),\n\t\t\taddYears(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMonths(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMonths(startDate, spaceToAddToEdges),\n\t\t\taddMonths(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInDays(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubDays(startDate, spaceToAddToEdges),\n\t\t\taddDays(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInHours(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubHours(startDate, spaceToAddToEdges),\n\t\t\taddHours(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 30) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges * 30),\n\t\t\taddMinutes(endDate, spaceToAddToEdges * 30),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges),\n\t\t\taddMinutes(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 15) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges * 15),\n\t\t\taddSeconds(endDate, spaceToAddToEdges * 15),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges),\n\t\t\taddSeconds(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\treturn [startDate, endDate];\n}\n\nfunction addSpacingToContinuousDomain(\n\t[lower, upper]: number[],\n\tpaddingRatio: number,\n\tscaleType?: ScaleTypes\n) {\n\tconst domainLength = upper - lower;\n\tconst padding = domainLength * paddingRatio;\n\n\t// If padding crosses 0, keep 0 as new upper bound\n\tconst newUpper = upper <= 0 && upper + padding > 0 ? 0 : upper + padding;\n\t// If padding crosses 0, keep 0 as new lower bound\n\tlet newLower = lower >= 0 && lower - padding < 0 ? 0 : lower - padding;\n\n\t// Log of base 0 or a negative number is -Infinity\n\tif (scaleType === ScaleTypes.LOG && newLower <= 0) {\n\t\tif (lower <= 0) {\n\t\t\tthrow Error(\n\t\t\t\t'Data must have values greater than 0 if log scale type is used.'\n\t\t\t);\n\t\t}\n\t\tnewLower = lower;\n\t}\n\n\treturn [newLower, newUpper];\n}\n"]}
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -118,8 +118,8 @@
|
|
|
118
118
|
"signature": "95edee9e66eb5c6dd0060018df015a4a079945b22b2b5788573094ea68a928be"
|
|
119
119
|
},
|
|
120
120
|
"../src/interfaces/events.ts": {
|
|
121
|
-
"version": "
|
|
122
|
-
"signature": "
|
|
121
|
+
"version": "43a4a1b6641bc3da163e5ff32a3c13cd005c0949e0f20215c6fba52b6b3b86be",
|
|
122
|
+
"signature": "3b1e0891dddea22ffe74299ca5717c74d306d36dd139714f5aecd180206c0131"
|
|
123
123
|
},
|
|
124
124
|
"../src/interfaces/enums.ts": {
|
|
125
125
|
"version": "486264c7e0fb3adad48fc0a02e5bd5bc3ff022bebb3a7140dbf2a6bd1c707045",
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
"signature": "7b51ac945f253db7d26cdbdf47268cf6a53f6e920fcdb407d9479a7f8ebeed27"
|
|
303
303
|
},
|
|
304
304
|
"../src/services/scales-cartesian.ts": {
|
|
305
|
-
"version": "
|
|
305
|
+
"version": "0aa6e4f518a453042f798cb0df7f0006e39897f801579889393cf74cca166d70",
|
|
306
306
|
"signature": "4fb2aac342c888934a80cb64d1c825a4f86265714cba5773f253f568aeb0c63f"
|
|
307
307
|
},
|
|
308
308
|
"../src/services/curves.ts": {
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
"signature": "61f853619949c185cb3f42f2bad4a58d9f128710817895a7973646968f941571"
|
|
427
427
|
},
|
|
428
428
|
"../src/components/graphs/scatter.ts": {
|
|
429
|
-
"version": "
|
|
429
|
+
"version": "eb6cac56ed348c4046d92f2e09b2941a112fc2adc8a25ba1998bd35070aa179a",
|
|
430
430
|
"signature": "b9755481b37714f9e6578fc15e5ed3d12454cfd42d68859baf67ddb2d11142fa"
|
|
431
431
|
},
|
|
432
432
|
"../src/components/graphs/bubble.ts": {
|
|
@@ -478,7 +478,7 @@
|
|
|
478
478
|
"signature": "4798872bc73b632e7cbb5dcb7211c2d991234c273068d0dbc0c87f0e776d0ce4"
|
|
479
479
|
},
|
|
480
480
|
"../src/components/graphs/radar.ts": {
|
|
481
|
-
"version": "
|
|
481
|
+
"version": "4249ea7a0c8bbf6e9ebb819ee6046b786b173d75cbb4a44b889d0c4f7e5a3f70",
|
|
482
482
|
"signature": "d83c6d332915bf3e6f341a942c7bf8370dce9fa9e0842736e8a09e53cb45970c"
|
|
483
483
|
},
|
|
484
484
|
"../src/components/graphs/circle-pack.ts": {
|