UNPKG

24.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"Chart.js","sourceRoot":"","sources":["../../../../src/.internal/charts/Chart.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * [[Chart]] class provides base functionality for all chart types to inherit.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry } from \"../core/Registry\";\r\nimport { Component, IComponentProperties, IComponentDataFields, IComponentEvents, IComponentAdapters } from \"../core/Component\";\r\nimport { MutableValueDisposer, Disposer } from \"../core/utils/Disposer\";\r\nimport { ListTemplate, IListEvents, ListDisposer } from \"../core/utils/List\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { Grip } from \"../core/elements/Grip\";\r\nimport { Legend } from \"../charts/Legend\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport * as $iter from \"../core/utils/Iterator\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[Chart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class ChartDataItem extends DataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: Chart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[Chart]].\r\n */\r\nexport interface IChartDataFields extends IComponentDataFields { }\r\n\r\n/**\r\n * Defines properties for [[Chart]].\r\n */\r\nexport interface IChartProperties extends IComponentProperties { }\r\n\r\n/**\r\n * Defines events for [[Chart]].\r\n */\r\nexport interface IChartEvents extends IComponentEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Chart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IChartAdapters extends IComponentAdapters, IChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A base class for all Charts.\r\n *\r\n * @see {@link IChartEvents} for a list of available Events\r\n * @see {@link IChartAdapters} for a list of available Adapters\r\n */\r\nexport class Chart extends Component {\r\n\r\n\t/**\r\n\t * Available data fields.\r\n\t */\r\n\tpublic _dataFields: IChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IChartEvents;\r\n\r\n\t/**\r\n\t * A List of chart titles.\r\n\t */\r\n\tpublic titles: ListTemplate<Label>;\r\n\r\n\t/**\r\n\t * Container that holds the chart itself.\r\n\t */\r\n\tpublic chartContainer: Container;\r\n\r\n\t/**\r\n\t * A reference to a container that holds both the chart and the legend.\r\n\t */\r\n\tpublic chartAndLegendContainer: Container;\r\n\r\n\t/**\r\n\t * A reference to chart's [[Legend]].\r\n\t * @ignore\r\n\t */\r\n\tprotected _legend = new MutableValueDisposer<Legend>();\r\n\r\n\t/**\r\n\t * Instance of the grip element.\r\n\t */\r\n\tprotected _dragGrip: $type.Optional<Grip>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\tif (this.constructor === Chart) {\r\n\t\t\tthrow new Error(\"'Chart' cannot be instantiated directly. Please use a specific chart type.\");\r\n\t\t}\r\n\t\tthis.className = \"Chart\";\r\n\r\n\t\t// Create a list of titles\r\n\t\tconst template = new Label();\r\n\t\tthis.titles = new ListTemplate<Label>(template);\r\n\t\tthis._disposers.push(new ListDisposer(this.titles));\r\n\t\tthis._disposers.push(template);\r\n\r\n\t\t// Chart component is also a container. it holds _chartAndLegendCont and titles\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\t\tthis.layout = \"vertical\";\r\n\r\n\t\t// Chart and legend\r\n\t\tlet chartAndLegendContainer: Container = this.createChild(Container);\r\n\t\tchartAndLegendContainer.shouldClone = false;\r\n\t\tchartAndLegendContainer.layout = \"vertical\";\r\n\t\tchartAndLegendContainer.width = percent(100);\r\n\t\tchartAndLegendContainer.height = percent(100);\r\n\t\tthis.chartAndLegendContainer = chartAndLegendContainer;\r\n\r\n\t\t// Chart container holds all the elements of a chart, extept titles and legend\r\n\t\tlet chartContainer = chartAndLegendContainer.createChild(Container);\r\n\t\tchartContainer.shouldClone = false;\r\n\t\tchartContainer.width = percent(100);\r\n\t\tchartContainer.height = percent(100);\r\n\t\tthis.chartContainer = chartContainer;\r\n\r\n\t\tthis.showOnInit = true;\r\n\r\n\t\tthis._disposers.push(this._legend);\r\n\r\n\t\t// Add title list events to apply certain formatting options and to make\r\n\t\t// the chart reference them as accessible screen reader labels\r\n\t\tthis.titles.events.on(\"inserted\", (label) => {\r\n\t\t\tthis.processTitle(label);\r\n\t\t\tthis.updateReaderTitleReferences();\r\n\t\t}, this, false);\r\n\t\tthis.titles.events.on(\"removed\", (label) => {\r\n\t\t\tthis.updateReaderTitleReferences();\r\n\t\t}, this, false);\r\n\r\n\t\t// Accessibility\r\n\t\t// It seems we can't set focusable on the whole chart because it seems to\r\n\t\t// mess up the whole focus event system - getting a focus on an inside\r\n\t\t// object also trigger focus on parent\r\n\t\t//this.focusable = true;\r\n\t\tthis.role = \"region\";\r\n\r\n\t\tthis.defaultState.transitionDuration = 1;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Chart\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates drawing of the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tthis.fixLayout();\r\n\t\tsuper.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates legend's hierarchy based on the position.\r\n\t */\r\n\tprotected fixLayout(): void {\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\t\t\tlet chartAndLegendContainer = this.chartAndLegendContainer;\r\n\t\t\tlet chartContainer = this.chartContainer;\r\n\t\t\tchartContainer.x = undefined;\r\n\t\t\tchartContainer.y = undefined;\r\n\t\t\tif (legend.position != \"absolute\") {\r\n\t\t\t\tlegend.x = undefined;\r\n\t\t\t\tlegend.y = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tswitch (legend.position) {\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"horizontal\";\r\n\t\t\t\t\tlegend.toBack();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"horizontal\";\r\n\t\t\t\t\tlegend.toFront();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"top\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"vertical\";\r\n\t\t\t\t\tlegend.toBack();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"vertical\";\r\n\t\t\t\t\tlegend.toFront();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"absolute\":\r\n\t\t\t\t\tlegend.isMeasured = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Setups the legend to use the chart's data.\r\n\t */\r\n\tprotected feedLegend(): void {\r\n\r\n\t\t// Nothing here. This method is provided only as a \"placeholder\" for\r\n\t\t// extending classes to override\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a new title to the chart when it is inserted into chart's titles\r\n\t * list.\r\n\t * @param event An event object which is triggered when inserting into titles list\r\n\t * @return Label object\r\n\t */\r\n\tprotected processTitle(event: IListEvents<Label>[\"inserted\"]): Label {\r\n\t\tlet title: Label = event.newValue;\r\n\t\ttitle.parent = this;\r\n\t\ttitle.toBack();\r\n\t\ttitle.shouldClone = false;\r\n\t\ttitle.align = \"center\";\r\n\r\n\t\t// Need to explicitly apply the `id` attribute so it can be referenced by\r\n\t\t// `aria-labelledby`\r\n\t\ttitle.uidAttr();\r\n\t\treturn title;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if chart has any title elements. If it does, we will use them in an\r\n\t * `aria-labelledby` attribute so that screen readers can use them to properly\r\n\t * describe the chart when it is focused or hovered.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateReaderTitleReferences(): void {\r\n\t\tif (this.titles.length) {\r\n\t\t\tlet titleIds: Array<string> = [];\r\n\t\t\t$iter.each(this.titles.iterator(), (title) => {\r\n\t\t\t\ttitleIds.push(title.uid);\r\n\t\t\t});\r\n\t\t\tthis.setSVGAttribute({ \"aria-labelledby\": titleIds.join(\" \") });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"aria-labelledby\");\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Holds the instance of chart's [[Leged]].\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for more information about legends\r\n\t * @param Legend\r\n\t */\r\n\tpublic set legend(legend: Legend) {\r\n\t\tthis.setLegend(legend);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Legend\r\n\t */\r\n\tpublic get legend(): Legend {\r\n\t\treturn this._legend.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares the legend instance for use in this chart.\r\n\t *\r\n\t * @param legend Legend\r\n\t */\r\n\tprotected setLegend(legend: Legend) {\r\n\t\tif (this._legend.get() !== legend) {\r\n\t\t\tif (legend) {\r\n\t\t\t\t// Set legend options\r\n\t\t\t\tlegend.parent = this.chartAndLegendContainer;\r\n\r\n\t\t\t\tthis._legend.set(legend, legend.events.on(\"propertychanged\", (event) => {\r\n\t\t\t\t\tif (event.property == \"position\") {\r\n\t\t\t\t\t\tthis.fixLayout();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, undefined, false));\r\n\r\n\t\t\t\tlegend.addDisposer(new Disposer(() => {\r\n\t\t\t\t\tthis.legend = undefined;\r\n\t\t\t\t}))\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis._legend.reset();\r\n\t\t\t}\r\n\r\n\t\t\tthis.feedLegend();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\t// otherwise there might be some errors when disposing chart which was just inited\r\n\t\tif (this.legend) {\r\n\t\t\tthis.legend.dispose();\r\n\t\t}\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up legend\r\n\t\t\tif ($type.hasValue(config.legend) && !$type.hasValue(config.legend.type)) {\r\n\t\t\t\tconfig.legend.type = \"Legend\";\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from another instance of [[Series]].\r\n\t *\r\n\t * @param source Source series\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tthis.titles.copyFrom(source.titles);\r\n\t\tthis.chartContainer.copyFrom(source.chartContainer);\r\n\t\tif (source.legend) {\r\n\t\t\tthis.legend = source.legend.clone();\r\n\t\t\tthis.legend.removeChildren();\r\n\t\t}\r\n\t\tsuper.copyFrom(source);\r\n\t}\r\n\r\n\t/**\r\n\t * An instance of [[Grip]] which serves as a grip point which appears on\r\n\t * touch and allows scrolling whole page even if chart is occupying the\r\n\t * whole of the screen and would otherwise prevent scrolling.\r\n\t *\r\n\t * @since 4.4.0\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n\t * @param value Grip\r\n\t */\r\n\tpublic set dragGrip(value: Grip) {\r\n\t\tthis._dragGrip = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Grip\r\n\t */\r\n\tpublic get dragGrip(): Grip {\r\n\t\tif (!this._dragGrip) {\r\n\t\t\tlet grip = this.tooltipContainer.createChild(Grip);\r\n\t\t\tgrip.align = \"right\";\r\n\t\t\tgrip.valign = \"middle\";\r\n\t\t\tgrip.hide(0);\r\n\r\n\t\t\tgrip.events.on(\"down\", (ev) => {\r\n\t\t\t\tif (ev.touch) {\r\n\t\t\t\t\tthis.interactionsEnabled = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tgrip.events.on(\"up\", (ev) => {\r\n\t\t\t\tthis.interactionsEnabled = true;\r\n\t\t\t});\r\n\r\n\t\t\tthis.events.on(\"down\", (ev) => {\r\n\t\t\t\tif (ev.touch) {\r\n\t\t\t\t\tgrip.show();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis._dragGrip = grip;\r\n\t\t}\r\n\t\treturn this._dragGrip;\r\n\t}\r\n\r\n\tpublic set focusable(value: boolean) {\r\n\t\tthis.parent.focusable = value;\r\n\t}\r\n\r\n\tpublic get focusable(): boolean {\r\n\t\treturn this.parent.focusable;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Chart\"] = Chart;\r\n\r\n\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Reduce horizontal margins\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tif (target.pixelPaddingLeft > 10) {\r\n\t\t\t\tstate.properties.paddingLeft = 10;\r\n\t\t\t}\r\n\t\t\tif (target.pixelPaddingRight > 10) {\r\n\t\t\t\tstate.properties.paddingRight = 10;\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Reduce vertical margins\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tif (target.pixelPaddingTop > 10) {\r\n\t\t\t\tstate.properties.paddingTop = 10;\r\n\t\t\t}\r\n\t\t\tif (target.pixelPaddingBottom > 10) {\r\n\t\t\t\tstate.properties.paddingBottom = 10;\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Remove horizontal padding\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthXXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.paddingLeft = 0;\r\n\t\t\tstate.properties.paddingRight = 0;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Remove vertical padding\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.paddingTop = 0;\r\n\t\t\tstate.properties.paddingBottom = 0;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n"]}
\No newline at end of file