@carbon/charts 1.22.14 → 1.22.16
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 +18 -0
- package/dist/{angle-utils-oUqMSPUJ.mjs → angle-utils-CqlSifly.mjs} +86 -86
- package/dist/{angle-utils-oUqMSPUJ.mjs.map → angle-utils-CqlSifly.mjs.map} +1 -1
- package/dist/{array-CpT8VxH2.mjs → array-j65rN_vo.mjs} +2 -2
- package/dist/{array-CpT8VxH2.mjs.map → array-j65rN_vo.mjs.map} +1 -1
- package/dist/{choropleth-DveQIPGG.mjs → choropleth-Ds5Q8kNS.mjs} +960 -979
- package/dist/choropleth-Ds5Q8kNS.mjs.map +1 -0
- package/dist/{color-scale-utils-BfTM18gQ.mjs → color-scale-utils-ycwO-Ibq.mjs} +5 -7
- package/dist/{color-scale-utils-BfTM18gQ.mjs.map → color-scale-utils-ycwO-Ibq.mjs.map} +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/{index-fH71cv3F.mjs → index-CuPdtS0D.mjs} +46 -46
- package/dist/{index-fH71cv3F.mjs.map → index-CuPdtS0D.mjs.map} +1 -1
- package/dist/index.mjs +64 -64
- package/dist/index.mjs.map +1 -1
- package/dist/interfaces/components.d.ts +2 -2
- package/dist/model/index.mjs +2 -2
- package/dist/services/index.mjs +3 -3
- package/dist/umd/bundle.umd.cjs +13 -13
- package/dist/umd/bundle.umd.cjs.map +1 -1
- package/dist/umd/bundle.umd.js +13 -13
- package/package.json +15 -15
- package/dist/choropleth-DveQIPGG.mjs.map +0 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../node_modules/lodash-es/_castSlice.js","../../../node_modules/lodash-es/_hasUnicode.js","../../../node_modules/lodash-es/_asciiToArray.js","../../../node_modules/lodash-es/_unicodeToArray.js","../../../node_modules/lodash-es/_stringToArray.js","../../../node_modules/lodash-es/_createCaseFirst.js","../../../node_modules/lodash-es/upperFirst.js","../../../node_modules/lodash-es/capitalize.js","../../../node_modules/lodash-es/camelCase.js","../src/chart.ts","../src/axis-chart.ts","../src/charts/alluvial.ts","../src/charts/area.ts","../src/charts/boxplot.ts","../src/charts/bubble.ts","../src/charts/bullet.ts","../src/charts/choropleth.ts","../src/charts/circle-pack.ts","../src/charts/combo.ts","../src/charts/pie.ts","../src/charts/donut.ts","../src/charts/gauge.ts","../src/charts/bar-grouped.ts","../src/charts/heatmap.ts","../src/charts/histogram.ts","../src/charts/line.ts","../src/charts/lollipop.ts","../src/charts/meter.ts","../src/charts/radar.ts","../src/charts/scatter.ts","../src/charts/tree.ts","../src/charts/treemap.ts","../src/charts/bar-simple.ts","../src/charts/area-stacked.ts","../src/charts/bar-stacked.ts","../src/charts/wordcloud.ts"],"sourcesContent":["import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import { getProperty } from '@/tools'\nimport { ChartModel } from '@/model/model'\nimport { ChartConfig } from '@/interfaces/model'\nimport { BaseChartOptions } from '@/interfaces/charts'\nimport {\n\tLayoutGrowth,\n\tLayoutAlignItems,\n\tLayoutDirection,\n\tLegendOrientations,\n\tEvents as ChartEvents,\n\tRenderTypes\n} from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Toolbar } from '@/components/axes/toolbar'\nimport { LayoutComponent } from '@/components/layout'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Modal } from '@/components/essentials/modal'\nimport { Title } from '@/components/essentials/title'\nimport { Legend } from '@/components/essentials/legend'\nimport { CanvasChartClip } from '@/components/essentials/canvas-chart-clip'\nimport { Tooltip } from '@/components/essentials/tooltip'\nimport { CanvasZoom } from '@/services/canvas-zoom'\nimport { DOMUtils } from '@/services/essentials/dom-utils'\nimport { Events } from '@/services/essentials/events'\nimport { Files } from '@/services/essentials/files'\nimport { GradientUtils } from '@/services/essentials/gradient-utils'\nimport { Transitions } from '@/services/essentials/transitions'\n\nexport class Chart {\n\tcomponents: Component[] = []\n\tservices: any = {\n\t\tcanvasZoom: CanvasZoom,\n\t\tdomUtils: DOMUtils,\n\t\tevents: Events,\n\t\tfiles: Files,\n\t\tgradientUtils: GradientUtils,\n\t\ttransitions: Transitions\n\t}\n\tmodel: ChartModel = new ChartModel(this.services)\n\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BaseChartOptions>) {\n\t\t// Allow for subclasses to override the constructor with additional parameters or initialization logic without breaking the API contract of the Chart class\n\t}\n\n\t// Contains the code that uses properties that are overridable by the super-class\n\tinit(holder: HTMLDivElement, chartConfigs: ChartConfig<BaseChartOptions>) {\n\t\t// Store the holder in the model\n\t\tthis.model.set({ holder }, { skipUpdate: true })\n\n\t\t// Initialize all services\n\t\tObject.keys(this.services).forEach(serviceName => {\n\t\t\tconst serviceObj = this.services[serviceName]\n\t\t\tthis.services[serviceName] = new serviceObj(this.model, this.services)\n\t\t})\n\n\t\t// Call update() when model has been updated\n\t\tthis.services.events.addEventListener(ChartEvents.Model.UPDATE, (e: CustomEvent) => {\n\t\t\tconst animate = !!getProperty(e, 'detail', 'animate')\n\t\t\tthis.update(animate)\n\t\t})\n\n\t\t// Set model data & options\n\t\tthis.model.setData(chartConfigs.data)\n\n\t\t// Set chart resize event listener\n\t\tthis.services.events.addEventListener(ChartEvents.Chart.RESIZE, () => {\n\t\t\tthis.update(false)\n\t\t})\n\n\t\tthis.components = this.getComponents()\n\n\t\tthis.update()\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents(): Component[] {\n\t\tconsole.error('getComponents() method is not implemented')\n\n\t\treturn []\n\t}\n\n\tupdate(animate = true) {\n\t\t// Called 4 times whenever a chart is displayed\n\t\tif (!this.components) {\n\t\t\treturn\n\t\t}\n\n\t\t// Update all services\n\t\tObject.keys(this.services).forEach((serviceName: string) => {\n\t\t\tconst serviceObj = this.services[serviceName]\n\t\t\tserviceObj.update()\n\t\t})\n\n\t\t// Render all components\n\t\tthis.components.forEach(component => component.render(animate))\n\n\t\t// Asynchronously dispatch a \"render-finished\" event\n\t\t// This is needed because of d3-transitions\n\t\t// Since at the start of the transition\n\t\t// Elements do not hold their final size or position\n\t\tconst pendingTransitions = this.services.transitions.getPendingTransitions()\n\t\tconst promises = Object.keys(pendingTransitions).map(transitionID => {\n\t\t\tconst transition = pendingTransitions[transitionID]\n\t\t\treturn transition.end().catch((e: any) => e) // Skip rejects since we don't care about those;\n\t\t})\n\n\t\tPromise.all(promises).then(() =>\n\t\t\tthis.services.events.dispatchEvent(ChartEvents.Chart.RENDER_FINISHED)\n\t\t)\n\t}\n\n\tdestroy() {\n\t\t// Call the destroy() method on all components\n\t\tthis.components.forEach(component => component.destroy())\n\n\t\t// Remove the chart holder\n\t\tthis.services.domUtils.getHolder().remove()\n\n\t\tthis.model.set({ destroyed: true }, { skipUpdate: true })\n\t}\n\n\tprotected getChartComponents(graphFrameComponents: any[], configs?: object) {\n\t\tconst options = this.model.getOptions()\n\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [new Legend(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\t// if canvas zoom is enabled\n\t\tconst isZoomEnabled = getProperty(options, 'canvasZoom', 'enabled')\n\n\t\tif (isZoomEnabled && isZoomEnabled === true) {\n\t\t\tgraphFrameComponents.push(new CanvasChartClip(this.model, this.services))\n\t\t}\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: getProperty(configs, 'graphFrameRenderType') || RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'excludeLegend') !== true && options.legend.enabled !== false\n\t\t// TODO: REUSE BETWEEN AXISCHART & CHART\n\t\t// Decide the position of the legend in reference to the chart\n\t\tlet fullFrameComponentDirection = LayoutDirection.COLUMN\n\t\tif (isLegendEnabled) {\n\t\t\tconst legendPosition = getProperty(options, 'legend', 'position')\n\t\t\tif (legendPosition === 'left') {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW\n\n\t\t\t\tif (!options.legend.orientation) {\n\t\t\t\t\toptions.legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === 'right') {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW_REVERSE\n\n\t\t\t\tif (!options.legend.orientation) {\n\t\t\t\t\toptions.legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === 'bottom') {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\t\t\t}\n\t\t}\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\t// Add chart title if it exists\n\t\tconst topLevelLayoutComponents: any[] = []\n\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew Tooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n}\n","import { Chart } from './chart'\nimport { getProperty } from './tools'\nimport { ChartModelCartesian } from '@/model/cartesian-charts'\nimport { AxisChartOptions } from '@/interfaces/charts'\nimport { ChartConfig } from '@/interfaces/model'\nimport {\n\tAxisPositions,\n\tLayoutAlignItems,\n\tLayoutDirection,\n\tLayoutGrowth,\n\tLegendOrientations,\n\tLegendPositions,\n\tRenderTypes,\n\tScaleTypes\n} from '@/interfaces/enums'\nimport { ChartBrush } from '@/components/axes/grid-brush'\nimport { ChartClip } from '@/components/axes/chart-clip'\nimport { Toolbar } from '@/components/axes/toolbar'\nimport { ZoomBar } from '@/components/axes/zoom-bar'\nimport { LayoutComponent } from '@/components/layout'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Modal } from '@/components/essentials/modal'\nimport { Legend } from '@/components/essentials/legend'\nimport { Threshold } from '@/components/essentials/threshold'\nimport { Highlight } from '@/components/essentials/highlights'\nimport { Title } from '@/components/essentials/title'\nimport { AxisChartsTooltip } from '@/components/essentials/tooltip-axis'\nimport { CartesianScales } from '@/services/scales-cartesian'\nimport { Curves } from '@/services/curves'\nimport { Zoom } from '@/services/zoom'\n\nexport class AxisChart extends Chart {\n\tservices: any = Object.assign(this.services, {\n\t\tcartesianScales: CartesianScales,\n\t\tcurves: Curves,\n\t\tzoom: Zoom\n\t})\n\tmodel: ChartModelCartesian = new ChartModelCartesian(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AxisChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\t}\n\n\tprotected getAxisChartComponents(graphFrameComponents: any[], configs?: any) {\n\t\tconst options = this.model.getOptions()\n\t\tconst isZoomBarEnabled = getProperty(options, 'zoomBar', AxisPositions.TOP, 'enabled')\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tthis.services.cartesianScales.determineAxisDuality()\n\t\tthis.services.cartesianScales.findDomainAndRangeAxes() // need to do this before getMainXAxisPosition()\n\t\tthis.services.cartesianScales.determineOrientation()\n\n\t\tconst mainXAxisPosition = this.services.cartesianScales.getMainXAxisPosition()\n\t\tconst mainXScaleType = getProperty(options, 'axes', mainXAxisPosition, 'scaleType')\n\t\t// @todo - Zoom Bar only supports main axis at BOTTOM axis and time scale for now\n\t\tconst zoomBarEnabled =\n\t\t\tisZoomBarEnabled &&\n\t\t\tmainXAxisPosition === AxisPositions.BOTTOM &&\n\t\t\tmainXScaleType === ScaleTypes.TIME\n\n\t\t// @todo - should check if zoom bar in all axes are locked\n\t\tconst isZoomBarLocked = this.services.zoom.isZoomBarLocked(AxisPositions.TOP)\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [new Legend(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\t// if all zoom bars are locked, no need to add chart brush\n\t\tif (zoomBarEnabled && !isZoomBarLocked) {\n\t\t\tgraphFrameComponents.push(\n\t\t\t\tnew ChartClip(this.model, this.services),\n\t\t\t\tnew ChartBrush(this.model, this.services)\n\t\t\t)\n\t\t}\n\n\t\tgraphFrameComponents.push(new Threshold(this.model, this.services))\n\t\tgraphFrameComponents.push(new Highlight(this.model, this.services))\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'legend', 'enabled') !== false &&\n\t\t\tthis.model.getOptions().legend.enabled !== false\n\n\t\t// Decide the position of the legend in reference to the chart\n\t\tlet fullFrameComponentDirection = LayoutDirection.COLUMN\n\t\tif (isLegendEnabled) {\n\t\t\tconst legendPosition = getProperty(this.model.getOptions(), 'legend', 'position')\n\t\t\tif (legendPosition === LegendPositions.LEFT) {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW\n\n\t\t\t\tif (!this.model.getOptions().legend.orientation) {\n\t\t\t\t\tthis.model.getOptions().legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === LegendPositions.RIGHT) {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW_REVERSE\n\n\t\t\t\tif (!this.model.getOptions().legend.orientation) {\n\t\t\t\t\tthis.model.getOptions().legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === LegendPositions.BOTTOM) {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\t\t\t}\n\t\t}\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst zoomBarComponent = {\n\t\t\tid: 'zoom-bar',\n\t\t\tcomponents: [new ZoomBar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst topLevelLayoutComponents = []\n\t\t// header component is required for either title or toolbar\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\tif (zoomBarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(zoomBarComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew AxisChartsTooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n}\n","import { Chart } from '@/chart'\nimport { AlluvialChartModel } from '@/model/alluvial'\nimport { options } from '@/configuration'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { AlluvialChartOptions } from '@/interfaces/charts'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { Alluvial } from '@/components/graphs/alluvial'\nimport type { Component } from '@/components/component'\n\nexport class AlluvialChart extends Chart {\n\tmodel = new AlluvialChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AlluvialChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.alluvialChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Alluvial(this.model, this.services)]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents, {\n\t\t\texcludeLegend: true\n\t\t})\n\t\treturn components\n\t}\n}\n","import { cloneDeep } from 'lodash-es'\nimport { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { AreaChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Area } from '@/components/graphs/area'\nimport { Line } from '@/components/graphs/line'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class AreaChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AreaChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(\n\t\t\tmergeDefaultChartOptions(cloneDeep(options.areaChart), chartConfigs.options)\n\t\t)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Line(this.model, this.services),\n\t\t\tnew Area(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services, {\n\t\t\t\tfadeInOnChartHolderMouseover: true,\n\t\t\t\thandleThresholds: true\n\t\t\t}),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { BoxplotChartModel } from '@/model/boxplot'\nimport type { BoxplotChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Boxplot } from '@/components/graphs/boxplot'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class BoxplotChart extends AxisChart {\n\tmodel = new BoxplotChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BoxplotChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.boxplotChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Boxplot(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents, {\n\t\t\tlegend: {\n\t\t\t\tenabled: false\n\t\t\t}\n\t\t})\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { BubbleChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Bubble } from '@/components/graphs/bubble'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class BubbleChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BubbleChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.bubbleChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Bubble(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { BulletChartModel } from '@/model/bullet'\nimport type { BulletChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport { Bullet } from '@/components/graphs/bullet'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class BulletChart extends AxisChart {\n\tmodel = new BulletChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BulletChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.bulletChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Bullet(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options as configOptions } from '@/configuration'\nimport { getProperty, mergeDefaultChartOptions } from '@/tools'\nimport { ChoroplethModel } from '@/model/choropleth'\nimport type { ChoroplethChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { LayoutDirection, LayoutGrowth, RenderTypes, LayoutAlignItems } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Choropleth } from '@/components/graphs/choropleth'\nimport { Modal } from '@/components/essentials/modal'\nimport { LayoutComponent } from '@/components/layout/layout'\nimport { ColorScaleLegend } from '@/components/essentials/color-scale-legend'\nimport { Title } from '@/components/essentials/title'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Toolbar } from '@/components/axes/toolbar'\nimport { Tooltip } from '@/components/essentials/tooltip'\n\nexport class ChoroplethChart extends Chart {\n\tmodel = new ChoroplethModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<ChoroplethChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(\n\t\t\tmergeDefaultChartOptions(configOptions.choroplethChart, chartConfigs.options)\n\t\t)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t// Custom getChartComponents - Implements getChartComponents\n\t// Removes zoombar support and additional `features` that are not supported in heatmap\n\tprotected getChartComponents(graphFrameComponents: any[], configs?: any) {\n\t\tconst options = this.model.getOptions()\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [\n\t\t\t\tnew ColorScaleLegend(this.model, this.services, {\n\t\t\t\t\tchartType: 'choropleth'\n\t\t\t\t})\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'legend', 'enabled') !== false &&\n\t\t\tthis.model.getOptions().legend.enabled !== false &&\n\t\t\tthis.model.getData().length > 0\n\n\t\t// Decide the position of the legend in reference to the chart\n\t\tconst fullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services, { size: 15 })],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst topLevelLayoutComponents = []\n\t\t// header component is required for either title or toolbar\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew Tooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Choropleth(this.model, this.services)]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { CirclePackChartModel } from '@/model/circle-pack'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { CirclePackChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { CirclePack } from '@/components/graphs/circle-pack'\n\nexport class CirclePackChart extends Chart {\n\tmodel = new CirclePackChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<CirclePackChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.circlePackChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new CirclePack(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { camelCase, flatten, merge } from 'lodash-es'\nimport { AxisChart } from '@/axis-chart'\nimport { options as configOptions } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { ChartTypes, Skeletons } from '@/interfaces/enums'\nimport type { ComboChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Line } from '@/components/graphs/line'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { SimpleBar } from '@/components/graphs/bar-simple'\nimport { GroupedBar } from '@/components/graphs/bar-grouped'\nimport { StackedRuler } from '@/components/axes/ruler-stacked'\nimport { Area } from '@/components/graphs/area'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { StackedArea } from '@/components/graphs/area-stacked'\nimport { StackedBar } from '@/components/graphs/bar-stacked'\nimport { StackedScatter } from '@/components/graphs/scatter-stacked'\n\nconst graphComponentsMap = {\n\t[ChartTypes.LINE]: [Line, Scatter],\n\t[ChartTypes.SCATTER]: [Scatter],\n\t[ChartTypes.AREA]: [Area, Line, Scatter],\n\t[ChartTypes.STACKED_AREA]: [StackedArea, Line, StackedScatter, StackedRuler],\n\t[ChartTypes.SIMPLE_BAR]: [SimpleBar],\n\t[ChartTypes.GROUPED_BAR]: [GroupedBar, ZeroLine],\n\t[ChartTypes.STACKED_BAR]: [StackedBar, StackedRuler]\n}\n\nexport class ComboChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<ComboChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tconst chartOptions = mergeDefaultChartOptions(configOptions.comboChart, chartConfigs.options)\n\n\t\t// Warn user if no comboChartTypes defined\n\t\t// Use skeleton chart instead\n\t\tif (!chartConfigs.options.comboChartTypes) {\n\t\t\tconsole.error('No comboChartTypes defined for the Combo Chart!')\n\t\t\t// add a default chart to get an empty chart\n\t\t\tchartOptions.comboChartTypes = [{ type: ChartTypes.LINE, correspondingDatasets: [] }]\n\t\t}\n\n\t\t// set the global options\n\t\tthis.model.setOptions(chartOptions)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\tgetGraphComponents() {\n\t\tconst { comboChartTypes }: { comboChartTypes: Component[] } = this.model.getOptions()\n\t\tlet counter = 0\n\t\tconst graphComponents: Component[] = comboChartTypes\n\t\t\t.map((graph: any) => {\n\t\t\t\tconst type = graph.type\n\t\t\t\tlet options: any\n\n\t\t\t\t// initializes the components using input strings with the base configs for each chart\n\t\t\t\tif (typeof graph.type === 'string') {\n\t\t\t\t\t// check if it is in the components map\n\t\t\t\t\t// if it isn't then it is not a valid carbon chart to use in combo\n\t\t\t\t\tif (!Object.keys(graphComponentsMap).includes(graph.type)) {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t`Invalid chart type \"${graph.type}\" specified for combo chart. Please refer to the ComboChart tutorial for more guidance.`\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t\tlet stacked = false\n\t\t\t\t\tconst key = `${camelCase(graph.type)}Chart` as keyof typeof configOptions\n\t\t\t\t\toptions = merge({}, configOptions[key], this.model.getOptions(), graph.options)\n\t\t\t\t\t// if we are creating a stacked area, the contained Line chart needs to know it is stacked\n\t\t\t\t\tif (graph.type === ChartTypes.STACKED_AREA) {\n\t\t\t\t\t\tstacked = true\n\t\t\t\t\t}\n\t\t\t\t\treturn graphComponentsMap[graph.type as keyof typeof graphComponentsMap].map(\n\t\t\t\t\t\t(Component: any) =>\n\t\t\t\t\t\t\tnew Component(this.model, this.services, {\n\t\t\t\t\t\t\t\tgroups: graph.correspondingDatasets,\n\t\t\t\t\t\t\t\tid: counter++,\n\t\t\t\t\t\t\t\toptions: options,\n\t\t\t\t\t\t\t\tstacked\n\t\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\t// user has imported a type or custom component to instantiate\n\t\t\t\t\toptions = merge({}, this.model.getOptions(), graph.options)\n\t\t\t\t\treturn new type(this.model, this.services, {\n\t\t\t\t\t\tgroups: graph.correspondingDatasets,\n\t\t\t\t\t\tid: counter++,\n\t\t\t\t\t\toptions: options\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t\t.filter((item: any) => item !== null)\n\n\t\treturn flatten(graphComponents)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst { comboChartTypes } = this.model.getOptions()\n\t\t// don't add the regular ruler if stacked ruler is added\n\t\tconst stackedRulerEnabled = comboChartTypes.some(\n\t\t\t(chartObject: any) =>\n\t\t\t\tchartObject.type === ChartTypes.STACKED_BAR || chartObject.type === ChartTypes.STACKED_AREA\n\t\t)\n\n\t\t// Specify what to render inside the graph-frame\n\t\tconst graphFrameComponents = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t}),\n\t\t\t...(stackedRulerEnabled ? [] : [new Ruler(this.model, this.services)]),\n\t\t\t...this.getGraphComponents()\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { PieChartModel } from '@/model/pie'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { PieChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Pie } from '@/components/graphs/pie'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class PieChart extends Chart {\n\tmodel = new PieChartModel(this.services)\n\n\t// TODO - Optimize the use of \"extending\"\n\tconstructor(\n\t\tholder: HTMLDivElement,\n\t\tchartConfigs: ChartConfig<PieChartOptions>,\n\t\textending = false\n\t) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// TODO - Optimize the use of \"extending\"\n\t\tif (extending) {\n\t\t\treturn\n\t\t}\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.pieChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew Pie(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.PIE\n\t\t\t})\n\t\t]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { PieChart } from './pie'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { PieChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Donut } from '@/components/graphs/donut'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class DonutChart extends PieChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<PieChartOptions>) {\n\t\tsuper(holder, chartConfigs, true)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.donutChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew Donut(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.DONUT\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { GaugeChartOptions } from '@/interfaces/charts'\nimport { GaugeChartModel } from '@/model/gauge'\nimport type { Component } from '@/components/component'\nimport { Gauge } from '@/components/graphs/gauge'\n\nexport class GaugeChart extends Chart {\n\tmodel = new GaugeChartModel(this.services)\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<GaugeChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.gaugeChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Gauge(this.model, this.services)]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { BarChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { GroupedBar } from '@/components/graphs/bar-grouped'\n\nexport class GroupedBarChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.groupedBarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew GroupedBar(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options as configOptions } from '@/configuration'\nimport { getProperty, mergeDefaultChartOptions } from '@/tools'\nimport { HeatmapModel } from '@/model/heatmap'\nimport type { HeatmapChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { LayoutDirection, LayoutGrowth, RenderTypes, LayoutAlignItems } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Heatmap } from '@/components/graphs/heatmap'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Modal } from '@/components/essentials/modal'\nimport { LayoutComponent } from '@/components/layout/layout'\nimport { ColorScaleLegend } from '@/components/essentials/color-scale-legend'\nimport { Title } from '@/components/essentials/title'\nimport { AxisChartsTooltip } from '@/components/essentials/tooltip-axis'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Toolbar } from '@/components/axes/toolbar'\n\nexport class HeatmapChart extends AxisChart {\n\tmodel = new HeatmapModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<HeatmapChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(\n\t\t\tmergeDefaultChartOptions(configOptions.heatmapChart, chartConfigs.options)\n\t\t)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t// Custom getChartComponents - Implements getChartComponents\n\t// Removes zoombar support and additional `features` that are not supported in heatmap\n\tprotected getAxisChartComponents(graphFrameComponents: any[], configs?: any) {\n\t\tconst options = this.model.getOptions()\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tthis.services.cartesianScales.determineAxisDuality()\n\t\tthis.services.cartesianScales.findDomainAndRangeAxes() // need to do this before getMainXAxisPosition()\n\t\tthis.services.cartesianScales.determineOrientation()\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [\n\t\t\t\tnew ColorScaleLegend(this.model, this.services, {\n\t\t\t\t\tchartType: 'heatmap'\n\t\t\t\t})\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'legend', 'enabled') !== false &&\n\t\t\tthis.model.getOptions().legend.enabled !== false &&\n\t\t\tthis.model.getData().length > 0\n\n\t\t// Decide the position of the legend in reference to the chart\n\t\tconst fullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services, { size: 15 })],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst topLevelLayoutComponents: any[] = []\n\t\t// header component is required for either title or toolbar\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew AxisChartsTooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Heatmap(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { ChartModelBinned } from '@/model/binned-charts'\nimport type { HistogramChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Histogram } from '@/components/graphs/histogram'\nimport { BinnedRuler } from '@/components/axes/ruler-binned'\n\nexport class HistogramChart extends AxisChart {\n\tmodel = new ChartModelBinned(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<HistogramChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.histogramChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\n\t\tthis.update()\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew BinnedRuler(this.model, this.services),\n\t\t\tnew Histogram(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { LineChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Line } from '@/components/graphs/line'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { SkeletonLines } from '@/components/graphs/skeleton-lines'\n\nexport class LineChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<LineChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.lineChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Line(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services, { handleThresholds: true }),\n\t\t\tnew SkeletonLines(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { LollipopChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { Lollipop } from '@/components/graphs/lollipop'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class LollipopChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<LollipopChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.lollipopChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Lollipop(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { cloneDeep, merge } from 'lodash-es'\nimport { Chart } from '@/chart'\nimport { options as configOptions } from '@/configuration'\nimport { getProperty } from '@/tools'\nimport { MeterChartModel } from '@/model/meter'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { MeterChartOptions } from '@/interfaces/charts'\nimport { LayoutGrowth, LayoutDirection, RenderTypes } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { LayoutComponent } from '@/components/layout'\nimport { Meter } from '@/components/graphs/meter'\nimport { MeterTitle } from '@/components/essentials/title-meter'\nimport { Spacer } from '@/components/layout/spacer'\n\nexport class MeterChart extends Chart {\n\tmodel = new MeterChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<MeterChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// use prop meter options or regular meter options\n\t\tconst options = chartConfigs.options.meter?.proportional\n\t\t\t? merge(cloneDeep(configOptions.proportionalMeterChart), chartConfigs.options)\n\t\t\t: merge(cloneDeep(configOptions.meterChart), chartConfigs.options)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(options)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst showLabels = getProperty(this.model.getOptions(), 'meter', 'showLabels')\n\t\tconst meterComponents = [\n\t\t\t...(showLabels\n\t\t\t\t? [\n\t\t\t\t\t\t// Meter has a unique dataset title within the graph\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'meter-title',\n\t\t\t\t\t\t\tcomponents: [new MeterTitle(this.model, this.services)],\n\t\t\t\t\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\t\t\t\t\trenderType: RenderTypes.SVG\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Create the title spacer\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'spacer',\n\t\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t\tnew Spacer(this.model, this.services, {\n\t\t\t\t\t\t\t\t\tsize: 8\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t// Specify what to render inside the graph only\n\t\t\t{\n\t\t\t\tid: 'meter-graph',\n\t\t\t\tcomponents: [new Meter(this.model, this.services)],\n\t\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\t\trenderType: RenderTypes.SVG\n\t\t\t}\n\t\t]\n\n\t\t// the graph frame for meter includes the custom title (and spacer)\n\t\tconst graphFrame: Component[] = [\n\t\t\tnew LayoutComponent(this.model, this.services, meterComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\n\t\t// add the meter title as a top level component\n\t\tconst components: Component[] = this.getChartComponents(graphFrame, {\n\t\t\tgraphFrameRenderType: RenderTypes.HTML\n\t\t})\n\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { RadarChartModel } from '@/model/radar'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { RadarChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Radar } from '@/components/graphs/radar'\n\nexport class RadarChart extends Chart {\n\tmodel = new RadarChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<RadarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.radarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Radar(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { ScatterChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class ScatterChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<ScatterChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.scatterChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { TreeChartModel } from '@/model/tree'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { TreeChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Tree } from '@/components/graphs/tree'\n\nexport class TreeChart extends Chart {\n\tmodel = new TreeChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<TreeChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.treeChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Tree(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents, {\n\t\t\texcludeLegend: true\n\t\t})\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { TreemapChartModel } from '@/model/treemap'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { TreemapChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Treemap } from '@/components/graphs/treemap'\n\nexport class TreemapChart extends Chart {\n\tmodel = new TreemapChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<TreemapChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.treemapChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Treemap(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { BarChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { SimpleBar } from '@/components/graphs/bar-simple'\n\nexport class SimpleBarChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.simpleBarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew SimpleBar(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { Component } from '@/components/component'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { AreaChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport { Grid } from '@/components/axes/grid'\nimport { StackedArea } from '@/components/graphs/area-stacked'\nimport { StackedRuler } from '@/components/axes/ruler-stacked'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Line } from '@/components/graphs/line'\nimport { StackedScatter } from '@/components/graphs/scatter-stacked'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class StackedAreaChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AreaChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.stackedAreaChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew StackedRuler(this.model, this.services),\n\t\t\tnew StackedArea(this.model, this.services),\n\t\t\tnew Line(this.model, this.services, { stacked: true }),\n\t\t\tnew StackedScatter(this.model, this.services, {\n\t\t\t\tfadeInOnChartHolderMouseover: true,\n\t\t\t\thandleThresholds: true,\n\t\t\t\tstacked: true\n\t\t\t}),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { BarChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { StackedBar } from '@/components/graphs/bar-stacked'\nimport { StackedRuler } from '@/components/axes/ruler-stacked'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class StackedBarChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.stackedBarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew StackedRuler(this.model, this.services),\n\t\t\tnew StackedBar(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t}),\n\t\t\tnew ZeroLine(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { WordCloudModel } from '@/model/wordcloud'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { WordCloudChartOptions } from '@/interfaces/charts'\nimport type { WorldCloudChartOptions } from '@/interfaces'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { WordCloud } from '@/components/graphs/wordcloud'\n\nexport class WordCloudChart extends Chart {\n\tmodel = new WordCloudModel(this.services)\n\n\tconstructor(\n\t\tholder: HTMLDivElement,\n\t\tchartConfigs: ChartConfig<WordCloudChartOptions | WorldCloudChartOptions>\n\t) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.wordCloudChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew WordCloud(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.PIE\n\t\t\t})\n\t\t]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n"],"names":["castSlice","array","start","end","length","baseSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","string","asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","createCaseFirst","methodName","toString","strSymbols","chr","trailing","upperFirst","capitalize","camelCase","createCompounder","result","word","index","Chart","holder","chartConfigs","CanvasZoom","DOMUtils","Events","Files","GradientUtils","Transitions","ChartModel","serviceName","serviceObj","ChartEvents","e","animate","getProperty","component","pendingTransitions","promises","transitionID","graphFrameComponents","configs","options","toolbarEnabled","legendComponent","Legend","LayoutGrowth","isZoomEnabled","CanvasChartClip","titleAvailable","titleComponent","Title","toolbarComponent","Toolbar","headerComponent","LayoutComponent","LayoutDirection","LayoutAlignItems","graphFrameComponent","RenderTypes","isLegendEnabled","fullFrameComponentDirection","legendPosition","LegendOrientations","legendSpacerComponent","Spacer","fullFrameComponent","topLevelLayoutComponents","titleSpacerComponent","Tooltip","Modal","AxisChart","CartesianScales","Curves","Zoom","ChartModelCartesian","isZoomBarEnabled","AxisPositions","mainXAxisPosition","mainXScaleType","zoomBarEnabled","ScaleTypes","isZoomBarLocked","ChartClip","ChartBrush","Threshold","Highlight","LegendPositions","zoomBarComponent","ZoomBar","AxisChartsTooltip","AlluvialChart","AlluvialChartModel","mergeDefaultChartOptions","Alluvial","AreaChart","cloneDeep","TwoDimensionalAxes","Grid","Ruler","Line","Area","Scatter","Skeleton","Skeletons","BoxplotChart","BoxplotChartModel","Boxplot","ZeroLine","BubbleChart","Bubble","BulletChart","BulletChartModel","Bullet","ChoroplethChart","ChoroplethModel","configOptions","ColorScaleLegend","Choropleth","CirclePackChart","CirclePackChartModel","CirclePack","graphComponentsMap","ChartTypes","StackedArea","StackedScatter","StackedRuler","SimpleBar","GroupedBar","StackedBar","ComboChart","chartOptions","comboChartTypes","counter","graphComponents","graph","type","stacked","key","merge","Component","item","flatten","stackedRulerEnabled","chartObject","PieChart","extending","PieChartModel","Pie","DonutChart","Donut","GaugeChart","GaugeChartModel","Gauge","GroupedBarChart","HeatmapChart","HeatmapModel","Heatmap","HistogramChart","ChartModelBinned","BinnedRuler","Histogram","LineChart","SkeletonLines","LollipopChart","Lollipop","MeterChart","MeterChartModel","_a","meterComponents","MeterTitle","Meter","graphFrame","RadarChart","RadarChartModel","Radar","ScatterChart","TreeChart","TreeChartModel","Tree","TreemapChart","TreemapChartModel","Treemap","SimpleBarChart","StackedAreaChart","StackedBarChart","WordCloudChart","WordCloudModel","WordCloud"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../node_modules/lodash-es/_castSlice.js","../../../node_modules/lodash-es/_hasUnicode.js","../../../node_modules/lodash-es/_asciiToArray.js","../../../node_modules/lodash-es/_unicodeToArray.js","../../../node_modules/lodash-es/_stringToArray.js","../../../node_modules/lodash-es/_createCaseFirst.js","../../../node_modules/lodash-es/upperFirst.js","../../../node_modules/lodash-es/capitalize.js","../../../node_modules/lodash-es/camelCase.js","../src/chart.ts","../src/axis-chart.ts","../src/charts/alluvial.ts","../src/charts/area.ts","../src/charts/boxplot.ts","../src/charts/bubble.ts","../src/charts/bullet.ts","../src/charts/choropleth.ts","../src/charts/circle-pack.ts","../src/charts/combo.ts","../src/charts/pie.ts","../src/charts/donut.ts","../src/charts/gauge.ts","../src/charts/bar-grouped.ts","../src/charts/heatmap.ts","../src/charts/histogram.ts","../src/charts/line.ts","../src/charts/lollipop.ts","../src/charts/meter.ts","../src/charts/radar.ts","../src/charts/scatter.ts","../src/charts/tree.ts","../src/charts/treemap.ts","../src/charts/bar-simple.ts","../src/charts/area-stacked.ts","../src/charts/bar-stacked.ts","../src/charts/wordcloud.ts"],"sourcesContent":["import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import { getProperty } from '@/tools'\nimport { ChartModel } from '@/model/model'\nimport { ChartConfig } from '@/interfaces/model'\nimport { BaseChartOptions } from '@/interfaces/charts'\nimport {\n\tLayoutGrowth,\n\tLayoutAlignItems,\n\tLayoutDirection,\n\tLegendOrientations,\n\tEvents as ChartEvents,\n\tRenderTypes\n} from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Toolbar } from '@/components/axes/toolbar'\nimport { LayoutComponent } from '@/components/layout'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Modal } from '@/components/essentials/modal'\nimport { Title } from '@/components/essentials/title'\nimport { Legend } from '@/components/essentials/legend'\nimport { CanvasChartClip } from '@/components/essentials/canvas-chart-clip'\nimport { Tooltip } from '@/components/essentials/tooltip'\nimport { CanvasZoom } from '@/services/canvas-zoom'\nimport { DOMUtils } from '@/services/essentials/dom-utils'\nimport { Events } from '@/services/essentials/events'\nimport { Files } from '@/services/essentials/files'\nimport { GradientUtils } from '@/services/essentials/gradient-utils'\nimport { Transitions } from '@/services/essentials/transitions'\n\nexport class Chart {\n\tcomponents: Component[] = []\n\tservices: any = {\n\t\tcanvasZoom: CanvasZoom,\n\t\tdomUtils: DOMUtils,\n\t\tevents: Events,\n\t\tfiles: Files,\n\t\tgradientUtils: GradientUtils,\n\t\ttransitions: Transitions\n\t}\n\tmodel: ChartModel = new ChartModel(this.services)\n\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BaseChartOptions>) {\n\t\t// Allow for subclasses to override the constructor with additional parameters or initialization logic without breaking the API contract of the Chart class\n\t}\n\n\t// Contains the code that uses properties that are overridable by the super-class\n\tinit(holder: HTMLDivElement, chartConfigs: ChartConfig<BaseChartOptions>) {\n\t\t// Store the holder in the model\n\t\tthis.model.set({ holder }, { skipUpdate: true })\n\n\t\t// Initialize all services\n\t\tObject.keys(this.services).forEach(serviceName => {\n\t\t\tconst serviceObj = this.services[serviceName]\n\t\t\tthis.services[serviceName] = new serviceObj(this.model, this.services)\n\t\t})\n\n\t\t// Call update() when model has been updated\n\t\tthis.services.events.addEventListener(ChartEvents.Model.UPDATE, (e: CustomEvent) => {\n\t\t\tconst animate = !!getProperty(e, 'detail', 'animate')\n\t\t\tthis.update(animate)\n\t\t})\n\n\t\t// Set model data & options\n\t\tthis.model.setData(chartConfigs.data)\n\n\t\t// Set chart resize event listener\n\t\tthis.services.events.addEventListener(ChartEvents.Chart.RESIZE, () => {\n\t\t\tthis.update(false)\n\t\t})\n\n\t\tthis.components = this.getComponents()\n\n\t\tthis.update()\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents(): Component[] {\n\t\tconsole.error('getComponents() method is not implemented')\n\n\t\treturn []\n\t}\n\n\tupdate(animate = true) {\n\t\t// Called 4 times whenever a chart is displayed\n\t\tif (!this.components) {\n\t\t\treturn\n\t\t}\n\n\t\t// Update all services\n\t\tObject.keys(this.services).forEach((serviceName: string) => {\n\t\t\tconst serviceObj = this.services[serviceName]\n\t\t\tserviceObj.update()\n\t\t})\n\n\t\t// Render all components\n\t\tthis.components.forEach(component => component.render(animate))\n\n\t\t// Asynchronously dispatch a \"render-finished\" event\n\t\t// This is needed because of d3-transitions\n\t\t// Since at the start of the transition\n\t\t// Elements do not hold their final size or position\n\t\tconst pendingTransitions = this.services.transitions.getPendingTransitions()\n\t\tconst promises = Object.keys(pendingTransitions).map(transitionID => {\n\t\t\tconst transition = pendingTransitions[transitionID]\n\t\t\treturn transition.end().catch((e: any) => e) // Skip rejects since we don't care about those;\n\t\t})\n\n\t\tPromise.all(promises).then(() =>\n\t\t\tthis.services.events.dispatchEvent(ChartEvents.Chart.RENDER_FINISHED)\n\t\t)\n\t}\n\n\tdestroy() {\n\t\t// Call the destroy() method on all components\n\t\tthis.components.forEach(component => component.destroy())\n\n\t\t// Remove the chart holder\n\t\tthis.services.domUtils.getHolder().remove()\n\n\t\tthis.model.set({ destroyed: true }, { skipUpdate: true })\n\t}\n\n\tprotected getChartComponents(graphFrameComponents: any[], configs?: object) {\n\t\tconst options = this.model.getOptions()\n\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [new Legend(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\t// if canvas zoom is enabled\n\t\tconst isZoomEnabled = getProperty(options, 'canvasZoom', 'enabled')\n\n\t\tif (isZoomEnabled && isZoomEnabled === true) {\n\t\t\tgraphFrameComponents.push(new CanvasChartClip(this.model, this.services))\n\t\t}\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: getProperty(configs, 'graphFrameRenderType') || RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'excludeLegend') !== true && options.legend.enabled !== false\n\t\t// TODO: REUSE BETWEEN AXISCHART & CHART\n\t\t// Decide the position of the legend in reference to the chart\n\t\tlet fullFrameComponentDirection = LayoutDirection.COLUMN\n\t\tif (isLegendEnabled) {\n\t\t\tconst legendPosition = getProperty(options, 'legend', 'position')\n\t\t\tif (legendPosition === 'left') {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW\n\n\t\t\t\tif (!options.legend.orientation) {\n\t\t\t\t\toptions.legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === 'right') {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW_REVERSE\n\n\t\t\t\tif (!options.legend.orientation) {\n\t\t\t\t\toptions.legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === 'bottom') {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\t\t\t}\n\t\t}\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\t// Add chart title if it exists\n\t\tconst topLevelLayoutComponents: any[] = []\n\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew Tooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n}\n","import { Chart } from './chart'\nimport { getProperty } from './tools'\nimport { ChartModelCartesian } from '@/model/cartesian-charts'\nimport { AxisChartOptions } from '@/interfaces/charts'\nimport { ChartConfig } from '@/interfaces/model'\nimport {\n\tAxisPositions,\n\tLayoutAlignItems,\n\tLayoutDirection,\n\tLayoutGrowth,\n\tLegendOrientations,\n\tLegendPositions,\n\tRenderTypes,\n\tScaleTypes\n} from '@/interfaces/enums'\nimport { ChartBrush } from '@/components/axes/grid-brush'\nimport { ChartClip } from '@/components/axes/chart-clip'\nimport { Toolbar } from '@/components/axes/toolbar'\nimport { ZoomBar } from '@/components/axes/zoom-bar'\nimport { LayoutComponent } from '@/components/layout'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Modal } from '@/components/essentials/modal'\nimport { Legend } from '@/components/essentials/legend'\nimport { Threshold } from '@/components/essentials/threshold'\nimport { Highlight } from '@/components/essentials/highlights'\nimport { Title } from '@/components/essentials/title'\nimport { AxisChartsTooltip } from '@/components/essentials/tooltip-axis'\nimport { CartesianScales } from '@/services/scales-cartesian'\nimport { Curves } from '@/services/curves'\nimport { Zoom } from '@/services/zoom'\n\nexport class AxisChart extends Chart {\n\tservices: any = Object.assign(this.services, {\n\t\tcartesianScales: CartesianScales,\n\t\tcurves: Curves,\n\t\tzoom: Zoom\n\t})\n\tmodel: ChartModelCartesian = new ChartModelCartesian(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AxisChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\t}\n\n\tprotected getAxisChartComponents(graphFrameComponents: any[], configs?: any) {\n\t\tconst options = this.model.getOptions()\n\t\tconst isZoomBarEnabled = getProperty(options, 'zoomBar', AxisPositions.TOP, 'enabled')\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tthis.services.cartesianScales.determineAxisDuality()\n\t\tthis.services.cartesianScales.findDomainAndRangeAxes() // need to do this before getMainXAxisPosition()\n\t\tthis.services.cartesianScales.determineOrientation()\n\n\t\tconst mainXAxisPosition = this.services.cartesianScales.getMainXAxisPosition()\n\t\tconst mainXScaleType = getProperty(options, 'axes', mainXAxisPosition, 'scaleType')\n\t\t// @todo - Zoom Bar only supports main axis at BOTTOM axis and time scale for now\n\t\tconst zoomBarEnabled =\n\t\t\tisZoomBarEnabled &&\n\t\t\tmainXAxisPosition === AxisPositions.BOTTOM &&\n\t\t\tmainXScaleType === ScaleTypes.TIME\n\n\t\t// @todo - should check if zoom bar in all axes are locked\n\t\tconst isZoomBarLocked = this.services.zoom.isZoomBarLocked(AxisPositions.TOP)\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [new Legend(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\t// if all zoom bars are locked, no need to add chart brush\n\t\tif (zoomBarEnabled && !isZoomBarLocked) {\n\t\t\tgraphFrameComponents.push(\n\t\t\t\tnew ChartClip(this.model, this.services),\n\t\t\t\tnew ChartBrush(this.model, this.services)\n\t\t\t)\n\t\t}\n\n\t\tgraphFrameComponents.push(new Threshold(this.model, this.services))\n\t\tgraphFrameComponents.push(new Highlight(this.model, this.services))\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'legend', 'enabled') !== false &&\n\t\t\tthis.model.getOptions().legend.enabled !== false\n\n\t\t// Decide the position of the legend in reference to the chart\n\t\tlet fullFrameComponentDirection = LayoutDirection.COLUMN\n\t\tif (isLegendEnabled) {\n\t\t\tconst legendPosition = getProperty(this.model.getOptions(), 'legend', 'position')\n\t\t\tif (legendPosition === LegendPositions.LEFT) {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW\n\n\t\t\t\tif (!this.model.getOptions().legend.orientation) {\n\t\t\t\t\tthis.model.getOptions().legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === LegendPositions.RIGHT) {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.ROW_REVERSE\n\n\t\t\t\tif (!this.model.getOptions().legend.orientation) {\n\t\t\t\t\tthis.model.getOptions().legend.orientation = LegendOrientations.VERTICAL\n\t\t\t\t}\n\t\t\t} else if (legendPosition === LegendPositions.BOTTOM) {\n\t\t\t\tfullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\t\t\t}\n\t\t}\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst zoomBarComponent = {\n\t\t\tid: 'zoom-bar',\n\t\t\tcomponents: [new ZoomBar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst topLevelLayoutComponents = []\n\t\t// header component is required for either title or toolbar\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\tif (zoomBarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(zoomBarComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew AxisChartsTooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n}\n","import { Chart } from '@/chart'\nimport { AlluvialChartModel } from '@/model/alluvial'\nimport { options } from '@/configuration'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { AlluvialChartOptions } from '@/interfaces/charts'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { Alluvial } from '@/components/graphs/alluvial'\nimport type { Component } from '@/components/component'\n\nexport class AlluvialChart extends Chart {\n\tmodel = new AlluvialChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AlluvialChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.alluvialChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Alluvial(this.model, this.services)]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents, {\n\t\t\texcludeLegend: true\n\t\t})\n\t\treturn components\n\t}\n}\n","import { cloneDeep } from 'lodash-es'\nimport { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { AreaChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Area } from '@/components/graphs/area'\nimport { Line } from '@/components/graphs/line'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class AreaChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AreaChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(\n\t\t\tmergeDefaultChartOptions(cloneDeep(options.areaChart), chartConfigs.options)\n\t\t)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Line(this.model, this.services),\n\t\t\tnew Area(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services, {\n\t\t\t\tfadeInOnChartHolderMouseover: true,\n\t\t\t\thandleThresholds: true\n\t\t\t}),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { BoxplotChartModel } from '@/model/boxplot'\nimport type { BoxplotChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Boxplot } from '@/components/graphs/boxplot'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class BoxplotChart extends AxisChart {\n\tmodel = new BoxplotChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BoxplotChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.boxplotChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Boxplot(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents, {\n\t\t\tlegend: {\n\t\t\t\tenabled: false\n\t\t\t}\n\t\t})\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { BubbleChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Bubble } from '@/components/graphs/bubble'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class BubbleChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BubbleChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.bubbleChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Bubble(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { BulletChartModel } from '@/model/bullet'\nimport type { BulletChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport { Bullet } from '@/components/graphs/bullet'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class BulletChart extends AxisChart {\n\tmodel = new BulletChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BulletChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.bulletChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Bullet(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options as configOptions } from '@/configuration'\nimport { getProperty, mergeDefaultChartOptions } from '@/tools'\nimport { ChoroplethModel } from '@/model/choropleth'\nimport type { ChoroplethChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { LayoutDirection, LayoutGrowth, RenderTypes, LayoutAlignItems } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Choropleth } from '@/components/graphs/choropleth'\nimport { Modal } from '@/components/essentials/modal'\nimport { LayoutComponent } from '@/components/layout/layout'\nimport { ColorScaleLegend } from '@/components/essentials/color-scale-legend'\nimport { Title } from '@/components/essentials/title'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Toolbar } from '@/components/axes/toolbar'\nimport { Tooltip } from '@/components/essentials/tooltip'\n\nexport class ChoroplethChart extends Chart {\n\tmodel = new ChoroplethModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<ChoroplethChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(\n\t\t\tmergeDefaultChartOptions(configOptions.choroplethChart, chartConfigs.options)\n\t\t)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t// Custom getChartComponents - Implements getChartComponents\n\t// Removes zoombar support and additional `features` that are not supported in heatmap\n\tprotected getChartComponents(graphFrameComponents: any[], configs?: any) {\n\t\tconst options = this.model.getOptions()\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [\n\t\t\t\tnew ColorScaleLegend(this.model, this.services, {\n\t\t\t\t\tchartType: 'choropleth'\n\t\t\t\t})\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'legend', 'enabled') !== false &&\n\t\t\tthis.model.getOptions().legend.enabled !== false &&\n\t\t\tthis.model.getData().length > 0\n\n\t\t// Decide the position of the legend in reference to the chart\n\t\tconst fullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services, { size: 15 })],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst topLevelLayoutComponents = []\n\t\t// header component is required for either title or toolbar\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew Tooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Choropleth(this.model, this.services)]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { CirclePackChartModel } from '@/model/circle-pack'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { CirclePackChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { CirclePack } from '@/components/graphs/circle-pack'\n\nexport class CirclePackChart extends Chart {\n\tmodel = new CirclePackChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<CirclePackChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.circlePackChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new CirclePack(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { camelCase, flatten, merge } from 'lodash-es'\nimport { AxisChart } from '@/axis-chart'\nimport { options as configOptions } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { ChartTypes, Skeletons } from '@/interfaces/enums'\nimport type { ComboChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Line } from '@/components/graphs/line'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { SimpleBar } from '@/components/graphs/bar-simple'\nimport { GroupedBar } from '@/components/graphs/bar-grouped'\nimport { StackedRuler } from '@/components/axes/ruler-stacked'\nimport { Area } from '@/components/graphs/area'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { StackedArea } from '@/components/graphs/area-stacked'\nimport { StackedBar } from '@/components/graphs/bar-stacked'\nimport { StackedScatter } from '@/components/graphs/scatter-stacked'\n\nconst graphComponentsMap = {\n\t[ChartTypes.LINE]: [Line, Scatter],\n\t[ChartTypes.SCATTER]: [Scatter],\n\t[ChartTypes.AREA]: [Area, Line, Scatter],\n\t[ChartTypes.STACKED_AREA]: [StackedArea, Line, StackedScatter, StackedRuler],\n\t[ChartTypes.SIMPLE_BAR]: [SimpleBar],\n\t[ChartTypes.GROUPED_BAR]: [GroupedBar, ZeroLine],\n\t[ChartTypes.STACKED_BAR]: [StackedBar, StackedRuler]\n}\n\nexport class ComboChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<ComboChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tconst chartOptions = mergeDefaultChartOptions(configOptions.comboChart, chartConfigs.options)\n\n\t\t// Warn user if no comboChartTypes defined\n\t\t// Use skeleton chart instead\n\t\tif (!chartConfigs.options.comboChartTypes) {\n\t\t\tconsole.error('No comboChartTypes defined for the Combo Chart!')\n\t\t\t// add a default chart to get an empty chart\n\t\t\tchartOptions.comboChartTypes = [{ type: ChartTypes.LINE, correspondingDatasets: [] }]\n\t\t}\n\n\t\t// set the global options\n\t\tthis.model.setOptions(chartOptions)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\tgetGraphComponents() {\n\t\tconst { comboChartTypes }: { comboChartTypes: Component[] } = this.model.getOptions()\n\t\tlet counter = 0\n\t\tconst graphComponents: Component[] = comboChartTypes\n\t\t\t.map((graph: any) => {\n\t\t\t\tconst type = graph.type\n\t\t\t\tlet options: any\n\n\t\t\t\t// initializes the components using input strings with the base configs for each chart\n\t\t\t\tif (typeof graph.type === 'string') {\n\t\t\t\t\t// check if it is in the components map\n\t\t\t\t\t// if it isn't then it is not a valid carbon chart to use in combo\n\t\t\t\t\tif (!Object.keys(graphComponentsMap).includes(graph.type)) {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t`Invalid chart type \"${graph.type}\" specified for combo chart. Please refer to the ComboChart tutorial for more guidance.`\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t\tlet stacked = false\n\t\t\t\t\tconst key = `${camelCase(graph.type)}Chart` as keyof typeof configOptions\n\t\t\t\t\toptions = merge({}, configOptions[key], this.model.getOptions(), graph.options)\n\t\t\t\t\t// if we are creating a stacked area, the contained Line chart needs to know it is stacked\n\t\t\t\t\tif (graph.type === ChartTypes.STACKED_AREA) {\n\t\t\t\t\t\tstacked = true\n\t\t\t\t\t}\n\t\t\t\t\treturn graphComponentsMap[graph.type as keyof typeof graphComponentsMap].map(\n\t\t\t\t\t\t(Component: any) =>\n\t\t\t\t\t\t\tnew Component(this.model, this.services, {\n\t\t\t\t\t\t\t\tgroups: graph.correspondingDatasets,\n\t\t\t\t\t\t\t\tid: counter++,\n\t\t\t\t\t\t\t\toptions: options,\n\t\t\t\t\t\t\t\tstacked\n\t\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\t// user has imported a type or custom component to instantiate\n\t\t\t\t\toptions = merge({}, this.model.getOptions(), graph.options)\n\t\t\t\t\treturn new type(this.model, this.services, {\n\t\t\t\t\t\tgroups: graph.correspondingDatasets,\n\t\t\t\t\t\tid: counter++,\n\t\t\t\t\t\toptions: options\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t\t.filter((item: any) => item !== null)\n\n\t\treturn flatten(graphComponents)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst { comboChartTypes } = this.model.getOptions()\n\t\t// don't add the regular ruler if stacked ruler is added\n\t\tconst stackedRulerEnabled = comboChartTypes.some(\n\t\t\t(chartObject: any) =>\n\t\t\t\tchartObject.type === ChartTypes.STACKED_BAR || chartObject.type === ChartTypes.STACKED_AREA\n\t\t)\n\n\t\t// Specify what to render inside the graph-frame\n\t\tconst graphFrameComponents = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t}),\n\t\t\t...(stackedRulerEnabled ? [] : [new Ruler(this.model, this.services)]),\n\t\t\t...this.getGraphComponents()\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { PieChartModel } from '@/model/pie'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { PieChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Pie } from '@/components/graphs/pie'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class PieChart extends Chart {\n\tmodel = new PieChartModel(this.services)\n\n\t// TODO - Optimize the use of \"extending\"\n\tconstructor(\n\t\tholder: HTMLDivElement,\n\t\tchartConfigs: ChartConfig<PieChartOptions>,\n\t\textending = false\n\t) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// TODO - Optimize the use of \"extending\"\n\t\tif (extending) {\n\t\t\treturn\n\t\t}\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.pieChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew Pie(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.PIE\n\t\t\t})\n\t\t]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { PieChart } from './pie'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { PieChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Donut } from '@/components/graphs/donut'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class DonutChart extends PieChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<PieChartOptions>) {\n\t\tsuper(holder, chartConfigs, true)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.donutChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew Donut(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.DONUT\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { GaugeChartOptions } from '@/interfaces/charts'\nimport { GaugeChartModel } from '@/model/gauge'\nimport type { Component } from '@/components/component'\nimport { Gauge } from '@/components/graphs/gauge'\n\nexport class GaugeChart extends Chart {\n\tmodel = new GaugeChartModel(this.services)\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<GaugeChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.gaugeChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Gauge(this.model, this.services)]\n\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { BarChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { GroupedBar } from '@/components/graphs/bar-grouped'\n\nexport class GroupedBarChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.groupedBarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew GroupedBar(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options as configOptions } from '@/configuration'\nimport { getProperty, mergeDefaultChartOptions } from '@/tools'\nimport { HeatmapModel } from '@/model/heatmap'\nimport type { HeatmapChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { LayoutDirection, LayoutGrowth, RenderTypes, LayoutAlignItems } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Heatmap } from '@/components/graphs/heatmap'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Modal } from '@/components/essentials/modal'\nimport { LayoutComponent } from '@/components/layout/layout'\nimport { ColorScaleLegend } from '@/components/essentials/color-scale-legend'\nimport { Title } from '@/components/essentials/title'\nimport { AxisChartsTooltip } from '@/components/essentials/tooltip-axis'\nimport { Spacer } from '@/components/layout/spacer'\nimport { Toolbar } from '@/components/axes/toolbar'\n\nexport class HeatmapChart extends AxisChart {\n\tmodel = new HeatmapModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<HeatmapChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(\n\t\t\tmergeDefaultChartOptions(configOptions.heatmapChart, chartConfigs.options)\n\t\t)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t// Custom getChartComponents - Implements getChartComponents\n\t// Removes zoombar support and additional `features` that are not supported in heatmap\n\tprotected getAxisChartComponents(graphFrameComponents: any[], configs?: any) {\n\t\tconst options = this.model.getOptions()\n\t\tconst toolbarEnabled = getProperty(options, 'toolbar', 'enabled')\n\n\t\tthis.services.cartesianScales.determineAxisDuality()\n\t\tthis.services.cartesianScales.findDomainAndRangeAxes() // need to do this before getMainXAxisPosition()\n\t\tthis.services.cartesianScales.determineOrientation()\n\n\t\tconst titleAvailable = !!this.model.getOptions().title\n\t\tconst titleComponent = {\n\t\t\tid: 'title',\n\t\t\tcomponents: [new Title(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst toolbarComponent = {\n\t\t\tid: 'toolbar',\n\t\t\tcomponents: [new Toolbar(this.model, this.services)],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst headerComponent = {\n\t\t\tid: 'header',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t// always add title to keep layout correct\n\t\t\t\t\t\ttitleComponent,\n\t\t\t\t\t\t...(toolbarEnabled ? [toolbarComponent] : [])\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: LayoutDirection.ROW,\n\t\t\t\t\t\talignItems: LayoutAlignItems.CENTER\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst legendComponent = {\n\t\t\tid: 'legend',\n\t\t\tcomponents: [\n\t\t\t\tnew ColorScaleLegend(this.model, this.services, {\n\t\t\t\t\tchartType: 'heatmap'\n\t\t\t\t})\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.PREFERRED,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst graphFrameComponent = {\n\t\t\tid: 'graph-frame',\n\t\t\tcomponents: graphFrameComponents,\n\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\trenderType: RenderTypes.SVG\n\t\t}\n\n\t\tconst isLegendEnabled =\n\t\t\tgetProperty(configs, 'legend', 'enabled') !== false &&\n\t\t\tthis.model.getOptions().legend.enabled !== false &&\n\t\t\tthis.model.getData().length > 0\n\n\t\t// Decide the position of the legend in reference to the chart\n\t\tconst fullFrameComponentDirection = LayoutDirection.COLUMN_REVERSE\n\n\t\tconst legendSpacerComponent = {\n\t\t\tid: 'spacer',\n\t\t\tcomponents: [new Spacer(this.model, this.services, { size: 15 })],\n\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t}\n\n\t\tconst fullFrameComponent = {\n\t\t\tid: 'full-frame',\n\t\t\tcomponents: [\n\t\t\t\tnew LayoutComponent(\n\t\t\t\t\tthis.model,\n\t\t\t\t\tthis.services,\n\t\t\t\t\t[\n\t\t\t\t\t\t...(isLegendEnabled ? [legendComponent] : []),\n\t\t\t\t\t\t...(isLegendEnabled ? [legendSpacerComponent] : []),\n\t\t\t\t\t\tgraphFrameComponent\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tdirection: fullFrameComponentDirection\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t],\n\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t}\n\n\t\tconst topLevelLayoutComponents: any[] = []\n\t\t// header component is required for either title or toolbar\n\t\tif (titleAvailable || toolbarEnabled) {\n\t\t\ttopLevelLayoutComponents.push(headerComponent)\n\n\t\t\tconst titleSpacerComponent = {\n\t\t\t\tid: 'spacer',\n\t\t\t\tcomponents: [\n\t\t\t\t\tnew Spacer(this.model, this.services, toolbarEnabled ? { size: 15 } : undefined)\n\t\t\t\t],\n\t\t\t\tgrowth: LayoutGrowth.PREFERRED\n\t\t\t}\n\n\t\t\ttopLevelLayoutComponents.push(titleSpacerComponent)\n\t\t}\n\t\ttopLevelLayoutComponents.push(fullFrameComponent)\n\n\t\treturn [\n\t\t\tnew AxisChartsTooltip(this.model, this.services),\n\t\t\tnew Modal(this.model, this.services),\n\t\t\tnew LayoutComponent(this.model, this.services, topLevelLayoutComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Heatmap(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { ChartModelBinned } from '@/model/binned-charts'\nimport type { HistogramChartOptions } from '@/interfaces/charts'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Histogram } from '@/components/graphs/histogram'\nimport { BinnedRuler } from '@/components/axes/ruler-binned'\n\nexport class HistogramChart extends AxisChart {\n\tmodel = new ChartModelBinned(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<HistogramChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.histogramChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\n\t\tthis.update()\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew BinnedRuler(this.model, this.services),\n\t\t\tnew Histogram(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { LineChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Line } from '@/components/graphs/line'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { SkeletonLines } from '@/components/graphs/skeleton-lines'\n\nexport class LineChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<LineChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.lineChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Line(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services, { handleThresholds: true }),\n\t\t\tnew SkeletonLines(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { LollipopChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { Lollipop } from '@/components/graphs/lollipop'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class LollipopChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<LollipopChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.lollipopChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Lollipop(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { cloneDeep, merge } from 'lodash-es'\nimport { Chart } from '@/chart'\nimport { options as configOptions } from '@/configuration'\nimport { getProperty } from '@/tools'\nimport { MeterChartModel } from '@/model/meter'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { MeterChartOptions } from '@/interfaces/charts'\nimport { LayoutGrowth, LayoutDirection, RenderTypes } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { LayoutComponent } from '@/components/layout'\nimport { Meter } from '@/components/graphs/meter'\nimport { MeterTitle } from '@/components/essentials/title-meter'\nimport { Spacer } from '@/components/layout/spacer'\n\nexport class MeterChart extends Chart {\n\tmodel = new MeterChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<MeterChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// use prop meter options or regular meter options\n\t\tconst options = chartConfigs.options.meter?.proportional\n\t\t\t? merge(cloneDeep(configOptions.proportionalMeterChart), chartConfigs.options)\n\t\t\t: merge(cloneDeep(configOptions.meterChart), chartConfigs.options)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(options)\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst showLabels = getProperty(this.model.getOptions(), 'meter', 'showLabels')\n\t\tconst meterComponents = [\n\t\t\t...(showLabels\n\t\t\t\t? [\n\t\t\t\t\t\t// Meter has a unique dataset title within the graph\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'meter-title',\n\t\t\t\t\t\t\tcomponents: [new MeterTitle(this.model, this.services)],\n\t\t\t\t\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\t\t\t\t\trenderType: RenderTypes.SVG\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Create the title spacer\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'spacer',\n\t\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t\tnew Spacer(this.model, this.services, {\n\t\t\t\t\t\t\t\t\tsize: 8\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tgrowth: LayoutGrowth.STRETCH\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t// Specify what to render inside the graph only\n\t\t\t{\n\t\t\t\tid: 'meter-graph',\n\t\t\t\tcomponents: [new Meter(this.model, this.services)],\n\t\t\t\tgrowth: LayoutGrowth.STRETCH,\n\t\t\t\trenderType: RenderTypes.SVG\n\t\t\t}\n\t\t]\n\n\t\t// the graph frame for meter includes the custom title (and spacer)\n\t\tconst graphFrame: Component[] = [\n\t\t\tnew LayoutComponent(this.model, this.services, meterComponents, {\n\t\t\t\tdirection: LayoutDirection.COLUMN\n\t\t\t})\n\t\t]\n\n\t\t// add the meter title as a top level component\n\t\tconst components: Component[] = this.getChartComponents(graphFrame, {\n\t\t\tgraphFrameRenderType: RenderTypes.HTML\n\t\t})\n\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { RadarChartModel } from '@/model/radar'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { RadarChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Radar } from '@/components/graphs/radar'\n\nexport class RadarChart extends Chart {\n\tmodel = new RadarChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<RadarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.radarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Radar(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { ScatterChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { Ruler } from '@/components/axes/ruler'\nimport { Scatter } from '@/components/graphs/scatter'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class ScatterChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<ScatterChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.scatterChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew Ruler(this.model, this.services),\n\t\t\tnew Scatter(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { TreeChartModel } from '@/model/tree'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { TreeChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Tree } from '@/components/graphs/tree'\n\nexport class TreeChart extends Chart {\n\tmodel = new TreeChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<TreeChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.treeChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Tree(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents, {\n\t\t\texcludeLegend: true\n\t\t})\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { TreemapChartModel } from '@/model/treemap'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { TreemapChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Treemap } from '@/components/graphs/treemap'\n\nexport class TreemapChart extends Chart {\n\tmodel = new TreemapChartModel(this.services)\n\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<TreemapChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.treemapChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [new Treemap(this.model, this.services)]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { BarChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { SimpleBar } from '@/components/graphs/bar-simple'\n\nexport class SimpleBarChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.simpleBarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew SimpleBar(this.model, this.services),\n\t\t\tnew ZeroLine(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { Component } from '@/components/component'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { AreaChartOptions } from '@/interfaces/charts'\nimport { Skeletons } from '@/interfaces/enums'\nimport { Grid } from '@/components/axes/grid'\nimport { StackedArea } from '@/components/graphs/area-stacked'\nimport { StackedRuler } from '@/components/axes/ruler-stacked'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { Line } from '@/components/graphs/line'\nimport { StackedScatter } from '@/components/graphs/scatter-stacked'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class StackedAreaChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<AreaChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.stackedAreaChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew StackedRuler(this.model, this.services),\n\t\t\tnew StackedArea(this.model, this.services),\n\t\t\tnew Line(this.model, this.services, { stacked: true }),\n\t\t\tnew StackedScatter(this.model, this.services, {\n\t\t\t\tfadeInOnChartHolderMouseover: true,\n\t\t\t\thandleThresholds: true,\n\t\t\t\tstacked: true\n\t\t\t}),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.GRID\n\t\t\t})\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { AxisChart } from '@/axis-chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport type { ChartConfig } from '@/interfaces/model'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { BarChartOptions } from '@/interfaces/charts'\nimport type { Component } from '@/components/component'\nimport { Grid } from '@/components/axes/grid'\nimport { StackedBar } from '@/components/graphs/bar-stacked'\nimport { StackedRuler } from '@/components/axes/ruler-stacked'\nimport { TwoDimensionalAxes } from '@/components/axes/two-dimensional-axes'\nimport { ZeroLine } from '@/components/axes/zero-line'\nimport { Skeleton } from '@/components/graphs/skeleton'\n\nexport class StackedBarChart extends AxisChart {\n\tconstructor(holder: HTMLDivElement, chartConfigs: ChartConfig<BarChartOptions>) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.stackedBarChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew TwoDimensionalAxes(this.model, this.services),\n\t\t\tnew Grid(this.model, this.services),\n\t\t\tnew StackedRuler(this.model, this.services),\n\t\t\tnew StackedBar(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.VERT_OR_HORIZ\n\t\t\t}),\n\t\t\tnew ZeroLine(this.model, this.services)\n\t\t]\n\n\t\tconst components: Component[] = this.getAxisChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n","import { Chart } from '@/chart'\nimport { options } from '@/configuration'\nimport { mergeDefaultChartOptions } from '@/tools'\nimport { WordCloudModel } from '@/model/wordcloud'\nimport type { ChartConfig } from '@/interfaces/model'\nimport type { WordCloudChartOptions } from '@/interfaces/charts'\nimport type { WorldCloudChartOptions } from '@/interfaces'\nimport { Skeletons } from '@/interfaces/enums'\nimport type { Component } from '@/components/component'\nimport { Skeleton } from '@/components/graphs/skeleton'\nimport { WordCloud } from '@/components/graphs/wordcloud'\n\nexport class WordCloudChart extends Chart {\n\tmodel = new WordCloudModel(this.services)\n\n\tconstructor(\n\t\tholder: HTMLDivElement,\n\t\tchartConfigs: ChartConfig<WordCloudChartOptions | WorldCloudChartOptions>\n\t) {\n\t\tsuper(holder, chartConfigs)\n\n\t\t// Merge the default options for this chart\n\t\t// With the user provided options\n\t\tthis.model.setOptions(mergeDefaultChartOptions(options.wordCloudChart, chartConfigs.options))\n\n\t\t// Initialize data, services, components etc.\n\t\tthis.init(holder, chartConfigs)\n\t}\n\n\t/**\n\t * Retrieves the components to be rendered inside the graph frame.\n\t *\n\t * @returns {Component[]} An array of components to be rendered.\n\t */\n\tgetComponents() {\n\t\tconst graphFrameComponents: Component[] = [\n\t\t\tnew WordCloud(this.model, this.services),\n\t\t\tnew Skeleton(this.model, this.services, {\n\t\t\t\tskeleton: Skeletons.PIE\n\t\t\t})\n\t\t]\n\n\t\t// get the base chart components and export with tooltip\n\t\tconst components: Component[] = this.getChartComponents(graphFrameComponents)\n\t\treturn components\n\t}\n}\n"],"names":["castSlice","array","start","end","length","baseSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","string","asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","createCaseFirst","methodName","toString","strSymbols","chr","trailing","upperFirst","capitalize","camelCase","createCompounder","result","word","index","Chart","holder","chartConfigs","CanvasZoom","DOMUtils","Events","Files","GradientUtils","Transitions","ChartModel","serviceName","serviceObj","ChartEvents","e","animate","getProperty","component","pendingTransitions","promises","transitionID","graphFrameComponents","configs","options","toolbarEnabled","legendComponent","Legend","LayoutGrowth","isZoomEnabled","CanvasChartClip","titleAvailable","titleComponent","Title","toolbarComponent","Toolbar","headerComponent","LayoutComponent","LayoutDirection","LayoutAlignItems","graphFrameComponent","RenderTypes","isLegendEnabled","fullFrameComponentDirection","legendPosition","LegendOrientations","legendSpacerComponent","Spacer","fullFrameComponent","topLevelLayoutComponents","titleSpacerComponent","Tooltip","Modal","AxisChart","CartesianScales","Curves","Zoom","ChartModelCartesian","isZoomBarEnabled","AxisPositions","mainXAxisPosition","mainXScaleType","zoomBarEnabled","ScaleTypes","isZoomBarLocked","ChartClip","ChartBrush","Threshold","Highlight","LegendPositions","zoomBarComponent","ZoomBar","AxisChartsTooltip","AlluvialChart","AlluvialChartModel","mergeDefaultChartOptions","Alluvial","AreaChart","cloneDeep","TwoDimensionalAxes","Grid","Ruler","Line","Area","Scatter","Skeleton","Skeletons","BoxplotChart","BoxplotChartModel","Boxplot","ZeroLine","BubbleChart","Bubble","BulletChart","BulletChartModel","Bullet","ChoroplethChart","ChoroplethModel","configOptions","ColorScaleLegend","Choropleth","CirclePackChart","CirclePackChartModel","CirclePack","graphComponentsMap","ChartTypes","StackedArea","StackedScatter","StackedRuler","SimpleBar","GroupedBar","StackedBar","ComboChart","chartOptions","comboChartTypes","counter","graphComponents","graph","type","stacked","key","merge","Component","item","flatten","stackedRulerEnabled","chartObject","PieChart","extending","PieChartModel","Pie","DonutChart","Donut","GaugeChart","GaugeChartModel","Gauge","GroupedBarChart","HeatmapChart","HeatmapModel","Heatmap","HistogramChart","ChartModelBinned","BinnedRuler","Histogram","LineChart","SkeletonLines","LollipopChart","Lollipop","MeterChart","MeterChartModel","_a","meterComponents","MeterTitle","Meter","graphFrame","RadarChart","RadarChartModel","Radar","ScatterChart","TreeChart","TreeChartModel","Tree","TreemapChart","TreemapChartModel","Treemap","SimpleBarChart","StackedAreaChart","StackedBarChart","WordCloudChart","WordCloudModel","WordCloud"],"mappings":";;;;;;;;;;;AAWA,SAASA,GAAUC,GAAOC,GAAOC,GAAK;AACpC,MAAIC,IAASH,EAAM;AACnB,SAAAE,IAAMA,MAAQ,SAAYC,IAASD,GACQE,GAAUJ,GAAOC,GAAOC,CAAG;AACxE;ACdA,IAAIG,KAAgB,mBAChBC,KAAoB,mBACpBC,KAAwB,mBACxBC,KAAsB,mBACtBC,KAAeH,KAAoBC,KAAwBC,IAC3DE,KAAa,kBAGbC,KAAQ,WAGRC,KAAe,OAAO,MAAMD,KAAQN,KAAiBI,KAAeC,KAAa,GAAG;AASxF,SAASG,GAAWC,GAAQ;AAC1B,SAAOF,GAAa,KAAKE,CAAM;AACjC;AChBA,SAASC,GAAaD,GAAQ;AAC5B,SAAOA,EAAO,MAAM,EAAE;AACxB;ACRA,IAAIT,KAAgB,mBAChBC,KAAoB,mBACpBC,KAAwB,mBACxBC,KAAsB,mBACtBC,KAAeH,KAAoBC,KAAwBC,IAC3DE,KAAa,kBAGbM,KAAW,MAAMX,KAAgB,KACjCY,IAAU,MAAMR,KAAe,KAC/BS,IAAS,4BACTC,KAAa,QAAQF,IAAU,MAAMC,IAAS,KAC9CE,KAAc,OAAOf,KAAgB,KACrCgB,KAAa,mCACbC,KAAa,sCACbX,KAAQ,WAGRY,KAAWJ,KAAa,KACxBK,KAAW,MAAMd,KAAa,MAC9Be,KAAY,QAAQd,KAAQ,QAAQ,CAACS,IAAaC,IAAYC,EAAU,EAAE,KAAK,GAAG,IAAI,MAAME,KAAWD,KAAW,MAClHG,KAAQF,KAAWD,KAAWE,IAC9BE,KAAW,QAAQ,CAACP,KAAcH,IAAU,KAAKA,GAASI,IAAYC,IAAYN,EAAQ,EAAE,KAAK,GAAG,IAAI,KAGxGY,KAAY,OAAOV,IAAS,QAAQA,IAAS,OAAOS,KAAWD,IAAO,GAAG;AAS7E,SAASG,GAAef,GAAQ;AAC9B,SAAOA,EAAO,MAAMc,EAAS,KAAK,CAAE;AACtC;AC1BA,SAASE,GAAchB,GAAQ;AAC7B,SAAOD,GAAWC,CAAM,IACpBe,GAAef,CAAM,IACrBC,GAAaD,CAAM;AACzB;ACHA,SAASiB,GAAgBC,GAAY;AACnC,SAAO,SAASlB,GAAQ;AACtB,IAAAA,IAASmB,EAASnB,CAAM;AAExB,QAAIoB,IAAarB,GAAWC,CAAM,IAC9BgB,GAAchB,CAAM,IACpB,QAEAqB,IAAMD,IACNA,EAAW,CAAC,IACZpB,EAAO,OAAO,CAAC,GAEfsB,IAAWF,IACXnC,GAAUmC,GAAY,CAAC,EAAE,KAAK,EAAE,IAChCpB,EAAO,MAAM,CAAC;AAElB,WAAOqB,EAAIH,CAAU,EAAC,IAAKI;AAAA,EAC5B;AACH;ACXA,IAAIC,KAAaN,GAAgB,aAAa;ACD9C,SAASO,GAAWxB,GAAQ;AAC1B,SAAOuB,GAAWJ,EAASnB,CAAM,EAAE,YAAW,CAAE;AAClD;ACGA,IAAIyB,KAAYC,GAAiB,SAASC,GAAQC,GAAMC,GAAO;AAC7D,SAAAD,IAAOA,EAAK,YAAa,GAClBD,KAAUE,IAAQL,GAAWI,CAAI,IAAIA;AAC9C,CAAC;ACEM,MAAME,EAAM;AAAA;AAAA;AAAA;AAAA,EAelB,YAAYC,GAAwBC,GAA6C;AAdjF,SAAA,aAA0B,CAAC,GACX,KAAA,WAAA;AAAA,MACf,YAAYC;AAAA,MACZ,UAAUC;AAAA,MACV,QAAQC;AAAA,MACR,OAAOC;AAAA,MACP,eAAeC;AAAA,MACf,aAAaC;AAAA,IACd,GACoB,KAAA,QAAA,IAAIC,GAAW,KAAK,QAAQ;AAAA,EAAA;AAAA;AAAA,EAUhD,KAAKR,GAAwBC,GAA6C;AAEpE,SAAA,MAAM,IAAI,EAAE,QAAAD,EAAA,GAAU,EAAE,YAAY,IAAM,GAG/C,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAeS,MAAA;AAC3C,YAAAC,IAAa,KAAK,SAASD,CAAW;AACvC,WAAA,SAASA,CAAW,IAAI,IAAIC,EAAW,KAAK,OAAO,KAAK,QAAQ;AAAA,IAAA,CACrE,GAGD,KAAK,SAAS,OAAO,iBAAiBC,EAAY,MAAM,QAAQ,CAACC,MAAmB;AACnF,YAAMC,IAAU,CAAC,CAACC,EAAYF,GAAG,UAAU,SAAS;AACpD,WAAK,OAAOC,CAAO;AAAA,IAAA,CACnB,GAGI,KAAA,MAAM,QAAQZ,EAAa,IAAI,GAGpC,KAAK,SAAS,OAAO,iBAAiBU,EAAY,MAAM,QAAQ,MAAM;AACrE,WAAK,OAAO,EAAK;AAAA,IAAA,CACjB,GAEI,KAAA,aAAa,KAAK,cAAc,GAErC,KAAK,OAAO;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQb,gBAA6B;AAC5B,mBAAQ,MAAM,2CAA2C,GAElD,CAAC;AAAA,EAAA;AAAA,EAGT,OAAOE,IAAU,IAAM;AAElB,QAAA,CAAC,KAAK;AACT;AAID,WAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAACJ,MAAwB;AAE3D,MADmB,KAAK,SAASA,CAAW,EACjC,OAAO;AAAA,IAAA,CAClB,GAGD,KAAK,WAAW,QAAQ,CAAAM,MAAaA,EAAU,OAAOF,CAAO,CAAC;AAM9D,UAAMG,IAAqB,KAAK,SAAS,YAAY,sBAAsB,GACrEC,IAAW,OAAO,KAAKD,CAAkB,EAAE,IAAI,CAAgBE,MACjDF,EAAmBE,CAAY,EAChC,IAAI,EAAE,MAAM,CAACN,MAAWA,CAAC,CAC3C;AAEO,YAAA,IAAIK,CAAQ,EAAE;AAAA,MAAK,MAC1B,KAAK,SAAS,OAAO,cAAcN,EAAY,MAAM,eAAe;AAAA,IACrE;AAAA,EAAA;AAAA,EAGD,UAAU;AAET,SAAK,WAAW,QAAQ,CAAaI,MAAAA,EAAU,SAAS,GAGxD,KAAK,SAAS,SAAS,UAAU,EAAE,OAAO,GAErC,KAAA,MAAM,IAAI,EAAE,WAAW,MAAQ,EAAE,YAAY,IAAM;AAAA,EAAA;AAAA,EAG/C,mBAAmBI,GAA6BC,GAAkB;AACrE,UAAAC,IAAU,KAAK,MAAM,WAAW,GAEhCC,IAAiBR,EAAYO,GAAS,WAAW,SAAS,GAE1DE,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,GAAO,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MAClD,QAAQC,EAAa;AAAA,IACtB,GAGMC,IAAgBZ,EAAYO,GAAS,cAAc,SAAS;AAE9D,IAAAK,KAAiBA,MAAkB,MACtCP,EAAqB,KAAK,IAAIQ,GAAgB,KAAK,OAAO,KAAK,QAAQ,CAAC;AAGzE,UAAMC,IAAiB,CAAC,CAAC,KAAK,MAAM,WAAa,EAAA,OAC3CC,IAAiB;AAAA,MACtB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACjD,QAAQL,EAAa;AAAA,IACtB,GAEMM,IAAmB;AAAA,MACxB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAQ,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACnD,QAAQP,EAAa;AAAA,IACtB,GAEMQ,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIC;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA;AAAA,YAECL;AAAA,YACA,GAAIP,IAAiB,CAACS,CAAgB,IAAI,CAAA;AAAA,UAC3C;AAAA,UACA;AAAA,YACC,WAAWI,EAAgB;AAAA,YAC3B,YAAYC,EAAiB;AAAA,UAAA;AAAA,QAC9B;AAAA,MAEF;AAAA,MACA,QAAQX,EAAa;AAAA,IACtB,GAEMY,IAAsB;AAAA,MAC3B,IAAI;AAAA,MACJ,YAAYlB;AAAA,MACZ,QAAQM,EAAa;AAAA,MACrB,YAAYX,EAAYM,GAAS,sBAAsB,KAAKkB,EAAY;AAAA,IACzE,GAEMC,IACLzB,EAAYM,GAAS,eAAe,MAAM,MAAQC,EAAQ,OAAO,YAAY;AAG9E,QAAImB,IAA8BL,EAAgB;AAClD,QAAII,GAAiB;AACpB,YAAME,IAAiB3B,EAAYO,GAAS,UAAU,UAAU;AAChE,MAAIoB,MAAmB,UACtBD,IAA8BL,EAAgB,KAEzCd,EAAQ,OAAO,gBACXA,EAAA,OAAO,cAAcqB,EAAmB,aAEvCD,MAAmB,WAC7BD,IAA8BL,EAAgB,aAEzCd,EAAQ,OAAO,gBACXA,EAAA,OAAO,cAAcqB,EAAmB,aAEvCD,MAAmB,aAC7BD,IAA8BL,EAAgB;AAAA,IAC/C;AAGD,UAAMQ,IAAwB;AAAA,MAC7B,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAO,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MAClD,QAAQnB,EAAa;AAAA,IACtB,GAEMoB,IAAqB;AAAA,MAC1B,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIX;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA,YACC,GAAIK,IAAkB,CAAChB,CAAe,IAAI,CAAC;AAAA,YAC3C,GAAIgB,IAAkB,CAACI,CAAqB,IAAI,CAAC;AAAA,YACjDN;AAAA,UACD;AAAA,UACA;AAAA,YACC,WAAWG;AAAA,UAAA;AAAA,QACZ;AAAA,MAEF;AAAA,MACA,QAAQf,EAAa;AAAA,IACtB,GAGMqB,IAAkC,CAAC;AAEzC,QAAIlB,KAAkBN,GAAgB;AACrC,MAAAwB,EAAyB,KAAKb,CAAe;AAE7C,YAAMc,IAAuB;AAAA,QAC5B,IAAI;AAAA,QACJ,YAAY;AAAA,UACX,IAAIH,EAAO,KAAK,OAAO,KAAK,UAAUtB,IAAiB,EAAE,MAAM,GAAG,IAAI,MAAS;AAAA,QAChF;AAAA,QACA,QAAQG,EAAa;AAAA,MACtB;AAEA,MAAAqB,EAAyB,KAAKC,CAAoB;AAAA,IAAA;AAEnD,WAAAD,EAAyB,KAAKD,CAAkB,GAEzC;AAAA,MACN,IAAIG,GAAQ,KAAK,OAAO,KAAK,QAAQ;AAAA,MACrC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIf,EAAgB,KAAK,OAAO,KAAK,UAAUY,GAA0B;AAAA,QACxE,WAAWX,EAAgB;AAAA,MAC3B,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;ACtOO,MAAMe,UAAkBnD,EAAM;AAAA,EAQpC,YAAYC,GAAwBC,GAA6C;AAChF,UAAMD,GAAQC,CAAY,GARX,KAAA,WAAA,OAAO,OAAO,KAAK,UAAU;AAAA,MAC5C,iBAAiBkD;AAAA,MACjB,QAAQC;AAAA,MACR,MAAMC;AAAA,IAAA,CACN,GAC4B,KAAA,QAAA,IAAIC,GAAoB,KAAK,QAAQ;AAAA,EAAA;AAAA,EAMxD,uBAAuBnC,GAA6BC,GAAe;AACtE,UAAAC,IAAU,KAAK,MAAM,WAAW,GAChCkC,IAAmBzC,EAAYO,GAAS,WAAWmC,EAAc,KAAK,SAAS,GAC/ElC,IAAiBR,EAAYO,GAAS,WAAW,SAAS;AAE3D,SAAA,SAAS,gBAAgB,qBAAqB,GAC9C,KAAA,SAAS,gBAAgB,uBAAuB,GAChD,KAAA,SAAS,gBAAgB,qBAAqB;AAEnD,UAAMoC,IAAoB,KAAK,SAAS,gBAAgB,qBAAqB,GACvEC,IAAiB5C,EAAYO,GAAS,QAAQoC,GAAmB,WAAW,GAE5EE,IACLJ,KACAE,MAAsBD,EAAc,UACpCE,MAAmBE,GAAW,MAGzBC,IAAkB,KAAK,SAAS,KAAK,gBAAgBL,EAAc,GAAG,GAEtE5B,IAAiB,CAAC,CAAC,KAAK,MAAM,WAAa,EAAA,OAC3CC,IAAiB;AAAA,MACtB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACjD,QAAQL,EAAa;AAAA,IACtB,GAEMM,IAAmB;AAAA,MACxB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAQ,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACnD,QAAQP,EAAa;AAAA,IACtB,GAEMQ,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIC;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA;AAAA,YAECL;AAAA,YACA,GAAIP,IAAiB,CAACS,CAAgB,IAAI,CAAA;AAAA,UAC3C;AAAA,UACA;AAAA,YACC,WAAWI,EAAgB;AAAA,YAC3B,YAAYC,EAAiB;AAAA,UAAA;AAAA,QAC9B;AAAA,MAEF;AAAA,MACA,QAAQX,EAAa;AAAA,IACtB,GAEMF,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,GAAO,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MAClD,QAAQC,EAAa;AAAA,IACtB;AAGI,IAAAkC,KAAkB,CAACE,KACD1C,EAAA;AAAA,MACpB,IAAI2C,GAAU,KAAK,OAAO,KAAK,QAAQ;AAAA,MACvC,IAAIC,GAAW,KAAK,OAAO,KAAK,QAAQ;AAAA,IACzC,GAGD5C,EAAqB,KAAK,IAAI6C,GAAU,KAAK,OAAO,KAAK,QAAQ,CAAC,GAClE7C,EAAqB,KAAK,IAAI8C,GAAU,KAAK,OAAO,KAAK,QAAQ,CAAC;AAElE,UAAM5B,IAAsB;AAAA,MAC3B,IAAI;AAAA,MACJ,YAAYlB;AAAA,MACZ,QAAQM,EAAa;AAAA,MACrB,YAAYa,EAAY;AAAA,IACzB,GAEMC,IACLzB,EAAYM,GAAS,UAAU,SAAS,MAAM,MAC9C,KAAK,MAAM,WAAa,EAAA,OAAO,YAAY;AAG5C,QAAIoB,IAA8BL,EAAgB;AAClD,QAAII,GAAiB;AACpB,YAAME,IAAiB3B,EAAY,KAAK,MAAM,WAAW,GAAG,UAAU,UAAU;AAC5E,MAAA2B,MAAmByB,EAAgB,QACtC1B,IAA8BL,EAAgB,KAEzC,KAAK,MAAM,WAAW,EAAE,OAAO,gBACnC,KAAK,MAAM,WAAA,EAAa,OAAO,cAAcO,EAAmB,aAEvDD,MAAmByB,EAAgB,SAC7C1B,IAA8BL,EAAgB,aAEzC,KAAK,MAAM,WAAW,EAAE,OAAO,gBACnC,KAAK,MAAM,WAAA,EAAa,OAAO,cAAcO,EAAmB,aAEvDD,MAAmByB,EAAgB,WAC7C1B,IAA8BL,EAAgB;AAAA,IAC/C;AAGD,UAAMQ,KAAwB;AAAA,MAC7B,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAO,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MAClD,QAAQnB,EAAa;AAAA,IACtB,GAEMoB,KAAqB;AAAA,MAC1B,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIX;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA,YACC,GAAIK,IAAkB,CAAChB,CAAe,IAAI,CAAC;AAAA,YAC3C,GAAIgB,IAAkB,CAACI,EAAqB,IAAI,CAAC;AAAA,YACjDN;AAAA,UACD;AAAA,UACA;AAAA,YACC,WAAWG;AAAA,UAAA;AAAA,QACZ;AAAA,MAEF;AAAA,MACA,QAAQf,EAAa;AAAA,IACtB,GAEM0C,KAAmB;AAAA,MACxB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,GAAQ,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACnD,QAAQ3C,EAAa;AAAA,MACrB,YAAYa,EAAY;AAAA,IACzB,GAEMQ,IAA2B,CAAC;AAElC,QAAIlB,KAAkBN,GAAgB;AACrC,MAAAwB,EAAyB,KAAKb,CAAe;AAE7C,YAAMc,IAAuB;AAAA,QAC5B,IAAI;AAAA,QACJ,YAAY;AAAA,UACX,IAAIH,EAAO,KAAK,OAAO,KAAK,UAAUtB,IAAiB,EAAE,MAAM,GAAG,IAAI,MAAS;AAAA,QAChF;AAAA,QACA,QAAQG,EAAa;AAAA,MACtB;AAEA,MAAAqB,EAAyB,KAAKC,CAAoB;AAAA,IAAA;AAEnD,WAAIY,KACHb,EAAyB,KAAKqB,EAAgB,GAE/CrB,EAAyB,KAAKD,EAAkB,GAEzC;AAAA,MACN,IAAIwB,GAAkB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAC/C,IAAIpB,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIf,EAAgB,KAAK,OAAO,KAAK,UAAUY,GAA0B;AAAA,QACxE,WAAWX,EAAgB;AAAA,MAC3B,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;ACpMO,MAAMmC,WAAsBvE,EAAM;AAAA,EAGxC,YAAYC,GAAwBC,GAAiD;AACpF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIsE,GAAmB,KAAK,QAAQ,GAO3C,KAAK,MAAM,WAAWC,EAAyBnD,EAAQ,eAAepB,EAAa,OAAO,CAAC,GAGtF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACT,UAAAkB,IAAoC,CAAC,IAAIsD,GAAS,KAAK,OAAO,KAAK,QAAQ,CAAC;AAK3E,WAHyB,KAAK,mBAAmBtD,GAAsB;AAAA,MAC7E,eAAe;AAAA,IAAA,CACf;AAAA,EACM;AAET;ACpBO,MAAMuD,WAAkBxB,EAAU;AAAA,EACxC,YAAYlD,GAAwBC,GAA6C;AAChF,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM;AAAA,MACVuE,EAAyBG,EAAUtD,EAAQ,SAAS,GAAGpB,EAAa,OAAO;AAAA,IAC5E,GAGK,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,GAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,EAAQ,KAAK,OAAO,KAAK,UAAU;AAAA,QACtC,8BAA8B;AAAA,QAC9B,kBAAkB;AAAA,MAAA,CAClB;AAAA,MACD,IAAIC,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;ACxCO,MAAMiE,WAAqBlC,EAAU;AAAA,EAG3C,YAAYlD,GAAwBC,GAAgD;AACnF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIoF,GAAkB,KAAK,QAAQ,GAO1C,KAAK,MAAM,WAAWb,EAAyBnD,EAAQ,cAAcpB,EAAa,OAAO,CAAC,GAGrF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIS,GAAQ,KAAK,OAAO,KAAK,QAAQ;AAAA,MACrC,IAAIC,EAAS,KAAK,OAAO,KAAK,QAAQ;AAAA,MACtC,IAAIL,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAOO,WALyB,KAAK,uBAAuBhE,GAAsB;AAAA,MACjF,QAAQ;AAAA,QACP,SAAS;AAAA,MAAA;AAAA,IACV,CACA;AAAA,EACM;AAET;ACtCO,MAAMqE,WAAoBtC,EAAU;AAAA,EAC1C,YAAYlD,GAAwBC,GAA+C;AAClF,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,aAAapB,EAAa,OAAO,CAAC,GAGpF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIW,GAAO,KAAK,OAAO,KAAK,QAAQ;AAAA,MACpC,IAAIP,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;AC/BO,MAAMuE,WAAoBxC,EAAU;AAAA,EAG1C,YAAYlD,GAAwBC,GAA+C;AAClF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAI0F,GAAiB,KAAK,QAAQ,GAOzC,KAAK,MAAM,WAAWnB,EAAyBnD,EAAQ,aAAapB,EAAa,OAAO,CAAC,GAGpF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIe,GAAO,KAAK,OAAO,KAAK,QAAQ;AAAA,MACpC,IAAIV,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;AC5BO,MAAM0E,WAAwB9F,EAAM;AAAA,EAG1C,YAAYC,GAAwBC,GAAmD;AACtF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAI6F,GAAgB,KAAK,QAAQ,GAOxC,KAAK,MAAM;AAAA,MACVtB,EAAyBuB,EAAc,iBAAiB9F,EAAa,OAAO;AAAA,IAC7E,GAGK,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA,EAKrB,mBAAmBkB,GAA6BC,GAAe;AAClE,UAAAC,IAAU,KAAK,MAAM,WAAW,GAChCC,IAAiBR,EAAYO,GAAS,WAAW,SAAS,GAE1DO,IAAiB,CAAC,CAAC,KAAK,MAAM,WAAa,EAAA,OAC3CC,IAAiB;AAAA,MACtB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACjD,QAAQL,EAAa;AAAA,IACtB,GAEMM,IAAmB;AAAA,MACxB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAQ,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACnD,QAAQP,EAAa;AAAA,IACtB,GAEMQ,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIC;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA;AAAA,YAECL;AAAA,YACA,GAAIP,IAAiB,CAACS,CAAgB,IAAI,CAAA;AAAA,UAC3C;AAAA,UACA;AAAA,YACC,WAAWI,EAAgB;AAAA,YAC3B,YAAYC,EAAiB;AAAA,UAAA;AAAA,QAC9B;AAAA,MAEF;AAAA,MACA,QAAQX,EAAa;AAAA,IACtB,GAEMF,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIyE,GAAiB,KAAK,OAAO,KAAK,UAAU;AAAA,UAC/C,WAAW;AAAA,QACX,CAAA;AAAA,MACF;AAAA,MACA,QAAQvE,EAAa;AAAA,MACrB,YAAYa,EAAY;AAAA,IACzB,GAEMD,IAAsB;AAAA,MAC3B,IAAI;AAAA,MACJ,YAAYlB;AAAA,MACZ,QAAQM,EAAa;AAAA,MACrB,YAAYa,EAAY;AAAA,IACzB,GAEMC,IACLzB,EAAYM,GAAS,UAAU,SAAS,MAAM,MAC9C,KAAK,MAAM,WAAW,EAAE,OAAO,YAAY,MAC3C,KAAK,MAAM,QAAA,EAAU,SAAS,GAGzBoB,IAA8BL,EAAgB,gBAE9CQ,IAAwB;AAAA,MAC7B,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAO,KAAK,OAAO,KAAK,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;AAAA,MAChE,QAAQnB,EAAa;AAAA,IACtB,GAEMoB,IAAqB;AAAA,MAC1B,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIX;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA,YACC,GAAIK,IAAkB,CAAChB,CAAe,IAAI,CAAC;AAAA,YAC3C,GAAIgB,IAAkB,CAACI,CAAqB,IAAI,CAAC;AAAA,YACjDN;AAAA,UACD;AAAA,UACA;AAAA,YACC,WAAWG;AAAA,UAAA;AAAA,QACZ;AAAA,MAEF;AAAA,MACA,QAAQf,EAAa;AAAA,IACtB,GAEMqB,IAA2B,CAAC;AAElC,QAAIlB,KAAkBN,GAAgB;AACrC,MAAAwB,EAAyB,KAAKb,CAAe;AAE7C,YAAMc,IAAuB;AAAA,QAC5B,IAAI;AAAA,QACJ,YAAY;AAAA,UACX,IAAIH,EAAO,KAAK,OAAO,KAAK,UAAUtB,IAAiB,EAAE,MAAM,GAAG,IAAI,MAAS;AAAA,QAChF;AAAA,QACA,QAAQG,EAAa;AAAA,MACtB;AAEA,MAAAqB,EAAyB,KAAKC,CAAoB;AAAA,IAAA;AAEnD,WAAAD,EAAyB,KAAKD,CAAkB,GAEzC;AAAA,MACN,IAAIG,GAAQ,KAAK,OAAO,KAAK,QAAQ;AAAA,MACrC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIf,EAAgB,KAAK,OAAO,KAAK,UAAUY,GAA0B;AAAA,QACxE,WAAWX,EAAgB;AAAA,MAC3B,CAAA;AAAA,IACF;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,gBAAgB;AACT,UAAAhB,IAAoC,CAAC,IAAI8E,GAAW,KAAK,OAAO,KAAK,QAAQ,CAAC;AAG7E,WADyB,KAAK,mBAAmB9E,CAAoB;AAAA,EACrE;AAET;ACvJO,MAAM+E,WAAwBnG,EAAM;AAAA,EAG1C,YAAYC,GAAwBC,GAAmD;AACtF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIkG,GAAqB,KAAK,QAAQ,GAO7C,KAAK,MAAM,WAAW3B,EAAyBnD,EAAQ,iBAAiBpB,EAAa,OAAO,CAAC,GAGxF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACT,UAAAkB,IAAoC,CAAC,IAAIiF,GAAW,KAAK,OAAO,KAAK,QAAQ,CAAC;AAI7E,WADyB,KAAK,mBAAmBjF,CAAoB;AAAA,EACrE;AAET;ACZA,MAAMkF,IAAqB;AAAA,EAC1B,CAACC,EAAW,IAAI,GAAG,CAACvB,GAAME,CAAO;AAAA,EACjC,CAACqB,EAAW,OAAO,GAAG,CAACrB,CAAO;AAAA,EAC9B,CAACqB,EAAW,IAAI,GAAG,CAACtB,IAAMD,GAAME,CAAO;AAAA,EACvC,CAACqB,EAAW,YAAY,GAAG,CAACC,IAAaxB,GAAMyB,IAAgBC,CAAY;AAAA,EAC3E,CAACH,EAAW,UAAU,GAAG,CAACI,EAAS;AAAA,EACnC,CAACJ,EAAW,WAAW,GAAG,CAACK,IAAYpB,CAAQ;AAAA,EAC/C,CAACe,EAAW,WAAW,GAAG,CAACM,IAAYH,CAAY;AACpD;AAEO,MAAMI,WAAmB3D,EAAU;AAAA,EACzC,YAAYlD,GAAwBC,GAA8C;AACjF,UAAMD,GAAQC,CAAY;AAI1B,UAAM6G,IAAetC,EAAyBuB,EAAc,YAAY9F,EAAa,OAAO;AAIxF,IAACA,EAAa,QAAQ,oBACzB,QAAQ,MAAM,iDAAiD,GAElD6G,EAAA,kBAAkB,CAAC,EAAE,MAAMR,EAAW,MAAM,uBAAuB,CAAA,GAAI,IAIhF,KAAA,MAAM,WAAWQ,CAAY,GAG7B,KAAA,KAAK9G,GAAQC,CAAY;AAAA,EAAA;AAAA,EAG/B,qBAAqB;AACpB,UAAM,EAAE,iBAAA8G,EAAsD,IAAA,KAAK,MAAM,WAAW;AACpF,QAAIC,IAAU;AACd,UAAMC,IAA+BF,EACnC,IAAI,CAACG,MAAe;AACpB,YAAMC,IAAOD,EAAM;AACf,UAAA7F;AAGA,UAAA,OAAO6F,EAAM,QAAS,UAAU;AAG/B,YAAA,CAAC,OAAO,KAAKb,CAAkB,EAAE,SAASa,EAAM,IAAI;AAC/C,yBAAA;AAAA,YACP,uBAAuBA,EAAM,IAAI;AAAA,UAClC,GACO;AAER,YAAIE,IAAU;AACd,cAAMC,IAAM,GAAG3H,GAAUwH,EAAM,IAAI,CAAC;AAC1B7F,eAAAA,IAAAiG,EAAM,IAAIvB,EAAcsB,CAAG,GAAG,KAAK,MAAM,cAAcH,EAAM,OAAO,GAE1EA,EAAM,SAASZ,EAAW,iBACnBc,IAAA,KAEJf,EAAmBa,EAAM,IAAuC,EAAE;AAAA,UACxE,CAACK,MACA,IAAIA,EAAU,KAAK,OAAO,KAAK,UAAU;AAAA,YACxC,QAAQL,EAAM;AAAA,YACd,IAAIF;AAAA,YAAA,SACJ3F;AAAAA,YACA,SAAA+F;AAAA,UACA,CAAA;AAAA,QACH;AAAA,MAAA;AAGU/F,eAAAA,IAAAiG,EAAM,CAAA,GAAI,KAAK,MAAM,WAAW,GAAGJ,EAAM,OAAO,GACnD,IAAIC,EAAK,KAAK,OAAO,KAAK,UAAU;AAAA,UAC1C,QAAQD,EAAM;AAAA,UACd,IAAIF;AAAA,UACJ3F,SAAAA;AAAAA,QAAA,CACA;AAAA,IAEF,CAAA,EACA,OAAO,CAACmG,MAAcA,MAAS,IAAI;AAErC,WAAOC,GAAQR,CAAe;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAM,EAAE,iBAAAF,EAAoB,IAAA,KAAK,MAAM,WAAW,GAE5CW,IAAsBX,EAAgB;AAAA,MAC3C,CAACY,MACAA,EAAY,SAASrB,EAAW,eAAeqB,EAAY,SAASrB,EAAW;AAAA,IACjF,GAGMnF,IAAuB;AAAA,MAC5B,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIK,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MAAA,CACpB;AAAA,MACD,GAAIuC,IAAsB,CAAK,IAAA,CAAC,IAAI5C,EAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACpE,GAAG,KAAK,mBAAmB;AAAA,IAC5B;AAIO,WAFyB,KAAK,uBAAuB3D,CAAoB;AAAA,EAEzE;AAET;AC1HO,MAAMyG,WAAiB7H,EAAM;AAAA;AAAA,EAInC,YACCC,GACAC,GACA4H,IAAY,IACX;AAID,IAHA,MAAM7H,GAAQC,CAAY,GARnB,KAAA,QAAA,IAAI6H,GAAc,KAAK,QAAQ,GAWlC,CAAAD,MAMJ,KAAK,MAAM,WAAWrD,EAAyBnD,EAAQ,UAAUpB,EAAa,OAAO,CAAC,GAGjF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAI4G,GAAI,KAAK,OAAO,KAAK,QAAQ;AAAA,MACjC,IAAI7C,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAIO,WADyB,KAAK,mBAAmBhE,CAAoB;AAAA,EACrE;AAET;AC1CO,MAAM6G,WAAmBJ,GAAS;AAAA,EACxC,YAAY5H,GAAwBC,GAA4C;AACzE,UAAAD,GAAQC,GAAc,EAAI,GAIhC,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,YAAYpB,EAAa,OAAO,CAAC,GAGnF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAI8G,GAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAI/C,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,mBAAmBhE,CAAoB;AAAA,EACrE;AAET;AC7BO,MAAM+G,WAAmBnI,EAAM;AAAA,EAErC,YAAYC,GAAwBC,GAA8C;AACjF,UAAMD,GAAQC,CAAY,GAFnB,KAAA,QAAA,IAAIkI,GAAgB,KAAK,QAAQ,GAMxC,KAAK,MAAM,WAAW3D,EAAyBnD,EAAQ,YAAYpB,EAAa,OAAO,CAAC,GAGnF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACT,UAAAkB,IAAoC,CAAC,IAAIiH,GAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAIxE,WAFyB,KAAK,mBAAmBjH,CAAoB;AAAA,EAErE;AAET;ACrBO,MAAMkH,WAAwBnF,EAAU;AAAA,EAC9C,YAAYlD,GAAwBC,GAA4C;AAC/E,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,iBAAiBpB,EAAa,OAAO,CAAC,GAGxF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAI8B,GAAW,KAAK,OAAO,KAAK,QAAQ;AAAA,MACxC,IAAIpB,EAAS,KAAK,OAAO,KAAK,QAAQ;AAAA,MACtC,IAAIL,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;AC1BO,MAAMmH,WAAqBpF,EAAU;AAAA,EAG3C,YAAYlD,GAAwBC,GAAgD;AACnF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIsI,GAAa,KAAK,QAAQ,GAOrC,KAAK,MAAM;AAAA,MACV/D,EAAyBuB,EAAc,cAAc9F,EAAa,OAAO;AAAA,IAC1E,GAGK,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA,EAKrB,uBAAuBkB,GAA6BC,GAAe;AACtE,UAAAC,IAAU,KAAK,MAAM,WAAW,GAChCC,IAAiBR,EAAYO,GAAS,WAAW,SAAS;AAE3D,SAAA,SAAS,gBAAgB,qBAAqB,GAC9C,KAAA,SAAS,gBAAgB,uBAAuB,GAChD,KAAA,SAAS,gBAAgB,qBAAqB;AAEnD,UAAMO,IAAiB,CAAC,CAAC,KAAK,MAAM,WAAa,EAAA,OAC3CC,IAAiB;AAAA,MACtB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACjD,QAAQL,EAAa;AAAA,IACtB,GAEMM,IAAmB;AAAA,MACxB,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAQ,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,MACnD,QAAQP,EAAa;AAAA,IACtB,GAEMQ,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIC;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA;AAAA,YAECL;AAAA,YACA,GAAIP,IAAiB,CAACS,CAAgB,IAAI,CAAA;AAAA,UAC3C;AAAA,UACA;AAAA,YACC,WAAWI,EAAgB;AAAA,YAC3B,YAAYC,EAAiB;AAAA,UAAA;AAAA,QAC9B;AAAA,MAEF;AAAA,MACA,QAAQX,EAAa;AAAA,IACtB,GAEMF,IAAkB;AAAA,MACvB,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIyE,GAAiB,KAAK,OAAO,KAAK,UAAU;AAAA,UAC/C,WAAW;AAAA,QACX,CAAA;AAAA,MACF;AAAA,MACA,QAAQvE,EAAa;AAAA,MACrB,YAAYa,EAAY;AAAA,IACzB,GAEMD,IAAsB;AAAA,MAC3B,IAAI;AAAA,MACJ,YAAYlB;AAAA,MACZ,QAAQM,EAAa;AAAA,MACrB,YAAYa,EAAY;AAAA,IACzB,GAEMC,IACLzB,EAAYM,GAAS,UAAU,SAAS,MAAM,MAC9C,KAAK,MAAM,WAAW,EAAE,OAAO,YAAY,MAC3C,KAAK,MAAM,QAAA,EAAU,SAAS,GAGzBoB,IAA8BL,EAAgB,gBAE9CQ,IAAwB;AAAA,MAC7B,IAAI;AAAA,MACJ,YAAY,CAAC,IAAIC,EAAO,KAAK,OAAO,KAAK,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;AAAA,MAChE,QAAQnB,EAAa;AAAA,IACtB,GAEMoB,IAAqB;AAAA,MAC1B,IAAI;AAAA,MACJ,YAAY;AAAA,QACX,IAAIX;AAAA,UACH,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA,YACC,GAAIK,IAAkB,CAAChB,CAAe,IAAI,CAAC;AAAA,YAC3C,GAAIgB,IAAkB,CAACI,CAAqB,IAAI,CAAC;AAAA,YACjDN;AAAA,UACD;AAAA,UACA;AAAA,YACC,WAAWG;AAAA,UAAA;AAAA,QACZ;AAAA,MAEF;AAAA,MACA,QAAQf,EAAa;AAAA,IACtB,GAEMqB,IAAkC,CAAC;AAEzC,QAAIlB,KAAkBN,GAAgB;AACrC,MAAAwB,EAAyB,KAAKb,CAAe;AAE7C,YAAMc,IAAuB;AAAA,QAC5B,IAAI;AAAA,QACJ,YAAY;AAAA,UACX,IAAIH,EAAO,KAAK,OAAO,KAAK,UAAUtB,IAAiB,EAAE,MAAM,GAAG,IAAI,MAAS;AAAA,QAChF;AAAA,QACA,QAAQG,EAAa;AAAA,MACtB;AAEA,MAAAqB,EAAyB,KAAKC,CAAoB;AAAA,IAAA;AAEnD,WAAAD,EAAyB,KAAKD,CAAkB,GAEzC;AAAA,MACN,IAAIwB,GAAkB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAC/C,IAAIpB,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIf,EAAgB,KAAK,OAAO,KAAK,UAAUY,GAA0B;AAAA,QACxE,WAAWX,EAAgB;AAAA,MAC3B,CAAA;AAAA,IACF;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,gBAAgB;AACf,UAAMhB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAI4D,GAAQ,KAAK,OAAO,KAAK,QAAQ;AAAA,IACtC;AAGO,WADyB,KAAK,uBAAuBrH,CAAoB;AAAA,EACzE;AAET;AC5JO,MAAMsH,WAAuBvF,EAAU;AAAA,EAG7C,YAAYlD,GAAwBC,GAAkD;AACrF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIyI,GAAiB,KAAK,QAAQ,GAOzC,KAAK,MAAM,WAAWlE,EAAyBnD,EAAQ,gBAAgBpB,EAAa,OAAO,CAAC,GAGvF,KAAA,KAAKD,GAAQC,CAAY,GAE9B,KAAK,OAAO;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQb,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAI8D,GAAY,KAAK,OAAO,KAAK,QAAQ;AAAA,MACzC,IAAIC,GAAU,KAAK,OAAO,KAAK,QAAQ;AAAA,IACxC;AAIO,WAFyB,KAAK,uBAAuBzH,CAAoB;AAAA,EAEzE;AAET;AC/BO,MAAM0H,WAAkB3F,EAAU;AAAA,EACxC,YAAYlD,GAAwBC,GAA6C;AAChF,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,WAAWpB,EAAa,OAAO,CAAC,GAGlF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIE,EAAQ,KAAK,OAAO,KAAK,UAAU,EAAE,kBAAkB,IAAM;AAAA,MACjE,IAAI6D,GAAc,KAAK,OAAO,KAAK,QAAQ;AAAA,MAC3C,IAAIvD,EAAS,KAAK,OAAO,KAAK,QAAQ;AAAA,IACvC;AAGO,WADyB,KAAK,uBAAuBpE,CAAoB;AAAA,EACzE;AAET;AC/BO,MAAM4H,WAAsB7F,EAAU;AAAA,EAC5C,YAAYlD,GAAwBC,GAAiD;AACpF,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,eAAepB,EAAa,OAAO,CAAC,GAGtF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIkE,GAAS,KAAK,OAAO,KAAK,QAAQ;AAAA,MACtC,IAAI/D,EAAQ,KAAK,OAAO,KAAK,QAAQ;AAAA,MACrC,IAAIC,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;AChCO,MAAM8H,WAAmBlJ,EAAM;AAAA,EAGrC,YAAYC,GAAwBC,GAA8C;;AACjF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIiJ,GAAgB,KAAK,QAAQ;AAMxC,UAAM7H,KAAU8H,IAAAlJ,EAAa,QAAQ,UAArB,QAAAkJ,EAA4B,eACzC7B,EAAM3C,EAAUoB,EAAc,sBAAsB,GAAG9F,EAAa,OAAO,IAC3EqH,EAAM3C,EAAUoB,EAAc,UAAU,GAAG9F,EAAa,OAAO;AAI7D,SAAA,MAAM,WAAWoB,CAAO,GAGxB,KAAA,KAAKrB,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AAEf,UAAMmJ,IAAkB;AAAA,MACvB,GAFkBtI,EAAY,KAAK,MAAM,WAAW,GAAG,SAAS,YAAY,IAGzE;AAAA;AAAA,QAEA;AAAA,UACC,IAAI;AAAA,UACJ,YAAY,CAAC,IAAIuI,GAAW,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,UACtD,QAAQ5H,EAAa;AAAA,UACrB,YAAYa,EAAY;AAAA,QACzB;AAAA;AAAA,QAEA;AAAA,UACC,IAAI;AAAA,UACJ,YAAY;AAAA,YACX,IAAIM,EAAO,KAAK,OAAO,KAAK,UAAU;AAAA,cACrC,MAAM;AAAA,YACN,CAAA;AAAA,UACF;AAAA,UACA,QAAQnB,EAAa;AAAA,QAAA;AAAA,MACtB,IAEA,CAAC;AAAA;AAAA,MAEJ;AAAA,QACC,IAAI;AAAA,QACJ,YAAY,CAAC,IAAI6H,GAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAAA,QACjD,QAAQ7H,EAAa;AAAA,QACrB,YAAYa,EAAY;AAAA,MAAA;AAAA,IAE1B,GAGMiH,IAA0B;AAAA,MAC/B,IAAIrH,EAAgB,KAAK,OAAO,KAAK,UAAUkH,GAAiB;AAAA,QAC/D,WAAWjH,EAAgB;AAAA,MAC3B,CAAA;AAAA,IACF;AAOO,WAJyB,KAAK,mBAAmBoH,GAAY;AAAA,MACnE,sBAAsBjH,EAAY;AAAA,IAAA,CAClC;AAAA,EAEM;AAET;AC5EO,MAAMkH,WAAmBzJ,EAAM;AAAA,EAGrC,YAAYC,GAAwBC,GAA8C;AACjF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAIwJ,GAAgB,KAAK,QAAQ,GAOxC,KAAK,MAAM,WAAWjF,EAAyBnD,EAAQ,YAAYpB,EAAa,OAAO,CAAC,GAGnF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACT,UAAAkB,IAAoC,CAAC,IAAIuI,GAAM,KAAK,OAAO,KAAK,QAAQ,CAAC;AAIxE,WADyB,KAAK,mBAAmBvI,CAAoB;AAAA,EACrE;AAET;ACtBO,MAAMwI,WAAqBzG,EAAU;AAAA,EAC3C,YAAYlD,GAAwBC,GAAgD;AACnF,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,cAAcpB,EAAa,OAAO,CAAC,GAGrF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAIC,EAAM,KAAK,OAAO,KAAK,QAAQ;AAAA,MACnC,IAAIG,EAAQ,KAAK,OAAO,KAAK,QAAQ;AAAA,MACrC,IAAIC,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;ACnCO,MAAMyI,WAAkB7J,EAAM;AAAA,EAGpC,YAAYC,GAAwBC,GAA6C;AAChF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAI4J,GAAe,KAAK,QAAQ,GAOvC,KAAK,MAAM,WAAWrF,EAAyBnD,EAAQ,WAAWpB,EAAa,OAAO,CAAC,GAGlF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACT,UAAAkB,IAAoC,CAAC,IAAI2I,GAAK,KAAK,OAAO,KAAK,QAAQ,CAAC;AAMvE,WAHyB,KAAK,mBAAmB3I,GAAsB;AAAA,MAC7E,eAAe;AAAA,IAAA,CACf;AAAA,EACM;AAET;AC5BO,MAAM4I,WAAqBhK,EAAM;AAAA,EAGvC,YAAYC,GAAwBC,GAAgD;AACnF,UAAMD,GAAQC,CAAY,GAHnB,KAAA,QAAA,IAAI+J,GAAkB,KAAK,QAAQ,GAO1C,KAAK,MAAM,WAAWxF,EAAyBnD,EAAQ,cAAcpB,EAAa,OAAO,CAAC,GAGrF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACT,UAAAkB,IAAoC,CAAC,IAAI8I,GAAQ,KAAK,OAAO,KAAK,QAAQ,CAAC;AAI1E,WADyB,KAAK,mBAAmB9I,CAAoB;AAAA,EACrE;AAET;ACtBO,MAAM+I,WAAuBhH,EAAU;AAAA,EAC7C,YAAYlD,GAAwBC,GAA4C;AAC/E,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,gBAAgBpB,EAAa,OAAO,CAAC,GAGvF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAI6B,GAAU,KAAK,OAAO,KAAK,QAAQ;AAAA,MACvC,IAAInB,EAAS,KAAK,OAAO,KAAK,QAAQ;AAAA,MACtC,IAAIL,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;AC7BO,MAAMgJ,WAAyBjH,EAAU;AAAA,EAC/C,YAAYlD,GAAwBC,GAA6C;AAChF,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,kBAAkBpB,EAAa,OAAO,CAAC,GAGzF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAI4B,EAAa,KAAK,OAAO,KAAK,QAAQ;AAAA,MAC1C,IAAIF,GAAY,KAAK,OAAO,KAAK,QAAQ;AAAA,MACzC,IAAIxB,EAAK,KAAK,OAAO,KAAK,UAAU,EAAE,SAAS,IAAM;AAAA,MACrD,IAAIyB,GAAe,KAAK,OAAO,KAAK,UAAU;AAAA,QAC7C,8BAA8B;AAAA,QAC9B,kBAAkB;AAAA,QAClB,SAAS;AAAA,MAAA,CACT;AAAA,MACD,IAAItB,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAGO,WADyB,KAAK,uBAAuBhE,CAAoB;AAAA,EACzE;AAET;ACtCO,MAAMiJ,WAAwBlH,EAAU;AAAA,EAC9C,YAAYlD,GAAwBC,GAA4C;AAC/E,UAAMD,GAAQC,CAAY,GAI1B,KAAK,MAAM,WAAWuE,EAAyBnD,EAAQ,iBAAiBpB,EAAa,OAAO,CAAC,GAGxF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIyD,EAAmB,KAAK,OAAO,KAAK,QAAQ;AAAA,MAChD,IAAIC,EAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,MAClC,IAAI4B,EAAa,KAAK,OAAO,KAAK,QAAQ;AAAA,MAC1C,IAAIG,GAAW,KAAK,OAAO,KAAK,QAAQ;AAAA,MACxC,IAAI1B,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MAAA,CACpB;AAAA,MACD,IAAII,EAAS,KAAK,OAAO,KAAK,QAAQ;AAAA,IACvC;AAGO,WADyB,KAAK,uBAAuBpE,CAAoB;AAAA,EACzE;AAET;AClCO,MAAMkJ,WAAuBtK,EAAM;AAAA,EAGzC,YACCC,GACAC,GACC;AACD,UAAMD,GAAQC,CAAY,GANnB,KAAA,QAAA,IAAIqK,GAAe,KAAK,QAAQ,GAUvC,KAAK,MAAM,WAAW9F,EAAyBnD,EAAQ,gBAAgBpB,EAAa,OAAO,CAAC,GAGvF,KAAA,KAAKD,GAAQC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/B,gBAAgB;AACf,UAAMkB,IAAoC;AAAA,MACzC,IAAIoJ,GAAU,KAAK,OAAO,KAAK,QAAQ;AAAA,MACvC,IAAIrF,EAAS,KAAK,OAAO,KAAK,UAAU;AAAA,QACvC,UAAUC,EAAU;AAAA,MACpB,CAAA;AAAA,IACF;AAIO,WADyB,KAAK,mBAAmBhE,CAAoB;AAAA,EACrE;AAET;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
|
|
@@ -26,11 +26,11 @@ export interface Locale {
|
|
|
26
26
|
meter?: {
|
|
27
27
|
title?: string;
|
|
28
28
|
};
|
|
29
|
-
tabularRep
|
|
29
|
+
tabularRep?: {
|
|
30
30
|
title?: string;
|
|
31
31
|
downloadAsCSV?: string;
|
|
32
32
|
};
|
|
33
|
-
toolbar
|
|
33
|
+
toolbar?: {
|
|
34
34
|
exportAsCSV?: string;
|
|
35
35
|
exportAsJPG?: string;
|
|
36
36
|
exportAsPNG?: string;
|
package/dist/model/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a1 as tt, a2 as et, au as st, av as w, aw as $, ad as N, ax as at, ay as nt, az as ot, ap as P, ar as k, g as p, w as E, c as F, v as rt, ao as L, J as z, aA as H, a as R, r as Z, V as Q, ac as C, L as W, ai as it, aB as lt, aa as A } from "../color-scale-utils-ycwO-Ibq.mjs";
|
|
2
2
|
import { S as b, $ as U, d as X, e as q, s as ct } from "../axis-scales-CPuwbFQf.mjs";
|
|
3
|
-
import { b as ut, c as I, a as pt } from "../array-
|
|
3
|
+
import { b as ut, c as I, a as pt } from "../array-j65rN_vo.mjs";
|
|
4
4
|
function ht(u, t, e, s) {
|
|
5
5
|
for (var a = -1, n = u == null ? 0 : u.length; ++a < n; ) {
|
|
6
6
|
var o = u[a];
|