@carbon/charts 0.30.4 → 0.30.8
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/bar.d.ts +56 -94
- package/build/demo/data/bubble.d.ts +58 -13
- package/build/demo/data/donut.d.ts +3 -6
- package/build/demo/data/line.d.ts +35 -35
- package/build/demo/data/pie.d.ts +3 -6
- package/build/demo/data/scatter.d.ts +33 -20
- package/build/demo/data/step.d.ts +15 -16
- package/build/demo/data/time-series-axis.d.ts +12 -48
- package/build/src/charts/bar-grouped.d.ts +2 -2
- package/build/src/charts/bar-simple.d.ts +2 -4
- package/build/src/components/essentials/legend.d.ts +0 -4
- package/build/src/components/essentials/tooltip-bar.d.ts +1 -1
- package/build/src/components/essentials/tooltip-pie.d.ts +5 -0
- package/build/src/components/essentials/tooltip-scatter.d.ts +1 -1
- package/build/src/components/graphs/bar-grouped.d.ts +6 -4
- package/build/src/components/graphs/bar-simple.d.ts +0 -1
- package/build/src/components/graphs/bar-stacked.d.ts +0 -1
- package/build/src/components/graphs/bubble.d.ts +0 -1
- package/build/src/components/graphs/line.d.ts +3 -1
- package/build/src/components/graphs/pie.d.ts +0 -1
- package/build/src/components/graphs/scatter.d.ts +0 -1
- package/build/src/components/index.d.ts +1 -0
- package/build/src/interfaces/axis-scales.d.ts +4 -16
- package/build/src/interfaces/charts.d.ts +23 -1
- package/build/src/interfaces/enums.d.ts +0 -4
- package/build/src/interfaces/events.d.ts +29 -0
- package/build/src/model-pie.d.ts +1 -7
- package/build/src/model.d.ts +31 -13
- package/build/src/services/scales-cartesian.d.ts +11 -3
- package/build/src/tools.d.ts +2 -2
- package/build/stories/tutorials.stories.d.ts +1 -0
- package/bundle.js +1 -1
- package/chart.js +2 -2
- package/chart.js.map +1 -1
- package/charts/bar-grouped.d.ts +2 -2
- package/charts/bar-grouped.js.map +1 -1
- package/charts/bar-simple.d.ts +2 -4
- package/charts/bar-simple.js +0 -2
- package/charts/bar-simple.js.map +1 -1
- package/charts/donut.js +2 -2
- package/charts/donut.js.map +1 -1
- package/charts/pie.js +2 -2
- package/charts/pie.js.map +1 -1
- package/components/axes/grid.js +12 -19
- package/components/axes/grid.js.map +1 -1
- package/components/component.js +1 -1
- package/components/component.js.map +1 -1
- package/components/essentials/legend.d.ts +0 -4
- package/components/essentials/legend.js +12 -26
- package/components/essentials/legend.js.map +1 -1
- package/components/essentials/title.js +4 -4
- package/components/essentials/title.js.map +1 -1
- package/components/essentials/tooltip-bar.d.ts +1 -1
- package/components/essentials/tooltip-bar.js +13 -5
- package/components/essentials/tooltip-bar.js.map +1 -1
- package/components/essentials/tooltip-pie.d.ts +5 -0
- package/components/essentials/tooltip-pie.js +40 -0
- package/components/essentials/tooltip-pie.js.map +1 -0
- package/components/essentials/tooltip-scatter.d.ts +1 -1
- package/components/essentials/tooltip-scatter.js +8 -6
- package/components/essentials/tooltip-scatter.js.map +1 -1
- package/components/essentials/tooltip.js +14 -17
- package/components/essentials/tooltip.js.map +1 -1
- package/components/graphs/bar-grouped.d.ts +6 -4
- package/components/graphs/bar-grouped.js +64 -36
- package/components/graphs/bar-grouped.js.map +1 -1
- package/components/graphs/bar-simple.d.ts +0 -1
- package/components/graphs/bar-simple.js +16 -34
- package/components/graphs/bar-simple.js.map +1 -1
- package/components/graphs/bar-stacked.d.ts +0 -1
- package/components/graphs/bar-stacked.js +31 -112
- package/components/graphs/bar-stacked.js.map +1 -1
- package/components/graphs/bar.js.map +1 -1
- package/components/graphs/bubble.d.ts +0 -1
- package/components/graphs/bubble.js +16 -20
- package/components/graphs/bubble.js.map +1 -1
- package/components/graphs/donut.js +1 -1
- package/components/graphs/donut.js.map +1 -1
- package/components/graphs/line.d.ts +3 -1
- package/components/graphs/line.js +42 -31
- package/components/graphs/line.js.map +1 -1
- package/components/graphs/pie.d.ts +0 -1
- package/components/graphs/pie.js +15 -22
- package/components/graphs/pie.js.map +1 -1
- package/components/graphs/scatter.d.ts +0 -1
- package/components/graphs/scatter.js +26 -41
- package/components/graphs/scatter.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -0
- package/components/index.js.map +1 -1
- package/configuration.js +7 -0
- package/configuration.js.map +1 -1
- package/demo/data/bar.d.ts +56 -94
- package/demo/data/bar.js +106 -271
- package/demo/data/bar.js.map +1 -1
- package/demo/data/bubble.d.ts +58 -13
- package/demo/data/bubble.js +74 -174
- package/demo/data/bubble.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/donut.d.ts +3 -6
- package/demo/data/index.js +22 -4
- package/demo/data/index.js.map +1 -1
- package/demo/data/line.d.ts +35 -35
- package/demo/data/line.js +70 -196
- package/demo/data/line.js.map +1 -1
- package/demo/data/pie.d.ts +3 -6
- package/demo/data/pie.js +8 -10
- package/demo/data/pie.js.map +1 -1
- package/demo/data/scatter.d.ts +33 -20
- package/demo/data/scatter.js +50 -68
- package/demo/data/scatter.js.map +1 -1
- package/demo/data/step.d.ts +15 -16
- package/demo/data/time-series-axis.d.ts +12 -48
- package/demo/data/time-series-axis.js +34 -46
- package/demo/data/time-series-axis.js.map +1 -1
- package/demo/styles.css +28 -0
- package/demo/styles.css.map +1 -1
- package/demo/styles.min.css +1 -1
- package/demo/styles.min.css.map +1 -1
- package/demo/tsconfig.tsbuildinfo +38 -37
- package/interfaces/axis-scales.d.ts +4 -16
- package/interfaces/axis-scales.js.map +1 -1
- package/interfaces/charts.d.ts +23 -1
- package/interfaces/charts.js.map +1 -1
- package/interfaces/enums.d.ts +0 -4
- package/interfaces/enums.js +0 -5
- package/interfaces/enums.js.map +1 -1
- package/interfaces/events.d.ts +29 -0
- package/interfaces/events.js +33 -0
- package/interfaces/events.js.map +1 -1
- package/model-pie.d.ts +1 -7
- package/model-pie.js +2 -107
- package/model-pie.js.map +1 -1
- package/model.d.ts +31 -13
- package/model.js +204 -75
- package/model.js.map +1 -1
- package/package.json +3 -1
- package/services/essentials/dom-utils.js +3 -2
- package/services/essentials/dom-utils.js.map +1 -1
- package/services/scales-cartesian.d.ts +11 -3
- package/services/scales-cartesian.js +104 -122
- package/services/scales-cartesian.js.map +1 -1
- package/tools.d.ts +2 -2
- package/tools.js +23 -2
- package/tools.js.map +1 -1
- package/tsconfig.tsbuildinfo +93 -93
- package/build/src/model-simple-bar.d.ts +0 -11
- package/model-simple-bar.d.ts +0 -11
- package/model-simple-bar.js +0 -88
- package/model-simple-bar.js.map +0 -1
|
@@ -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 { AxisPositions, CartesianOrientations, ScaleTypes, AxesOptions } from \"../interfaces\";\nimport { Tools } from \"../tools\";\n\n// D3 Imports\nimport {\n\tscaleBand,\n\tscaleLinear,\n\tscaleTime,\n\tscaleLog\n} from \"d3-scale\";\nimport { min, extent } from \"d3-array\";\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\nfunction addPaddingInDomain([lower, upper]: number[], paddingRatio: number) {\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\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\n\tprotected orientation: CartesianOrientations;\n\n\tgetDomainAxisPosition() {\n\t\treturn this.domainAxisPosition;\n\t}\n\n\tgetRangeAxisPosition() {\n\t\treturn this.rangeAxisPosition;\n\t}\n\n\tsetDefaultAxes() {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), \"axes\");\n\t\tif (!axesOptions) {\n\t\t\t(this.model.getOptions().axes as AxesOptions) = {\n\t\t\t\tleft: {\n\t\t\t\t\tprimary: true,\n\t\t\t\t\tincludeZero: true,\n\t\t\t\t},\n\t\t\t\tbottom: {\n\t\t\t\t\tsecondary: true,\n\t\t\t\t\tincludeZero: true,\n\t\t\t\t\tscaleType: this.model.getDisplayData().labels ? ScaleTypes.LABELS : undefined\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tupdate(animate = true) {\n\t\tthis.setDefaultAxes();\n\t\tthis.determineOrientation();\n\t\tconst axisPositions = Object.keys(AxisPositions).map(axisPositionKey => AxisPositions[axisPositionKey]);\n\t\taxisPositions.forEach(axisPosition => {\n\t\t\tthis.scales[axisPosition] = this.createScale(axisPosition);\n\t\t});\n\t}\n\n\tdetermineOrientation() {\n\t\tconst options = this.model.getOptions();\n\n\t\t// Manually specifying positions here\n\t\t// In order to enforce a priority\n\t\t[\n\t\t\tAxisPositions.LEFT,\n\t\t\tAxisPositions.BOTTOM,\n\t\t\tAxisPositions.RIGHT,\n\t\t\tAxisPositions.TOP\n\t\t].forEach(axisPosition => {\n\t\t\tconst axisOptions = Tools.getProperty(options, \"axes\", axisPosition);\n\n\t\t\tif (axisOptions) {\n\t\t\t\tconst scaleType = axisOptions.scaleType || ScaleTypes.LINEAR;\n\t\t\t\tthis.scaleTypes[axisPosition] = scaleType;\n\n\t\t\t\tif (scaleType === ScaleTypes.LINEAR) {\n\t\t\t\t\tthis.rangeAxisPosition = axisPosition;\n\t\t\t\t} else {\n\t\t\t\t\tthis.domainAxisPosition = axisPosition;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (this.rangeAxisPosition === AxisPositions.LEFT && this.domainAxisPosition === AxisPositions.BOTTOM) {\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\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\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 = [AxisPositions.BOTTOM, AxisPositions.TOP];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition]\n\t\t\t.find(position => possibleXAxisPositions.indexOf(position) > -1);\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 = [AxisPositions.LEFT, AxisPositions.RIGHT];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition]\n\t\t\t.find(position => possibleYAxisPositions.indexOf(position) > -1);\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(axisPosition: AxisPositions, datum: any, index?: number) {\n\t\tconst value = isNaN(datum) ? datum.value : datum;\n\t\tconst scaleType = this.scaleTypes[axisPosition];\n\t\tconst scale = this.scales[axisPosition];\n\t\tif (scaleType === ScaleTypes.LABELS) {\n\t\t\tconst correspondingLabel = this.model.getDisplayData().labels[index];\n\t\t\treturn scale(correspondingLabel) + scale.step() / 2;\n\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\treturn scale(new Date(datum.date || datum.label));\n\t\t}\n\n\t\treturn scale(value);\n\t}\n\n\tgetDomainValue(d, i) {\n\t\treturn this.getValueFromScale(this.domainAxisPosition, d, i);\n\t}\n\n\tgetRangeValue(d, i) {\n\t\treturn this.getValueFromScale(this.rangeAxisPosition, d, i);\n\t}\n\n\t/** Uses the primary Y Axis to get data items associated with that value. */\n\tgetDataFromDomain(domainValue) {\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst activePoints = [];\n\t\tconst scaleType = this.scaleTypes[this.domainAxisPosition];\n\n\t\tswitch (scaleType) {\n\t\t\tcase ScaleTypes.LABELS:\n\t\t\t\t// based on labels we use the index to get the associated data\n\t\t\t\tconst index = displayData.labels.indexOf(domainValue);\n\n\t\t\t\tdisplayData.datasets.forEach(dataset => {\n\t\t\t\t\tactivePoints.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdatasetLabel: dataset.label,\n\t\t\t\t\t\t\tvalue: dataset.data[index],\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase ScaleTypes.TIME:\n\t\t\t\t// time series we filter using the date\n\t\t\t\tconst domainKey = Object.keys(displayData.datasets[0].data[0]).filter(key => key !== \"value\")[0];\n\n\t\t\t\tdisplayData.datasets.forEach(dataset => {\n\t\t\t\t\tconst sharedLabel = dataset.label;\n\n\t\t\t\t\t// filter the items in each dataset for the points associated with the Domain\n\t\t\t\t\tconst dataItems = dataset.data.filter(item => {\n\t\t\t\t\t\tconst date1 = new Date(item[domainKey]);\n\t\t\t\t\t\tconst date2 = new Date(domainValue);\n\t\t\t\t\t\treturn date1.getTime() === date2.getTime();\n\t\t\t\t\t});\n\n\t\t\t\t\t// assign the shared label on the data items and add them to the array\n\t\t\t\t\tdataItems.forEach(item => {\n\t\t\t\t\t\tactivePoints.push(\n\t\t\t\t\t\t\tObject.assign({\n\t\t\t\t\t\t\t\tdatasetLabel: sharedLabel,\n\t\t\t\t\t\t\t\tvalue: item.value,\n\t\t\t\t\t\t\t}, item)\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t\treturn activePoints;\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 { includeZero } = axisOptions;\n\t\tconst { datasets, labels } = this.model.getDisplayData();\n\n\t\t// If scale is a LABELS scale, return some labels as the domain\n\t\tif (axisOptions && axisOptions.scaleType === ScaleTypes.LABELS) {\n\t\t\tif (labels) {\n\t\t\t\treturn labels;\n\t\t\t} else {\n\t\t\t\treturn this.model.getDisplayData().datasets[0].data.map((d, i) => i + 1);\n\t\t\t}\n\t\t}\n\n\t\t// Get the extent of the domain\n\t\tlet domain;\n\n\t\t// If domain is specified return that domain\n\t\tif (axisOptions.domain) {\n\t\t\treturn axisOptions.domain;\n\t\t}\n\n\t\t// If the scale is stacked\n\t\tif (axisOptions.stacked) {\n\t\t\tdomain = extent(\n\t\t\t\tlabels.reduce((m, label: any, i) => {\n\t\t\t\t\tconst correspondingValues = datasets.map(dataset => {\n\t\t\t\t\t\treturn !isNaN(dataset.data[i]) ? dataset.data[i] : dataset.data[i].value;\n\t\t\t\t\t});\n\t\t\t\t\tconst totalValue = correspondingValues.reduce((a, b) => a + b, 0);\n\n\t\t\t\t\t// Save both the total value and the minimum\n\t\t\t\t\treturn m.concat(totalValue, min(correspondingValues));\n\t\t\t\t}, [])\n\t\t\t\t\t// Currently stack layouts in the library\n\t\t\t\t\t// Only support positive values\n\t\t\t\t\t.concat(0)\n\t\t\t);\n\t\t} else {\n\t\t\t// Get all the chart's data values in a flat array\n\t\t\tlet allDataValues = datasets.reduce((dataValues, dataset: any) => {\n\t\t\t\tdataset.data.forEach((datum: any) => {\n\t\t\t\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\t\t\t\tdataValues = dataValues.concat(datum.date);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdataValues = dataValues.concat(isNaN(datum) ? datum.value : datum);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn dataValues;\n\t\t\t}, []);\n\n\t\t\tif (axisOptions.scaleType !== ScaleTypes.TIME && includeZero) {\n\t\t\t\tallDataValues = allDataValues.concat(0);\n\t\t\t}\n\n\t\t\tdomain = extent(allDataValues);\n\t\t}\n\n\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\tconst spaceToAddToEdges = Tools.getProperty(options, \"timeScale\", \"addSpaceOnEdges\");\n\n\t\t\tif (spaceToAddToEdges) {\n\t\t\t\tconst startDate = new Date(domain[0]);\n\t\t\t\tconst endDate = new Date(domain[1]);\n\n\t\t\t\tif (differenceInYears(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subYears(startDate, spaceToAddToEdges), addYears(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInMonths(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subMonths(startDate, spaceToAddToEdges), addMonths(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInDays(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subDays(startDate, spaceToAddToEdges), addDays(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInHours(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subHours(startDate, spaceToAddToEdges), addHours(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInMinutes(endDate, startDate) > 30) {\n\t\t\t\t\treturn [subMinutes(startDate, spaceToAddToEdges * 30), addMinutes(endDate, spaceToAddToEdges * 30)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInMinutes(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subMinutes(startDate, spaceToAddToEdges), addMinutes(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInSeconds(endDate, startDate) > 15) {\n\t\t\t\t\treturn [subSeconds(startDate, spaceToAddToEdges * 15), addSeconds(endDate, spaceToAddToEdges * 15)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInSeconds(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subSeconds(startDate, spaceToAddToEdges), addSeconds(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\treturn [startDate, endDate];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tnew Date(domain[0]),\n\t\t\t\tnew Date(domain[1])\n\t\t\t];\n\t\t}\n\n\t\treturn addPaddingInDomain(domain, Configuration.axis.paddingRatio);\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 = Tools.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 (scaleType === ScaleTypes.LABELS) {\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\t\treturn scale;\n\t}\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 { AxisPositions, CartesianOrientations, ScaleTypes, AxesOptions } from \"../interfaces\";\nimport { Tools } from \"../tools\";\n\n// D3 Imports\nimport {\n\tscaleBand,\n\tscaleLinear,\n\tscaleTime,\n\tscaleLog\n} 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\nfunction addPaddingInDomain([lower, upper]: number[], paddingRatio: number) {\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\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\n\tprotected orientation: CartesianOrientations;\n\n\tgetDomainAxisPosition() {\n\t\treturn this.domainAxisPosition;\n\t}\n\n\tgetRangeAxisPosition() {\n\t\treturn this.rangeAxisPosition;\n\t}\n\n\tupdate(animate = true) {\n\t\tthis.findDomainAndRangeAxes();\n\t\tthis.determineOrientation();\n\t\tconst axisPositions = Object.keys(AxisPositions).map(axisPositionKey => AxisPositions[axisPositionKey]);\n\t\taxisPositions.forEach(axisPosition => {\n\t\t\tthis.scales[axisPosition] = this.createScale(axisPosition);\n\t\t});\n\t}\n\n\tprotected findMainVerticalAxisPosition() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, \"axes\");\n\n\t\t// If right axis has been specified as `main`\n\t\tif (Tools.getProperty(axisOptions, \"axes\", AxisPositions.RIGHT, \"main\") === true) {\n\t\t\treturn AxisPositions.RIGHT;\n\t\t}\n\n\t\treturn AxisPositions.LEFT;\n\t}\n\n\tprotected findMainHorizontalAxisPosition() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, \"axes\");\n\n\t\t// If top axis has been specified as `main`\n\t\tif (Tools.getProperty(axisOptions, \"axes\", AxisPositions.TOP, \"main\") === true) {\n\t\t\treturn AxisPositions.TOP;\n\t\t}\n\n\t\treturn AxisPositions.BOTTOM;\n\t}\n\n\tprotected findDomainAndRangeAxesPositions(mainVerticalAxisPosition: AxisPositions, mainHorizontalAxisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\n\t\tconst mainVerticalAxisOptions = Tools.getProperty(options, \"axes\", mainVerticalAxisPosition);\n\t\tconst mainHorizontalAxisOptions = Tools.getProperty(options, \"axes\", mainHorizontalAxisPosition);\n\n\t\tconst mainVerticalScaleType = mainVerticalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\t\tconst mainHorizontalScaleType = mainHorizontalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\n\t\tconst result = {\n\t\t\tdomainAxisPosition: null,\n\t\t\trangeAxisPosition: null\n\t\t};\n\t\tif (mainHorizontalScaleType === ScaleTypes.LABELS || mainHorizontalScaleType === ScaleTypes.TIME) {\n\t\t\tresult.domainAxisPosition = mainHorizontalAxisPosition;\n\t\t\tresult.rangeAxisPosition = mainVerticalAxisPosition;\n\t\t} else if (mainVerticalScaleType === ScaleTypes.LABELS || mainVerticalScaleType === ScaleTypes.TIME) {\n\t\t\tresult.domainAxisPosition = mainVerticalAxisPosition;\n\t\t\tresult.rangeAxisPosition = mainHorizontalAxisPosition;\n\t\t} else {\n\t\t\tresult.domainAxisPosition = mainHorizontalAxisPosition;\n\t\t\tresult.rangeAxisPosition = mainVerticalAxisPosition;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tfindDomainAndRangeAxes() {\n\t\t// find main axes between (left & right) && (bottom & top)\n\t\tconst mainVerticalAxisPosition = this.findMainVerticalAxisPosition();\n\t\tconst mainHorizontalAxisPosition = this.findMainHorizontalAxisPosition();\n\n\t\t// Now we have horizontal & vertical main axes to choose domain & range axes from\n\t\tconst domainAndRangeAxesPositions = this.findDomainAndRangeAxesPositions(mainVerticalAxisPosition, mainHorizontalAxisPosition);\n\n\t\tthis.domainAxisPosition = domainAndRangeAxesPositions.domainAxisPosition;\n\t\tthis.rangeAxisPosition = domainAndRangeAxesPositions.rangeAxisPosition;\n\t}\n\n\tdetermineOrientation() {\n\t\tif (this.rangeAxisPosition === AxisPositions.LEFT && this.domainAxisPosition === AxisPositions.BOTTOM) {\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\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\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 = [AxisPositions.BOTTOM, AxisPositions.TOP];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition]\n\t\t\t.find(position => possibleXAxisPositions.indexOf(position) > -1);\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 = [AxisPositions.LEFT, AxisPositions.RIGHT];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition]\n\t\t\t.find(position => possibleYAxisPositions.indexOf(position) > -1);\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(axisPosition: AxisPositions, datum: any, index?: number) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, \"axes\", axisPosition);\n\n\t\tconst scaleType = this.scaleTypes[axisPosition];\n\t\tconst scale = this.scales[axisPosition];\n\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value = datum[mapsTo] !== undefined ? datum[mapsTo] : datum;\n\n\t\tif (scaleType === ScaleTypes.LABELS) {\n\t\t\treturn scale(value) + scale.step() / 2;\n\t\t}\n\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\treturn scale(new Date(value));\n\t\t}\n\n\t\treturn scale(value);\n\t}\n\n\tgetDomainValue(d, i) {\n\t\treturn this.getValueFromScale(this.domainAxisPosition, d, i);\n\t}\n\n\tgetRangeValue(d, i) {\n\t\treturn this.getValueFromScale(this.rangeAxisPosition, d, i);\n\t}\n\n\tgetDomainIdentifier() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, \"axes\", this.domainAxisPosition);\n\n\t\treturn axisOptions.mapsTo;\n\t}\n\n\tgetRangeIdentifier() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, \"axes\", this.rangeAxisPosition);\n\n\t\treturn axisOptions.mapsTo;\n\t}\n\n\t/** Uses the primary Y Axis to get data items associated with that value. */\n\tgetDataFromDomain(domainValue) {\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst domainIdentifier = this.getDomainIdentifier();\n\t\tconst scaleType = this.scaleTypes[this.domainAxisPosition];\n\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\treturn displayData.filter(datum => {\n\t\t\t\treturn datum[domainIdentifier].getTime() === domainValue.getTime();\n\t\t\t});\n\t\t}\n\n\t\treturn displayData.filter(datum => {\n\t\t\treturn datum[domainIdentifier] === domainValue;\n\t\t});\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 { includeZero } = axisOptions;\n\t\tconst scaleType = Tools.getProperty(axisOptions, \"scaleType\") || ScaleTypes.LINEAR;\n\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst { mapsTo } = axisOptions;\n\n\t\t// If domain is specified return that domain\n\t\tif (axisOptions.domain) {\n\t\t\treturn axisOptions.domain;\n\t\t}\n\n\t\t// If scale is a LABELS scale, return some labels as the domain\n\t\tif (axisOptions && 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\n\t\t// Get the extent of the domain\n\t\tlet domain;\n\t\tlet allDataValues;\n\t\t// If the scale is stacked\n\t\tif (axisOptions.stacked) {\n\t\t\tconst dataValuesGroupedByKeys = this.model.getDataValuesGroupedByKeys();\n\t\t\tallDataValues = dataValuesGroupedByKeys.map(dataValues => {\n\t\t\t\treturn sum(\n\t\t\t\t\tvalues(dataValues) as any\n\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\tallDataValues = displayData.map(datum => datum[mapsTo]);\n\t\t}\n\n\t\tif (axisOptions.scaleType !== ScaleTypes.TIME && includeZero) {\n\t\t\tallDataValues.push(0);\n\t\t}\n\n\t\tdomain = extent(allDataValues);\n\n\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\tconst spaceToAddToEdges = Tools.getProperty(options, \"timeScale\", \"addSpaceOnEdges\");\n\n\t\t\tif (spaceToAddToEdges) {\n\t\t\t\tconst startDate = new Date(domain[0]);\n\t\t\t\tconst endDate = new Date(domain[1]);\n\n\t\t\t\tif (differenceInYears(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subYears(startDate, spaceToAddToEdges), addYears(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInMonths(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subMonths(startDate, spaceToAddToEdges), addMonths(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInDays(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subDays(startDate, spaceToAddToEdges), addDays(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInHours(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subHours(startDate, spaceToAddToEdges), addHours(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInMinutes(endDate, startDate) > 30) {\n\t\t\t\t\treturn [subMinutes(startDate, spaceToAddToEdges * 30), addMinutes(endDate, spaceToAddToEdges * 30)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInMinutes(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subMinutes(startDate, spaceToAddToEdges), addMinutes(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInSeconds(endDate, startDate) > 15) {\n\t\t\t\t\treturn [subSeconds(startDate, spaceToAddToEdges * 15), addSeconds(endDate, spaceToAddToEdges * 15)];\n\t\t\t\t}\n\n\t\t\t\tif (differenceInSeconds(endDate, startDate) > 1) {\n\t\t\t\t\treturn [subSeconds(startDate, spaceToAddToEdges), addSeconds(endDate, spaceToAddToEdges)];\n\t\t\t\t}\n\n\t\t\t\treturn [startDate, endDate];\n\t\t\t}\n\t\t}\n\n\t\tdomain = addPaddingInDomain(domain, Configuration.axis.paddingRatio);\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\tdomain = domain.map(d => new Date(d));\n\t\t}\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 = Tools.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 (scaleType === ScaleTypes.LABELS) {\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\t\treturn scale;\n\t}\n}\n"]}
|
package/tools.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CartesianOrientations
|
|
1
|
+
import { CartesianOrientations } from "./interfaces";
|
|
2
2
|
export declare namespace Tools {
|
|
3
3
|
export const debounce: any;
|
|
4
4
|
export const clone: any;
|
|
@@ -15,7 +15,7 @@ export declare namespace Tools {
|
|
|
15
15
|
* @param {AxisChartOptions} providedOptions user provided options
|
|
16
16
|
* @returns merged options
|
|
17
17
|
*/
|
|
18
|
-
export function mergeDefaultChartOptions(defaultOptions:
|
|
18
|
+
export function mergeDefaultChartOptions(defaultOptions: any, providedOptions: any): any;
|
|
19
19
|
/**************************************
|
|
20
20
|
* DOM-related operations *
|
|
21
21
|
*************************************/
|
package/tools.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Internal imports
|
|
2
|
-
import { CartesianOrientations } from "./interfaces";
|
|
2
|
+
import { CartesianOrientations, ScaleTypes } from "./interfaces";
|
|
3
3
|
import { debounce as lodashDebounce, merge as lodashMerge, cloneDeep as lodashCloneDeep, uniq as lodashUnique, clamp as lodashClamp } from "lodash-es";
|
|
4
4
|
// Functions
|
|
5
5
|
export var Tools;
|
|
@@ -26,8 +26,29 @@ export var Tools;
|
|
|
26
26
|
if (providedAxesNames.length === 0) {
|
|
27
27
|
delete defaultOptions.axes;
|
|
28
28
|
}
|
|
29
|
+
// Update deprecated options to work with the tabular data format
|
|
30
|
+
// Similar to the functionality in model.transformToTabularData()
|
|
29
31
|
for (var axisName in defaultOptions.axes) {
|
|
30
|
-
if (
|
|
32
|
+
if (providedAxesNames.includes(axisName)) {
|
|
33
|
+
var providedAxisOptions = providedOptions.axes[axisName];
|
|
34
|
+
if (providedAxisOptions["primary"] || providedAxisOptions["secondary"]) {
|
|
35
|
+
console.warn("`primary` & `secondary` are no longer needed for axis configurations. Read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/tutorials--tabular-data-format");
|
|
36
|
+
}
|
|
37
|
+
var identifier = providedAxisOptions["mapsTo"];
|
|
38
|
+
if (identifier === undefined || identifier === null) {
|
|
39
|
+
var scaleType = providedAxisOptions["scaleType"];
|
|
40
|
+
if (scaleType === undefined || scaleType === null) {
|
|
41
|
+
providedAxisOptions["mapsTo"] = "value";
|
|
42
|
+
}
|
|
43
|
+
else if (scaleType === ScaleTypes.TIME) {
|
|
44
|
+
providedAxisOptions["mapsTo"] = "date";
|
|
45
|
+
}
|
|
46
|
+
else if (scaleType === ScaleTypes.LABELS) {
|
|
47
|
+
providedAxisOptions["mapsTo"] = "key";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
31
52
|
delete defaultOptions.axes[axisName];
|
|
32
53
|
}
|
|
33
54
|
}
|
package/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["tools.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,qBAAqB,EAAoB,MAAM,cAAc,CAAC;AAEvE,OAAO,EACN,QAAQ,IAAI,cAAc,EAC1B,KAAK,IAAI,WAAW,EACpB,SAAS,IAAI,eAAe,EAC5B,IAAI,IAAI,YAAY,EACpB,KAAK,IAAI,WAAW,EAIpB,MAAM,WAAW,CAAC;AAEnB,YAAY;AACZ,MAAM,KAAW,KAAK,CAgPrB;AAhPD,WAAiB,KAAK;IACrB,qCAAqC;IACxB,cAAQ,GAAG,cAAc,CAAC;IAC1B,WAAK,GAAG,eAAe,CAAC;IACxB,WAAK,GAAG,WAAW,CAAC;IACpB,2BAAqB,GAAG,YAAY,CAAC;IACrC,WAAK,GAAG,WAAW,CAAC;IAGjC;;;;;;;;;OASG;IACH,SAAgB,wBAAwB,CAAC,cAAgC,EAAE,eAAiC;QAC3G,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAElE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,OAAO,cAAc,CAAC,IAAI,CAAC;SAC3B;QAED,KAAK,IAAM,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE;YAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC1C,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACrC;SACD;QAED,OAAO,KAAK,CAAC,KAAK,CACjB,cAAc,EACd,eAAe,CACf,CAAC;IACH,CAAC;IAlBe,8BAAwB,2BAkBvC,CAAA;IAED;;2CAEuC;IAEvC;;;;;;OAMG;IACH,SAAgB,aAAa,CAAC,EAAE;QAC/B,OAAO;YACN,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC;YACrE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC;SACxE,CAAC;IACH,CAAC;IALe,mBAAa,gBAK5B,CAAA;IAED;;;;OAIG;IACH,SAAgB,oBAAoB,CAAC,UAAuB;QAC3D,uFAAuF;QACvF,IAAM,cAAc,GAAG,8CAA8C,CAAC;QAEtE,IAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChF,sBAAsB;QACtB,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;YACpB,IAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE3F,OAAO;gBACN,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;gBACjB,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;aACjB,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAfe,0BAAoB,uBAenC,CAAA;IAED;;2CAEuC;IAEvC;;;;;;OAMG;IACH,SAAgB,kBAAkB,CAAC,MAAM;QACxC,IAAM,MAAM,GAAG,aAAa,CAAC;QAC7B,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO;YACN,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC1B,CAAC;IACH,CAAC;IATe,wBAAkB,qBASjC,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,qBAAqB,CAAC,MAAM;QAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAFe,2BAAqB,wBAEpC,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ;QACtD,IAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,GAAG,IAAK,OAAA,KAAK,GAAG,GAAG,CAAC,KAAK,EAAjB,CAAiB,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QACtF,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAHe,8BAAwB,2BAGvC,CAAA;IAED;;2CAEuC;IACvC;;;;;;;OAOG;IACH,SAAgB,gBAAgB,CAAC,QAAe,EAAE,QAAe;QAChE,IAAM,UAAU,GAAG;YAClB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,UAAA,OAAO;YACvB,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACjC;QACF,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,UAAA,OAAO;YACvB,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/B;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACnB,CAAC;IAnBe,sBAAgB,mBAmB/B,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,kBAAkB,CAAC,GAAQ;QAC1C,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,GAAG,CAAC,OAAO,CAAC,UAAA,KAAK;YAChB,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC1E,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5B;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IACxB,CAAC;IAbe,wBAAkB,qBAajC,CAAA;IAED,mFAAmF;IACnF,gBAAgB;IAChB,mFAAmF;IACnF;;;;;;OAMG;IACH,SAAgB,WAAW,CAAC,OAAO;QAClC,OAAO,OAAO,CAAC,IAAI,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACJ,CAAC;IAJe,iBAAW,cAI1B,CAAA;IAED,mFAAmF;IACnF,gBAAgB;IAChB,mFAAmF;IAEtE,iBAAW,GAAG,UAAC,MAAM;QAAE,kBAAW;aAAX,UAAW,EAAX,qBAAW,EAAX,IAAW;YAAX,iCAAW;;QAC9C,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,IAAI,QAAQ,EAAE;YACb,KAAmB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;gBAAxB,IAAM,IAAI,iBAAA;gBACd,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;oBAC5D,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC1B;qBAAM;oBACN,OAAO,IAAI,CAAC;iBACZ;aACD;YACD,OAAO,QAAQ,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IASW,0CAAoC,GAAG,UAAC,mBAAuC,EAAE,WAAmC;QAChI,IAAI,WAAW,KAAK,qBAAqB,CAAC,UAAU,EAAE;YACrD,OAAO;gBACN,EAAE,EAAE,mBAAmB,CAAC,EAAE;gBAC1B,EAAE,EAAE,mBAAmB,CAAC,EAAE;gBAC1B,EAAE,EAAE,mBAAmB,CAAC,EAAE;gBAC1B,EAAE,EAAE,mBAAmB,CAAC,EAAE;aAC1B,CAAC;SACF;QAED,OAAO,mBAAmB,CAAC;IAC5B,CAAC,CAAC;IAEW,2BAAqB,GAAG,UAAC,mBAAuC,EAAE,WAAmC;QAC3G,IAAA,iFAA2F,EAAzF,UAAE,EAAE,UAAE,EAAE,UAAE,EAAE,UAA6E,CAAC;QAElG,OAAO,MAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAE,SAAI,EAAI,CAAC;IACvE,CAAC,CAAC;AACH,CAAC,EAhPgB,KAAK,KAAL,KAAK,QAgPrB","sourcesContent":["// Internal imports\nimport { CartesianOrientations, AxisChartOptions } from \"./interfaces\";\n\nimport {\n\tdebounce as lodashDebounce,\n\tmerge as lodashMerge,\n\tcloneDeep as lodashCloneDeep,\n\tuniq as lodashUnique,\n\tclamp as lodashClamp,\n\t// the imports below are needed because of typescript bug (error TS4029)\n\tCancelable,\n\tDebounceSettings\n} from \"lodash-es\";\n\n// Functions\nexport namespace Tools {\n\t// Export these functions from lodash\n\texport const debounce = lodashDebounce;\n\texport const clone = lodashCloneDeep;\n\texport const merge = lodashMerge;\n\texport const removeArrayDuplicates = lodashUnique;\n\texport const clamp = lodashClamp;\n\n\n\t/**\n\t * Returns default chart options merged with provided options,\n\t * with special cases for axes.\n\t * Axes object will not merge the not provided axes.\n\t *\n\t * @export\n\t * @param {AxisChartOptions} defaultOptions Configuration.options[chartType]\n\t * @param {AxisChartOptions} providedOptions user provided options\n\t * @returns merged options\n\t */\n\texport function mergeDefaultChartOptions(defaultOptions: AxisChartOptions, providedOptions: AxisChartOptions) {\n\t\tdefaultOptions = Tools.clone(defaultOptions);\n\t\tconst providedAxesNames = Object.keys(providedOptions.axes || {});\n\n\t\tif (providedAxesNames.length === 0) {\n\t\t\tdelete defaultOptions.axes;\n\t\t}\n\n\t\tfor (const axisName in defaultOptions.axes) {\n\t\t\tif (!providedAxesNames.includes(axisName)) {\n\t\t\t\tdelete defaultOptions.axes[axisName];\n\t\t\t}\n\t\t}\n\n\t\treturn Tools.merge(\n\t\t\tdefaultOptions,\n\t\t\tprovidedOptions\n\t\t);\n\t}\n\n\t/**************************************\n\t * DOM-related operations *\n\t *************************************/\n\n\t/**\n\t * Get width & height of an element\n\t *\n\t * @export\n\t * @param {any} el element to get dimensions from\n\t * @returns an object containing the width and height of el\n\t */\n\texport function getDimensions(el) {\n\t\treturn {\n\t\t\twidth: parseFloat(el.style.width.replace(\"px\", \"\") || el.offsetWidth),\n\t\t\theight: parseFloat(el.style.height.replace(\"px\", \"\") || el.offsetHeight)\n\t\t};\n\t}\n\n\t/**\n\t * Returns an elements's x and y translations from attribute transform\n\t * @param {HTMLElement} element\n\t * @returns an object containing the x and y translations or null\n\t */\n\texport function getTranslationValues(elementRef: HTMLElement) {\n\t\t// regex to ONLY get values for translate (instead of all rotate, translate, skew, etc)\n\t\tconst translateRegex = /translate\\([0-9]+\\.?[0-9]*,[0-9]+\\.?[0-9]*\\)/;\n\n\t\tconst transformStr = elementRef.getAttribute(\"transform\").match(translateRegex);\n\t\t// check for the match\n\t\tif (transformStr[0]) {\n\t\t\tconst transforms = transformStr[0].replace(/translate\\(/, \"\").replace(/\\)/, \"\").split(\",\");\n\n\t\t\treturn {\n\t\t\t\ttx: transforms[0],\n\t\t\t\tty: transforms[1]\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**************************************\n\t * Formatting & calculations *\n\t *************************************/\n\n\t/**\n\t * Gets x and y coordinates from a HTML transform attribute\n\t *\n\t * @export\n\t * @param {any} string the transform attribute string ie. transform(x,y)\n\t * @returns Returns an object with x and y offsets of the transform\n\t */\n\texport function getTranformOffsets(string) {\n\t\tconst regExp = /\\(([^)]+)\\)/;\n\t\tconst match = regExp.exec(string)[1];\n\t\tconst xyString = match.split(\",\");\n\n\t\treturn {\n\t\t\tx: parseFloat(xyString[0]),\n\t\t\ty: parseFloat(xyString[1])\n\t\t};\n\t}\n\n\t/**\n\t * Capitalizes first letter of a string\n\t *\n\t * @export\n\t * @param {any} string the string whose first letter you'd like to capitalize\n\t * @returns The input string with its first letter capitalized\n\t */\n\texport function capitalizeFirstLetter(string) {\n\t\treturn string[0].toUpperCase() + string.slice(1);\n\t}\n\n\t/**\n\t * Get the percentage of a datapoint compared to the entire data-set.\n\t * Returns 1 significant digit if percentage is less than 1%.\n\t * @export\n\t * @param {any} item\n\t * @param {any} fullData\n\t * @returns The percentage in the form of a number\n\t */\n\texport function convertValueToPercentage(item, fullData) {\n\t\tconst percentage = item / fullData.reduce((accum, val) => accum + val.value, 0) * 100;\n\t\treturn percentage < 1 ? percentage.toPrecision(1) : Math.floor(percentage);\n\t}\n\n\t/**************************************\n\t * Object/array related checks *\n\t *************************************/\n\t/**\n\t * Get the difference between two arrays' items\n\t *\n\t * @export\n\t * @param {any[]} oldArray\n\t * @param {any[]} newArray\n\t * @returns The items missing in newArray from oldArray, and items added to newArray compared to oldArray\n\t */\n\texport function arrayDifferences(oldArray: any[], newArray: any[]) {\n\t\tconst difference = {\n\t\t\tmissing: [],\n\t\t\tadded: []\n\t\t};\n\n\t\toldArray.forEach(element => {\n\t\t\tif (newArray.indexOf(element) === -1) {\n\t\t\t\tdifference.missing.push(element);\n\t\t\t}\n\t\t});\n\n\t\tnewArray.forEach(element => {\n\t\t\tif (oldArray.indexOf(element) === -1) {\n\t\t\t\tdifference.added.push(element);\n\t\t\t}\n\t\t});\n\n\t\treturn difference;\n\t}\n\n\t/**\n\t * Lists out the duplicated keys in an array of data\n\t *\n\t * @export\n\t * @param {*} data - array of data\n\t * @returns A list of the duplicated keys in data\n\t */\n\texport function getDuplicateValues(arr: any) {\n\t\tconst values = [];\n\t\tconst duplicateValues = [];\n\n\t\tarr.forEach(value => {\n\t\t\tif (values.indexOf(value) !== -1 && duplicateValues.indexOf(value) === -1) {\n\t\t\t\tduplicateValues.push(value);\n\t\t\t}\n\n\t\t\tvalues.push(value);\n\t\t});\n\n\t\treturn duplicateValues;\n\t}\n\n\t// ================================================================================\n\t// D3 Extensions\n\t// ================================================================================\n\t/**\n\t * In D3, moves an element to the front of the canvas\n\t *\n\t * @export\n\t * @param {any} element\n\t * @returns The function to be used by D3 to push element to the top of the canvas\n\t */\n\texport function moveToFront(element) {\n\t\treturn element.each(function() {\n\t\t\tthis.parentNode.appendChild(this);\n\t\t});\n\t}\n\n\t// ================================================================================\n\t// Style Helpers\n\t// ================================================================================\n\n\texport const getProperty = (object, ...propPath) => {\n\t\tlet position = object;\n\t\tif (position) {\n\t\t\tfor (const prop of propPath) {\n\t\t\t\tif (position[prop] !== null && position[prop] !== undefined) {\n\t\t\t\t\tposition = position[prop];\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn position;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tinterface SVGPathCoordinates {\n\t\tx0: number;\n\t\tx1: number;\n\t\ty0: number;\n\t\ty1: number;\n\t}\n\n\texport const flipSVGCoordinatesBasedOnOrientation = (verticalCoordinates: SVGPathCoordinates, orientation?: CartesianOrientations) => {\n\t\tif (orientation === CartesianOrientations.HORIZONTAL) {\n\t\t\treturn {\n\t\t\t\ty0: verticalCoordinates.x0,\n\t\t\t\ty1: verticalCoordinates.x1,\n\t\t\t\tx0: verticalCoordinates.y0,\n\t\t\t\tx1: verticalCoordinates.y1\n\t\t\t};\n\t\t}\n\n\t\treturn verticalCoordinates;\n\t};\n\n\texport const generateSVGPathString = (verticalCoordinates: SVGPathCoordinates, orientation?: CartesianOrientations) => {\n\t\tconst { x0, x1, y0, y1 } = flipSVGCoordinatesBasedOnOrientation(verticalCoordinates, orientation);\n\n\t\treturn `M${x0},${y0}L${x0},${y1}L${x1},${y1}L${x1},${y0}L${x0},${y0}`;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["tools.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal imports\nimport {\n\tAxisChartOptions,\n\tCartesianOrientations,\n\tScaleTypes\n} from \"./interfaces\";\n\nimport {\n\tdebounce as lodashDebounce,\n\tmerge as lodashMerge,\n\tcloneDeep as lodashCloneDeep,\n\tuniq as lodashUnique,\n\tclamp as lodashClamp,\n\t// the imports below are needed because of typescript bug (error TS4029)\n\tCancelable,\n\tDebounceSettings\n} from \"lodash-es\";\n\n// Functions\nexport namespace Tools {\n\t// Export these functions from lodash\n\texport const debounce = lodashDebounce;\n\texport const clone = lodashCloneDeep;\n\texport const merge = lodashMerge;\n\texport const removeArrayDuplicates = lodashUnique;\n\texport const clamp = lodashClamp;\n\n\t/**\n\t * Returns default chart options merged with provided options,\n\t * with special cases for axes.\n\t * Axes object will not merge the not provided axes.\n\t *\n\t * @export\n\t * @param {AxisChartOptions} defaultOptions Configuration.options[chartType]\n\t * @param {AxisChartOptions} providedOptions user provided options\n\t * @returns merged options\n\t */\n\texport function mergeDefaultChartOptions(defaultOptions: any, providedOptions: any) {\n\t\tdefaultOptions = Tools.clone(defaultOptions);\n\t\tconst providedAxesNames = Object.keys(providedOptions.axes || {});\n\n\t\tif (providedAxesNames.length === 0) {\n\t\t\tdelete defaultOptions.axes;\n\t\t}\n\n\t\t// Update deprecated options to work with the tabular data format\n\t\t// Similar to the functionality in model.transformToTabularData()\n\t\tfor (const axisName in defaultOptions.axes) {\n\t\t\tif (providedAxesNames.includes(axisName)) {\n\t\t\t\tconst providedAxisOptions = providedOptions.axes[axisName];\n\n\t\t\t\tif (providedAxisOptions[\"primary\"] || providedAxisOptions[\"secondary\"]) {\n\t\t\t\t\tconsole.warn(\"`primary` & `secondary` are no longer needed for axis configurations. Read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/tutorials--tabular-data-format\")\n\t\t\t\t}\n\n\t\t\t\tconst identifier = providedAxisOptions[\"mapsTo\"];\n\t\t\t\tif (identifier === undefined || identifier === null) {\n\t\t\t\t\tconst scaleType = providedAxisOptions[\"scaleType\"];\n\n\t\t\t\t\tif (scaleType === undefined || scaleType === null) {\n\t\t\t\t\t\tprovidedAxisOptions[\"mapsTo\"] = \"value\";\n\t\t\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\t\t\tprovidedAxisOptions[\"mapsTo\"] = \"date\";\n\t\t\t\t\t} else if (scaleType === ScaleTypes.LABELS) {\n\t\t\t\t\t\tprovidedAxisOptions[\"mapsTo\"] = \"key\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete defaultOptions.axes[axisName];\n\t\t\t}\n\t\t}\n\n\t\treturn Tools.merge(\n\t\t\tdefaultOptions,\n\t\t\tprovidedOptions\n\t\t);\n\t}\n\n\t/**************************************\n\t * DOM-related operations *\n\t *************************************/\n\n\t/**\n\t * Get width & height of an element\n\t *\n\t * @export\n\t * @param {any} el element to get dimensions from\n\t * @returns an object containing the width and height of el\n\t */\n\texport function getDimensions(el) {\n\t\treturn {\n\t\t\twidth: parseFloat(el.style.width.replace(\"px\", \"\") || el.offsetWidth),\n\t\t\theight: parseFloat(el.style.height.replace(\"px\", \"\") || el.offsetHeight)\n\t\t};\n\t}\n\n\t/**\n\t * Returns an elements's x and y translations from attribute transform\n\t * @param {HTMLElement} element\n\t * @returns an object containing the x and y translations or null\n\t */\n\texport function getTranslationValues(elementRef: HTMLElement) {\n\t\t// regex to ONLY get values for translate (instead of all rotate, translate, skew, etc)\n\t\tconst translateRegex = /translate\\([0-9]+\\.?[0-9]*,[0-9]+\\.?[0-9]*\\)/;\n\n\t\tconst transformStr = elementRef.getAttribute(\"transform\").match(translateRegex);\n\t\t// check for the match\n\t\tif (transformStr[0]) {\n\t\t\tconst transforms = transformStr[0].replace(/translate\\(/, \"\").replace(/\\)/, \"\").split(\",\");\n\n\t\t\treturn {\n\t\t\t\ttx: transforms[0],\n\t\t\t\tty: transforms[1]\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**************************************\n\t * Formatting & calculations *\n\t *************************************/\n\n\t/**\n\t * Gets x and y coordinates from a HTML transform attribute\n\t *\n\t * @export\n\t * @param {any} string the transform attribute string ie. transform(x,y)\n\t * @returns Returns an object with x and y offsets of the transform\n\t */\n\texport function getTranformOffsets(string) {\n\t\tconst regExp = /\\(([^)]+)\\)/;\n\t\tconst match = regExp.exec(string)[1];\n\t\tconst xyString = match.split(\",\");\n\n\t\treturn {\n\t\t\tx: parseFloat(xyString[0]),\n\t\t\ty: parseFloat(xyString[1])\n\t\t};\n\t}\n\n\t/**\n\t * Capitalizes first letter of a string\n\t *\n\t * @export\n\t * @param {any} string the string whose first letter you'd like to capitalize\n\t * @returns The input string with its first letter capitalized\n\t */\n\texport function capitalizeFirstLetter(string) {\n\t\treturn string[0].toUpperCase() + string.slice(1);\n\t}\n\n\t/**\n\t * Get the percentage of a datapoint compared to the entire data-set.\n\t * Returns 1 significant digit if percentage is less than 1%.\n\t * @export\n\t * @param {any} item\n\t * @param {any} fullData\n\t * @returns The percentage in the form of a number\n\t */\n\texport function convertValueToPercentage(item, fullData) {\n\t\tconst percentage = item / fullData.reduce((accum, val) => accum + val.value, 0) * 100;\n\t\treturn percentage < 1 ? percentage.toPrecision(1) : Math.floor(percentage);\n\t}\n\n\t/**************************************\n\t * Object/array related checks *\n\t *************************************/\n\t/**\n\t * Get the difference between two arrays' items\n\t *\n\t * @export\n\t * @param {any[]} oldArray\n\t * @param {any[]} newArray\n\t * @returns The items missing in newArray from oldArray, and items added to newArray compared to oldArray\n\t */\n\texport function arrayDifferences(oldArray: any[], newArray: any[]) {\n\t\tconst difference = {\n\t\t\tmissing: [],\n\t\t\tadded: []\n\t\t};\n\n\t\toldArray.forEach(element => {\n\t\t\tif (newArray.indexOf(element) === -1) {\n\t\t\t\tdifference.missing.push(element);\n\t\t\t}\n\t\t});\n\n\t\tnewArray.forEach(element => {\n\t\t\tif (oldArray.indexOf(element) === -1) {\n\t\t\t\tdifference.added.push(element);\n\t\t\t}\n\t\t});\n\n\t\treturn difference;\n\t}\n\n\t/**\n\t * Lists out the duplicated keys in an array of data\n\t *\n\t * @export\n\t * @param {*} data - array of data\n\t * @returns A list of the duplicated keys in data\n\t */\n\texport function getDuplicateValues(arr: any) {\n\t\tconst values = [];\n\t\tconst duplicateValues = [];\n\n\t\tarr.forEach(value => {\n\t\t\tif (values.indexOf(value) !== -1 && duplicateValues.indexOf(value) === -1) {\n\t\t\t\tduplicateValues.push(value);\n\t\t\t}\n\n\t\t\tvalues.push(value);\n\t\t});\n\n\t\treturn duplicateValues;\n\t}\n\n\t// ================================================================================\n\t// D3 Extensions\n\t// ================================================================================\n\t/**\n\t * In D3, moves an element to the front of the canvas\n\t *\n\t * @export\n\t * @param {any} element\n\t * @returns The function to be used by D3 to push element to the top of the canvas\n\t */\n\texport function moveToFront(element) {\n\t\treturn element.each(function() {\n\t\t\tthis.parentNode.appendChild(this);\n\t\t});\n\t}\n\n\t// ================================================================================\n\t// Style Helpers\n\t// ================================================================================\n\n\texport const getProperty = (object, ...propPath) => {\n\t\tlet position = object;\n\t\tif (position) {\n\t\t\tfor (const prop of propPath) {\n\t\t\t\tif (position[prop] !== null && position[prop] !== undefined) {\n\t\t\t\t\tposition = position[prop];\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn position;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tinterface SVGPathCoordinates {\n\t\tx0: number;\n\t\tx1: number;\n\t\ty0: number;\n\t\ty1: number;\n\t}\n\n\texport const flipSVGCoordinatesBasedOnOrientation = (verticalCoordinates: SVGPathCoordinates, orientation?: CartesianOrientations) => {\n\t\tif (orientation === CartesianOrientations.HORIZONTAL) {\n\t\t\treturn {\n\t\t\t\ty0: verticalCoordinates.x0,\n\t\t\t\ty1: verticalCoordinates.x1,\n\t\t\t\tx0: verticalCoordinates.y0,\n\t\t\t\tx1: verticalCoordinates.y1\n\t\t\t};\n\t\t}\n\n\t\treturn verticalCoordinates;\n\t};\n\n\texport const generateSVGPathString = (verticalCoordinates: SVGPathCoordinates, orientation?: CartesianOrientations) => {\n\t\tconst { x0, x1, y0, y1 } = flipSVGCoordinatesBasedOnOrientation(verticalCoordinates, orientation);\n\n\t\treturn `M${x0},${y0}L${x0},${y1}L${x1},${y1}L${x1},${y0}L${x0},${y0}`;\n\t};\n}\n"]}
|