@amcharts/amcharts5 5.0.6 → 5.0.10
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/.internal/charts/hierarchy/Hierarchy.d.ts +14 -0
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +34 -0
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/map/GraticuleSeries.js +1 -1
- package/.internal/charts/map/GraticuleSeries.js.map +1 -1
- package/.internal/charts/map/MapChart.d.ts +3 -0
- package/.internal/charts/map/MapChart.d.ts.map +1 -1
- package/.internal/charts/map/MapChart.js +32 -9
- package/.internal/charts/map/MapChart.js.map +1 -1
- package/.internal/charts/percent/PercentSeries.d.ts +14 -0
- package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +34 -0
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/radar/RadarColumnSeries.js +1 -1
- package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
- package/.internal/charts/venn/Venn.d.ts +14 -0
- package/.internal/charts/venn/Venn.d.ts.map +1 -1
- package/.internal/charts/venn/Venn.js +34 -0
- package/.internal/charts/venn/Venn.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +1 -0
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +37 -12
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.js +14 -0
- package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +2 -1
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.d.ts +24 -0
- package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.js +101 -1
- package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererX.d.ts +3 -0
- package/.internal/charts/xy/axes/AxisRendererX.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererX.js +18 -1
- package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererY.d.ts +4 -0
- package/.internal/charts/xy/axes/AxisRendererY.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererY.js +27 -1
- package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.js +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
- package/.internal/charts/xy/series/ColumnSeries.js +1 -1
- package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +2 -2
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/OHLCSeries.js +1 -1
- package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +3 -2
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +5 -0
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/render/HeatLegend.d.ts.map +1 -1
- package/.internal/core/render/HeatLegend.js +2 -1
- package/.internal/core/render/HeatLegend.js.map +1 -1
- package/.internal/core/render/Legend.d.ts +1 -0
- package/.internal/core/render/Legend.d.ts.map +1 -1
- package/.internal/core/render/Legend.js +14 -2
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/Series.d.ts +8 -0
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js +24 -1
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +2 -2
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/util/Array.d.ts +16 -0
- package/.internal/core/util/Array.d.ts.map +1 -1
- package/.internal/core/util/Array.js +30 -0
- package/.internal/core/util/Array.js.map +1 -1
- package/.internal/core/util/Entity.d.ts.map +1 -1
- package/.internal/core/util/Entity.js +6 -2
- package/.internal/core/util/Entity.js.map +1 -1
- package/.internal/core/util/Percent.d.ts +21 -27
- package/.internal/core/util/Percent.d.ts.map +1 -1
- package/.internal/core/util/Percent.js +21 -27
- package/.internal/core/util/Percent.js.map +1 -1
- package/CHANGELOG.md +42 -0
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/index.js +8 -0
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/index.js +6 -2
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/index.js +8 -2
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/index.js +8 -4
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/index.js +2 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/index.js +8 -2
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/index.js +8 -3
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/index.ts +8 -0
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/index.ts +6 -2
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/index.ts +8 -2
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/index.ts +8 -4
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/index.ts +2 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/index.ts +8 -2
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/index.ts +8 -3
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","sourceRoot":"","sources":["../../../../src/.internal/core/Root.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IAnimation } from \"./util/Animation\";\nimport type { Entity } from \"./util/Entity\";\nimport type { Sprite } from \"./render/Sprite\";\nimport type { Text } from \"./render/Text\";\nimport type { Theme } from \"./Theme\";\nimport type { IPoint } from \"./util/IPoint\";\nimport type { IRenderer } from \"./render/backend/Renderer\";\n\nimport { Container } from \"./render/Container\";\nimport { HorizontalLayout } from \"./render/HorizontalLayout\";\nimport { VerticalLayout } from \"./render/VerticalLayout\";\nimport { GridLayout } from \"./render/GridLayout\";\nimport { IDisposer, Disposer } from \"./util/Disposer\";\nimport { ResizeSensor } from \"./util/ResizeSensor\";\nimport { InterfaceColors } from \"./util/InterfaceColors\";\nimport { Graphics } from \"./render/Graphics\";\nimport { Rectangle } from \"./render/Rectangle\";\nimport { Tooltip } from \"./render/Tooltip\";\nimport { NumberFormatter } from \"./util/NumberFormatter\";\nimport { DateFormatter } from \"./util/DateFormatter\";\nimport { DurationFormatter } from \"./util/DurationFormatter\";\nimport { ILocale, Language } from \"./util/Language\";\nimport { Events, EventDispatcher } from \"./util/EventDispatcher\";\nimport { DefaultTheme } from \"../themes/DefaultTheme\";\nimport { CanvasRenderer } from \"./render/backend/CanvasRenderer\";\nimport { p100, percent } from \"./util/Percent\";\nimport { color } from \"./util/Color\";\nimport { populateString } from \"./util/PopulateString\";\nimport { registry } from \"./Registry\";\n\nimport * as $order from \"./util/Order\";\nimport * as $array from \"./util/Array\";\nimport * as $object from \"./util/Object\";\nimport * as $utils from \"./util/Utils\";\n\nimport en from \"../../locales/en\";\n\n\n/**\n * @ignore\n */\ninterface IParent extends Entity {\n\t_prepareChildren(): void;\n\t_updateChildren(): void;\n}\n\ninterface IBounds extends Entity {\n\tdepth(): number;\n\t_updateBounds(): void;\n}\n\n\nexport interface IRootEvents {\n\tframestarted: {\n\t\ttimestamp: number;\n\t};\n\tframeended: {\n\t\ttimestamp: number;\n\t};\n}\n\n\n// TODO implement Disposer\n/**\n * Root element of the chart.\n *\n * @see {@link https://www.amcharts.com/docs/v5/getting-started/#Root_element} for more info\n */\nexport class Root implements IDisposer {\n\n\t/**\n\t * A reference to original chart container (div element).\n\t */\n\tpublic dom: HTMLElement;\n\tpublic _inner: HTMLElement;\n\n\tprotected _isDirty: boolean = false;\n\tprotected _isDirtyParents: boolean = false;\n\tprotected _dirty: { [id: number]: Entity } = {};\n\tprotected _dirtyParents: { [id: number]: IParent } = {};\n\tprotected _dirtyBounds: { [id: number]: IBounds } = {};\n\tprotected _dirtyPositions: { [id: number]: Sprite } = {};\n\n\tprotected _ticker: ((currentTime: number) => void) | null = null;\n\tprotected _tickers: Array<(currentTime: number) => void> = [];\n\n\t/**\n\t * Root's event dispatcher.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/} for more info\n\t */\n\tpublic events: EventDispatcher<Events<this, IRootEvents>> = new EventDispatcher();\n\n\t/**\n\t * @todo needs description\n\t */\n\tpublic animationTime: number | null = null;\n\n\tprivate _animations: Array<IAnimation> = [];\n\n\tpublic _renderer: IRenderer = new CanvasRenderer();\n\n\tpublic _rootContainer!: Container;\n\n\t/**\n\t * Main content container.\n\t */\n\tpublic container!: Container;\n\n\t/**\n\t * A [[Container]] used to display tooltips in.\n\t */\n\tpublic tooltipContainer!: Container\n\n\tpublic _tooltip!: Tooltip;\n\n\t// Locale-related\n\n\t/**\n\t * @ignore\n\t */\n\tpublic language: Language = Language.new(this, {});\n\n\t/**\n\t * Locale used by the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/locales/}\n\t */\n\tpublic locale: ILocale = en;\n\n\t// Date-time related\n\n\t/**\n\t * Use UTC when formatting date/time.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/#UTC_and_time_zones} for more info\n\t */\n\tpublic utc: boolean = false;\n\n\t/**\n\t * Use specific time zone when formatting date/time.\n\t *\n\t * @ignore timezones are not yet supported\n\t */\n\tpublic timezone: string | null = null;\n\n\t/**\n\t * Number formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/} for more info\n\t */\n\tpublic numberFormatter: NumberFormatter = NumberFormatter.new(this, {});\n\n\t/**\n\t * Date/time formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic dateFormatter: DateFormatter = DateFormatter.new(this, {});\n\n\t/**\n\t * Duration formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic durationFormatter: DurationFormatter = DurationFormatter.new(this, {});\n\n\n\t// Accessibility\n\n\t/**\n\t * Global tab index for using for the whole chart\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t */\n\tpublic tabindex: number = 0;\n\n\t//@todo maybe make this better\n\tprotected _tabindexes: Sprite[] = [];\n\n\tprotected _focusElementDirty: boolean = false;\n\tprotected _focusElementContainer: HTMLDivElement | undefined;\n\tprotected _focusedSprite: Sprite | undefined;\n\tprotected _keyboardDragPoint: IPoint | undefined;\n\tprotected _tooltipElementContainer: HTMLDivElement | undefined;\n\tprotected _readerAlertElement: HTMLDivElement | undefined;\n\n\tpublic _logo?: Container;\n\n\t/**\n\t * Used for dynamically-created CSS and JavaScript with strict source policies.\n\t */\n\tpublic nonce?: string;\n\n\t/**\n\t * Special color set to be used for various controls.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Interface_colors} for more info\n\t */\n\tpublic interfaceColors: InterfaceColors;\n\n\t/**\n\t * An instance of vertical layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic verticalLayout: VerticalLayout = VerticalLayout.new(this, {});\n\n\t/**\n\t * An instance of horizontal layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default HorizontalLayout.new()\n\t */\n\tpublic horizontalLayout: VerticalLayout = HorizontalLayout.new(this, {});\n\n\t/**\n\t * An instance of grid layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic gridLayout: VerticalLayout = GridLayout.new(this, {});\n\n\t/**\n\t * Indicates whether chart should resized automatically when parent container\n\t * width and/or height changes.\n\t *\n\t * If disabled (`autoResize = false`) you can make the chart resize manually\n\t * by calling root element's `resize()` method.\n\t */\n\tpublic autoResize: boolean = true;\n\n\tprotected _isDisposed: boolean = false;\n\tprotected _disposers: Array<IDisposer> = [];\n\n\tprotected _resizeSensorDisposer?: IDisposer;\n\n\tpublic _tooltips: Array<Tooltip> = [];\n\n\tprotected constructor(id: string | HTMLElement, isReal: boolean) {\n\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\tthis.interfaceColors = InterfaceColors.new(this, {});\n\n\t\tif (dom === null) {\n\t\t\tthrow new Error(\"Could not find HTML element with id `\" + id + \"`\");\n\t\t}\n\n\t\tthis.dom = dom;\n\n\t\tlet inner: HTMLDivElement = document.createElement(\"div\");\n\t\tinner.style.position = \"relative\";\n\t\tdom.appendChild(inner);\n\n\t\tthis._inner = inner;\n\n\t\tregistry.rootElements.push(this);\n\t}\n\n\tpublic static new(id: string | HTMLElement): Root {\n\t\tconst root = new Root(id, true);\n\t\troot._init();\n\t\treturn root;\n\t}\n\n\tpublic moveDOM(id: string | HTMLElement): void {\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\tif (dom) {\n\t\t\twhile (this.dom.childNodes.length > 0) {\n\t\t\t\tdom.appendChild(this.dom.childNodes[0]);\n\t\t\t}\n\t\t\tthis.dom = dom;\n\t\t\tthis._initResizeSensor();\n\t\t\tthis.resize();\n\t\t}\n\n\t}\n\n\n\tprotected _handleLogo(): void {\n\t\tif (this._logo) {\n\t\t\tif (this._rootContainer.getPrivate(\"width\", 0) <= 150 || this._rootContainer.getPrivate(\"height\", 0) <= 60) {\n\t\t\t\tthis._logo.hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._logo.show();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _showBranding(): void {\n\t\tif (!this._logo) {\n\t\t\tconst logo = this.tooltipContainer.children.push(Container.new(this, {\n\t\t\t\tinteractive: true,\n\t\t\t\tinteractiveChildren: false,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tsetStateOnChildren: true,\n\t\t\t\tpaddingTop: 9,\n\t\t\t\tpaddingRight: 9,\n\t\t\t\tpaddingBottom: 9,\n\t\t\t\tpaddingLeft: 9,\n\t\t\t\tscale: .6,\n\t\t\t\ty: percent(100),\n\t\t\t\tcenterY: p100,\n\t\t\t\ttooltipText: \"Created using amCharts 5\",\n\t\t\t\ttooltipX: p100,\n\t\t\t\tcursorOverStyle: \"pointer\",\n\t\t\t\tbackground: Rectangle.new(this, {\n\t\t\t\t\tfill: color(0x474758),\n\t\t\t\t\tfillOpacity: 0,\n\t\t\t\t\ttooltipY: 5\n\t\t\t\t})\n\t\t\t}));\n\n\t\t\tconst tooltip = Tooltip.new(this, {\n\t\t\t\tpointerOrientation: \"horizontal\",\n\t\t\t\tpaddingTop: 4,\n\t\t\t\tpaddingRight: 7,\n\t\t\t\tpaddingBottom: 4,\n\t\t\t\tpaddingLeft: 7\n\t\t\t});\n\t\t\ttooltip.label.setAll({\n\t\t\t\tfontSize: 12\n\t\t\t});\n\t\t\ttooltip.get(\"background\")!.setAll({\n\t\t\t\tfill: this.interfaceColors.get(\"background\"),\n\t\t\t\tstroke: this.interfaceColors.get(\"grid\"),\n\t\t\t\tstrokeOpacity: 0.3\n\t\t\t})\n\t\t\tlogo.set(\"tooltip\", tooltip);\n\n\t\t\tlogo.events.on(\"click\", () => {\n\t\t\t\twindow.open(\"https://www.amcharts.com/\", \"_blank\");\n\t\t\t});\n\n\t\t\tlogo.states.create(\"hover\", {});\n\n\t\t\tconst m = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0xcccccc),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M5 25 L13 25h13.6c3.4 0 6 0 10.3-4.3s5.2-12 8.6-12c3.4 0 4.3 8.6 7.7 8.6M83.4 25H79.8c-3.4 0-6 0-10.3-4.3s-5.2-12-8.6-12-4.3 8.6-7.7 8.6\"\n\t\t\t}));\n\n\t\t\tm.states.create(\"hover\", { stroke: color(0x3CABFF) });\n\n\t\t\tconst a = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0x888888),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M83.4 25h-31C37 25 39.5 4.4 28.4 4.4S18.9 24.2 4.3 25H0\"\n\t\t\t}));\n\n\t\t\ta.states.create(\"hover\", { stroke: color(0x474758) });\n\n\t\t\t//logo.set(\"tooltip\", this._tooltip);\n\t\t\t//logo.setPrivate(\"tooltipTarget\", logo.get(\"background\"));\n\t\t\tthis._logo = logo;\n\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprotected _init(): void {\n\t\tconst renderer = this._renderer;\n\t\tconst rootContainer = Container.new(this, { visible: true, width: this.dom.clientWidth, height: this.dom.clientHeight });\n\t\tthis._rootContainer = rootContainer;\n\t\tthis._rootContainer._defaultThemes.push(DefaultTheme.new(this));\n\n\t\tconst container = rootContainer.children.push(Container.new(this, { visible: true, width: p100, height: p100 }));\n\t\tthis.container = container;\n\n\t\trenderer.resize(this.dom.clientWidth, this.dom.clientHeight);\n\n\t\t//@todo: better appendChild - refer\n\t\tthis._inner.appendChild(renderer.view);\n\n\t\t// TODO: TMP TMP TMP for testing only, remove\n\t\t//document.body.appendChild((<any>renderer)._ghostView);\n\n\t\tthis._initResizeSensor();\n\n\t\t// Create element which is used to make announcements to screen reader\n\t\tconst readerAlertElement = document.createElement(\"div\");\n\t\treaderAlertElement.setAttribute(\"role\", \"alert\");\n\t\treaderAlertElement.style.zIndex = \"-100000\";\n\t\treaderAlertElement.style.opacity = \"0\";\n\t\treaderAlertElement.style.position = \"absolute\";\n\t\treaderAlertElement.style.top = \"0\";\n\t\tthis._readerAlertElement = readerAlertElement;\n\t\tthis._inner.appendChild(this._readerAlertElement);\n\n\t\tconst focusElementContainer = document.createElement(\"div\");\n\t\tfocusElementContainer.style.position = \"absolute\";\n\t\tfocusElementContainer.style.pointerEvents = \"none\";\n\t\tfocusElementContainer.style.top = \"0px\";\n\t\tfocusElementContainer.style.left = \"0px\";\n\t\tfocusElementContainer.style.overflow = \"hidden\";\n\t\tfocusElementContainer.style.width = this.dom.clientWidth + \"px\";\n\t\tfocusElementContainer.style.height = this.dom.clientHeight + \"px\";\n\t\t$utils.setInteractive(focusElementContainer, false);\n\t\tthis._focusElementContainer = focusElementContainer;\n\t\tthis._inner.appendChild(this._focusElementContainer);\n\n\t\tthis._tooltipElementContainer = document.createElement(\"div\");\n\t\tthis._inner.appendChild(this._tooltipElementContainer);\n\n\t\t// Add keyboard events for accessibility, e.g. simulating drag with arrow\n\t\t// keys and click with ENTER\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\tif (focusedSprite) {\n\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t// ESC pressed - lose current focus\n\t\t\t\t\t\t$utils.blur();\n\t\t\t\t\t\tthis._focusedSprite = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tlet dragOffsetX = 0;\n\t\t\t\t\tlet dragOffsetY = 0;\n\t\t\t\t\t// TODO: figure out if using bogus MouseEvent is fine, or it will\n\t\t\t\t\t// fail on some platforms\n\t\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"click\"));\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"click\", {\n\t\t\t\t\t\t\t\ttype: \"click\",\n\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\tdragOffsetX = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\tdragOffsetX = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\tdragOffsetY = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tdragOffsetY = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragOffsetX != 0 || dragOffsetY != 0) {\n\t\t\t\t\t\tev.preventDefault();\n\n\t\t\t\t\t\tif (!focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t// Start dragging\n\t\t\t\t\t\t\tthis._keyboardDragPoint = {\n\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\ty: 0\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"mousedown\", {\n\t\t\t\t\t\t\t\tclientX: 0,\n\t\t\t\t\t\t\t\tclientY: 0\n\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"pointerdown\")) {\n\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"pointerdown\", {\n\t\t\t\t\t\t\t\t\ttype: \"pointerdown\",\n\t\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Move focus marker\n\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Move incrementally\n\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\tdragPoint.x += dragOffsetX;\n\t\t\t\t\t\tdragPoint.y += dragOffsetY;\n\t\t\t\t\t\tconst moveEvent = renderer.getEvent(new MouseEvent(\"mousemove\", {\n\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t}), false);\n\n\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointermove\")) {\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointermove\", {\n\t\t\t\t\t\t\t\ttype: \"globalpointermove\",\n\t\t\t\t\t\t\t\toriginalEvent: moveEvent.event,\n\t\t\t\t\t\t\t\tpoint: moveEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\tdocument.addEventListener(\"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\tif (this._focusedSprite) {\n\t\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\t\tconst keyCode = ev.keyCode;\n\t\t\t\t\tswitch (keyCode) {\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tif (focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t\t// Simulate drag stop\n\t\t\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\t\t\tconst upEvent = renderer.getEvent(new MouseEvent(\"mouseup\", {\n\t\t\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointerup\")) {\n\t\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointerup\", {\n\t\t\t\t\t\t\t\t\t\ttype: \"globalpointerup\",\n\t\t\t\t\t\t\t\t\t\toriginalEvent: upEvent.event,\n\t\t\t\t\t\t\t\t\t\tpoint: upEvent.point,\n\t\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t\t\tthis._keyboardDragPoint = undefined;\n\t\t\t\t\t\t\t\t// @todo dispatch mouseup event instead of calling dragStop?\n\t\t\t\t\t\t\t\t// this._dispatchEvent(\"globalpointerup\", target, upEvent);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(focusedSprite.get(\"focusableGroup\")) {\n\t\t\t\t\t\t\t\t// Find next item in focusable group\n\t\t\t\t\t\t\t\tconst group = focusedSprite.get(\"focusableGroup\");\n\t\t\t\t\t\t\t\tconst items = this._tabindexes.filter(item => item.get(\"focusableGroup\") == group);\n\t\t\t\t\t\t\t\tlet index = items.indexOf(focusedSprite);\n\t\t\t\t\t\t\t\tconst lastIndex = items.length - 1;\n\t\t\t\t\t\t\t\tindex += (keyCode == 39 || keyCode == 40) ? 1 : -1;\n\t\t\t\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\t\t\t\tindex = lastIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (index > lastIndex) {\n\t\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$utils.focus(items[index].getPrivate(\"focusElement\")!);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._startTicker();\n\t\tthis.setThemes([]);\n\n\t\tthis._addTooltip();\n\n\t\tif (!this._hasLicense()) {\n\t\t\tthis._showBranding();\n\t\t}\n\t}\n\n\tprivate _initResizeSensor(): void {\n\t\tif (this._resizeSensorDisposer) {\n\t\t\tthis._resizeSensorDisposer.dispose();\n\t\t}\n\t\tthis._resizeSensorDisposer = new ResizeSensor(this.dom, () => {\n\t\t\tif (this.autoResize) {\n\t\t\t\tthis.resize();\n\t\t\t}\n\t\t});\n\t\tthis._disposers.push(this._resizeSensorDisposer);\n\t}\n\n\t/**\n\t * If automatic resizing of char is disabled (`root.autoResize = false`), it\n\t * can be resized manually by calling this method.\n\t */\n\tpublic resize(): void {\n\t\tconst dom = this.dom;\n\t\tconst w = dom.clientWidth;\n\t\tconst h = dom.clientHeight;\n\t\tif (w > 0 && h > 0) {\n\t\t\tconst focusElementContainer = this._focusElementContainer!;\n\n\t\t\tfocusElementContainer.style.width = w + \"px\";\n\t\t\tfocusElementContainer.style.height = h + \"px\";\n\n\t\t\tthis._renderer.resize(w, h);\n\n\t\t\tconst rootContainer = this._rootContainer;\n\n\t\t\trootContainer.setPrivate(\"width\", w);\n\t\t\trootContainer.setPrivate(\"height\", h);\n\t\t\tthis._render();\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprivate _render() {\n\t\tthis._renderer.render(this._rootContainer._display);\n\n\t\tif (this._focusElementDirty) {\n\t\t\tthis._updateCurrentFocus();\n\t\t\tthis._focusElementDirty = false;\n\t\t}\n\t}\n\n\tprivate _runTickers(currentTime: number) {\n\t\t$array.each(this._tickers, (f) => {\n\t\t\tf(currentTime);\n\t\t});\n\t}\n\n\tprivate _runAnimations(currentTime: number) {\n\t\t$array.keepIf(this._animations, (animation) => {\n\t\t\treturn !animation._runAnimation(currentTime);\n\t\t});\n\t}\n\n\tprivate _runDirties() {\n\t\t//console.log(\"tick **************************************************************\");\n\t\tlet allParents: { [id: number]: IParent } = {};\n\n\t\twhile (this._isDirtyParents) {\n\t\t\t// This must be before calling _prepareChildren\n\t\t\tthis._isDirtyParents = false;\n\n\t\t\t$object.keys(this._dirtyParents).forEach((key) => {\n\t\t\t\tconst parent = this._dirtyParents[key];\n\n\t\t\t\tdelete this._dirtyParents[key];\n\n\t\t\t\tif (!parent.isDisposed()) {\n\t\t\t\t\tallParents[parent.uid] = parent;\n\t\t\t\t\tparent._prepareChildren();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t$object.keys(allParents).forEach((key) => {\n\t\t\tallParents[key]._updateChildren();\n\t\t});\n\n\t\tconst objects: Array<Entity> = [];\n\n\t\t//\t\tconsole.log(\"_beforeChanged\")\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tconst entity = this._dirty[key];\n\n\t\t\tif (entity.isDisposed()) {\n\t\t\t\tdelete this._dirty[entity.uid];\n\n\t\t\t} else {\n\t\t\t\tobjects.push(entity);\n\t\t\t\tentity._beforeChanged();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_changed\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._changed();\n\t\t\tdelete this._dirty[entity.uid];\n\t\t\tentity._clearDirty();\n\t\t});\n\n\t\tthis._isDirty = false;\n\n\t\tconst depths: { [id: number]: number } = {};\n\t\tconst bounds: Array<IBounds> = [];\n\n\t\t$object.keys(this._dirtyBounds).forEach((key) => {\n\t\t\tconst entity = this._dirtyBounds[key];\n\n\t\t\tdelete this._dirtyBounds[key];\n\n\t\t\tif (!entity.isDisposed()) {\n\t\t\t\tdepths[entity.uid] = entity.depth();\n\t\t\t\tbounds.push(entity);\n\t\t\t}\n\t\t});\n\n\t\t// High depth -> low depth\n\t\tbounds.sort((x, y) => {\n\t\t\treturn $order.compare(depths[y.uid], depths[x.uid]);\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updateBounds\")\n\t\tbounds.forEach((entity) => {\n\t\t\tentity._updateBounds();\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updatePosition\")\n\t\tconst dirtyPositions = this._dirtyPositions;\n\t\t$object.keys(dirtyPositions).forEach((key) => {\n\t\t\tconst sprite = dirtyPositions[key];\n\n\t\t\tdelete dirtyPositions[key];\n\n\t\t\tif (!sprite.isDisposed()) {\n\t\t\t\tsprite._updatePosition();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_afterChanged\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._afterChanged();\n\t\t});\n\n\t}\n\n\tprivate _runTicker(currentTime: number) {\n\t\tif (!this.isDisposed()) {\n\t\t\tthis.animationTime = currentTime;\n\n\t\t\tif (this.events.isEnabled(\"framestarted\")) {\n\t\t\t\tthis.events.dispatch(\"framestarted\", {\n\t\t\t\t\ttype: \"framestarted\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._runTickers(currentTime);\n\t\t\tthis._runAnimations(currentTime);\n\t\t\tthis._runDirties();\n\t\t\tthis._render();\n\n\t\t\tif (this.events.isEnabled(\"frameended\")) {\n\t\t\t\tthis.events.dispatch(\"frameended\", {\n\t\t\t\t\ttype: \"frameended\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// No more work to do\n\t\t\tif (this._tickers.length === 0 &&\n\t\t\t\tthis._animations.length === 0 &&\n\t\t\t\t!this._isDirty) {\n\n\t\t\t\tthis._ticker = null;\n\t\t\t\tthis.animationTime = null;\n\n\t\t\t} else {\n\t\t\t\trequestAnimationFrame(this._ticker!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _startTicker() {\n\t\tif (this._ticker === null) {\n\t\t\tthis.animationTime = null;\n\n\t\t\tthis._ticker = (currentTime) => {\n\t\t\t\tthis._runTicker(currentTime);\n\t\t\t};\n\n\t\t\trequestAnimationFrame(this._ticker);\n\t\t}\n\t}\n\n\tpublic _addDirtyEntity(entity: Entity) {\n\t\tif (this._dirty[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirty[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyParent(parent: IParent) {\n\t\tif (this._dirtyParents[parent.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._isDirtyParents = true;\n\t\t\tthis._dirtyParents[parent.uid] = parent;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyBounds(entity: IBounds) {\n\t\tif (this._dirtyBounds[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyBounds[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyPosition(sprite: Sprite) {\n\t\tif (this._dirtyPositions[sprite.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyPositions[sprite.uid] = sprite;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addAnimation(animation: IAnimation) {\n\t\t// TODO use numeric id instead\n\t\tif (this._animations.indexOf(animation) === -1) {\n\t\t\tthis._animations.push(animation);\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic eachFrame(f: (currentTime: number) => void): IDisposer {\n\t\tthis._tickers.push(f);\n\t\tthis._startTicker();\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(this._tickers, f);\n\t\t});\n\t}\n\n\t/**\n\t * Returns width of the target container, in pixels.\n\t *\n\t * @return Width\n\t */\n\tpublic width(): number {\n\t\treturn this.dom.clientWidth;\n\t}\n\n\t/**\n\t * Returns height of the target container, in pixels.\n\t *\n\t * @return Height\n\t */\n\tpublic height(): number {\n\t\treturn this.dom.clientHeight;\n\t}\n\n\t/**\n\t * Disposes root and all the content in it.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._isDisposed) {\n\t\t\tthis._isDisposed = true;\n\n\t\t\tthis._rootContainer.dispose();\n\t\t\tthis._renderer.dispose();\n\t\t\tthis.horizontalLayout.dispose();\n\t\t\tthis.verticalLayout.dispose();\n\t\t\tthis.interfaceColors.dispose();\n\n\t\t\t$array.each(this._disposers, (x) => {\n\t\t\t\tx.dispose();\n\t\t\t});\n\n\t\t\tif (this._inner) {\n\t\t\t\t$utils.removeElement(this._inner);\n\t\t\t}\n\n\t\t\t$array.remove(registry.rootElements, this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if root element is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._isDisposed;\n\t}\n\n\t/**\n\t * Triggers screen reader read out a message.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t * @param text Alert text\n\t */\n\tpublic readerAlert(text: string): void {\n\t\tthis._readerAlertElement!.innerHTML = text;\n\t}\n\n\t/**\n\t * Sets themes to be used for the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t * @param themes A list of themes\n\t */\n\tpublic setThemes(themes: Array<Theme>): void {\n\t\tthis._rootContainer.set(\"themes\", themes);\n\n\t\t// otherwise new themes are not applied\n\t\tconst tooltipContainer = this.tooltipContainer;\n\t\tif (tooltipContainer) {\n\t\t\ttooltipContainer._applyThemes();\n\t\t}\n\n\t\t// @todo review this\n\t\tconst interfaceColors = this.interfaceColors;\n\t\tif (interfaceColors) {\n\t\t\tinterfaceColors._applyThemes();\n\t\t}\n\t}\n\n\tprotected _addTooltip() {\n\t\tif (!this.tooltipContainer) {\n\t\t\tconst tooltipContainer = this._rootContainer.children.push(Container.new(this, { position: \"absolute\", isMeasured: false, width: p100, height: p100, layer: 100 }));\n\t\t\tthis.tooltipContainer = tooltipContainer;\n\n\t\t\tconst tooltip = Tooltip.new(this, {});\n\t\t\tthis.container.set(\"tooltip\", tooltip);\n\t\t\ttooltip.hide(0);\n\t\t\tthis._tooltip = tooltip;\n\t\t}\n\t}\n\n\t/**\n\t * Accesibility\n\t */\n\n\tpublic _registerTabindexOrder(target: Sprite): void {\n\t\tif (target.get(\"focusable\")) {\n\t\t\t$array.pushOne(this._tabindexes, target);\n\t\t}\n\t\telse {\n\t\t\t$array.remove(this._tabindexes, target);\n\t\t}\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _unregisterTabindexOrder(target: Sprite): void {\n\t\t$array.remove(this._tabindexes, target);\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _invalidateTabindexes(): void {\n\n\t\tthis._tabindexes.sort((a: Sprite, b: Sprite) => {\n\t\t\tconst aindex = a.get(\"tabindexOrder\", 0);\n\t\t\tconst bindex = b.get(\"tabindexOrder\", 0);\n\t\t\tif (aindex == bindex) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\telse if (aindex > bindex) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t});\n\n\t\tconst groups: Array<string | number> = [];\n\t\t$array.each(this._tabindexes, (item, index) => {\n\t\t\tif (!item.getPrivate(\"focusElement\")) {\n\t\t\t\tthis._makeFocusElement(index, item);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._moveFocusElement(index, item);\n\t\t\t}\n\t\t\tconst group = item.get(\"focusableGroup\");\n\t\t\tif (group) {\n\t\t\t\tif (groups.indexOf(group) !== -1) {\n\t\t\t\t\t// Non-first element in the group, make it not directly focusable\n\t\t\t\t\titem.getPrivate(\"focusElement\")!.setAttribute(\"tabindex\", \"-1\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgroups.push(group);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t}\n\n\tpublic _updateCurrentFocus(): void {\n\t\tif (this._focusedSprite) {\n\t\t\tthis._decorateFocusElement(this._focusedSprite);\n\t\t\tthis._positionFocusElement(this._focusedSprite);\n\t\t}\n\t}\n\n\tpublic _decorateFocusElement(target: Sprite, focusElement?: HTMLDivElement): void {\n\n\t\t// Decorate with proper accessibility attributes\n\t\tif (!focusElement) {\n\t\t\tfocusElement = target.getPrivate(\"focusElement\")!;\n\t\t}\n\n\t\tif (!focusElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.get(\"visible\") && target.get(\"role\") != \"tooltip\" && !target.isHidden()) {\n\t\t\tif (focusElement.getAttribute(\"tabindex\") != \"-1\") {\n\t\t\t\tfocusElement.setAttribute(\"tabindex\", \"\" + this.tabindex);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"tabindex\")\n\t\t}\n\n\t\tconst role = target.get(\"role\");\n\t\tif (role) {\n\t\t\tfocusElement.setAttribute(\"role\", role);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"role\");\n\t\t}\n\n\t\tconst ariaLabel = target.get(\"ariaLabel\");\n\t\tif (ariaLabel) {\n\t\t\tconst label = populateString(target, ariaLabel);\n\t\t\tfocusElement.setAttribute(\"aria-label\", label);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-label\");\n\t\t}\n\n\t\tconst ariaLive = target.get(\"ariaLive\");\n\t\tif (ariaLive) {\n\t\t\tfocusElement.setAttribute(\"aria-live\", ariaLive);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-live\");\n\t\t}\n\n\t\tconst ariaChecked = target.get(\"ariaChecked\");\n\t\tif (ariaChecked != null) {\n\t\t\tfocusElement.setAttribute(\"aria-checked\", ariaChecked ? \"true\" : \"false\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-checked\");\n\t\t}\n\n\t\tif (target.get(\"ariaHidden\")) {\n\t\t\tfocusElement.setAttribute(\"aria-hidden\", \"hidden\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-hidden\");\n\t\t}\n\n\t\tconst ariaOrientation = target.get(\"ariaOrientation\");\n\t\tif (ariaOrientation) {\n\t\t\tfocusElement.setAttribute(\"aria-orientation\", ariaOrientation);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-orientation\");\n\t\t}\n\n\t\tconst ariaValueNow = target.get(\"ariaValueNow\");\n\t\tif (ariaValueNow) {\n\t\t\tfocusElement.setAttribute(\"aria-valuenow\", ariaValueNow);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuenow\");\n\t\t}\n\n\t\tconst ariaValueText = target.get(\"ariaValueText\");\n\t\tif (ariaValueText) {\n\t\t\tfocusElement.setAttribute(\"aria-valuetext\", ariaValueText);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuetext\");\n\t\t}\n\t}\n\n\tpublic _makeFocusElement(index: number, target: Sprite): void {\n\n\t\tif (target.getPrivate(\"focusElement\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Init\n\t\tconst focusElement = document.createElement(\"div\");\n\t\tif (target.get(\"role\") != \"tooltip\") {\n\t\t\tfocusElement.tabIndex = this.tabindex;\n\t\t}\n\t\tfocusElement.style.position = \"absolute\";\n\t\t$utils.setInteractive(focusElement, false);\n\n\t\ttarget.setPrivate(\"focusElement\", focusElement);\n\n\t\tthis._decorateFocusElement(target);\n\n\t\tfocusElement.addEventListener(\"focus\", (ev: FocusEvent) => {\n\t\t\tthis._handleFocus(ev, index);\n\t\t});\n\n\t\tfocusElement.addEventListener(\"blur\", (ev: FocusEvent) => {\n\t\t\tthis._handleBlur(ev, index);\n\t\t});\n\n\t\tthis._moveFocusElement(index, target);\n\n\t}\n\n\tpublic _removeFocusElement(target: Sprite): void {\n\n\t\t// Init\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tcontainer.removeChild(focusElement);\n\n\t}\n\n\tprotected _moveFocusElement(index: number, target: Sprite): void {\n\n\t\t// Get container\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\n\t\tif (focusElement === this._focusElementContainer!.children[index]) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tconst next = this._focusElementContainer!.children[index + 1];\n\t\tif (next) {\n\t\t\tcontainer.insertBefore(focusElement, next);\n\t\t}\n\t\telse {\n\t\t\tcontainer.append(focusElement);\n\t\t}\n\t}\n\n\tprotected _positionFocusElement(target: Sprite): void {\n\t\tconst bounds = target.globalBounds();\n\n\t\tconst width = bounds.right == bounds.left ? target.width() : bounds.right - bounds.left;\n\t\tconst height = bounds.top == bounds.bottom ? target.height() : bounds.bottom - bounds.top;\n\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tfocusElement.style.top = (bounds.top - 2) + \"px\";\n\t\tfocusElement.style.left = (bounds.left - 2) + \"px\";\n\t\tfocusElement.style.width = (width + 4) + \"px\";\n\t\tfocusElement.style.height = (height + 4) + \"px\";\n\n\t}\n\n\tprotected _handleFocus(ev: FocusEvent, index: number): void {\n\t\t// Get element\n\t\tconst focused = this._tabindexes[index];\n\n\t\t// Size and position\n\t\tthis._positionFocusElement(focused);\n\t\t//this._decorateFocusElement(focused);\n\n\t\tthis._focusedSprite = focused;\n\n\t\tif (focused.events.isEnabled(\"focus\")) {\n\t\t\tfocused.events.dispatch(\"focus\", {\n\t\t\t\ttype: \"focus\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _handleBlur(ev: FocusEvent, _index: number): void {\n\t\tconst focused = this._focusedSprite;\n\t\tif (focused && focused.events.isEnabled(\"blur\")) {\n\t\t\tfocused.events.dispatch(\"blur\", {\n\t\t\t\ttype: \"blur\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t\tthis._focusedSprite = undefined;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateTooltip(target: Text): void {\n\t\tconst text = target._getText();\n\t\tlet tooltipElement = target.getPrivate(\"tooltipElement\");\n\t\tif (target.get(\"role\") == \"tooltip\" && text != \"\") {\n\t\t\tif (!tooltipElement) {\n\t\t\t\ttooltipElement = this._makeTooltipElement(target);\n\t\t\t}\n\t\t\tif (tooltipElement.innerHTML != text) {\n\t\t\t\ttooltipElement.innerHTML = text!;\n\t\t\t}\n\t\t}\n\t\telse if (tooltipElement) {\n\t\t\ttooltipElement.remove();\n\t\t\ttarget.removePrivate(\"tooltipElement\");\n\t\t}\n\t}\n\n\tpublic _makeTooltipElement(target: Text): HTMLDivElement {\n\t\tconst container = this._tooltipElementContainer!;\n\t\tconst tooltipElement = document.createElement(\"div\");\n\t\ttooltipElement.style.position = \"absolute\";\n\t\ttooltipElement.style.opacity = \"0.0000001\";\n\n\t\t$utils.setInteractive(tooltipElement, false);\n\n\t\tthis._decorateFocusElement(target, tooltipElement);\n\t\tcontainer.append(tooltipElement);\n\t\ttarget.setPrivate(\"tooltipElement\", tooltipElement);\n\t\treturn tooltipElement;\n\t}\n\n\tpublic _invalidateAccessibility(target: Sprite): void {\n\t\tthis._focusElementDirty = true;\n\t\tconst focusElement = target.getPrivate(\"focusElement\");\n\t\tif (target.get(\"focusable\")) {\n\t\t\tif (focusElement) {\n\t\t\t\tthis._decorateFocusElement(target);\n\t\t\t\tthis._positionFocusElement(target);\n\t\t\t}\n\t\t\t// else {\n\t\t\t// \tthis._renderer._makeFocusElement(0, this);\n\t\t\t// }\n\t\t}\n\t\telse if (focusElement) {\n\t\t\tthis._removeFocusElement(target);\n\t\t}\n\t\t//this.updateCurrentFocus();\n\t}\n\n\t/**\n\t * Returns `true` if `target` is currently focused.\n\t *\n\t * @param target Target\n\t * @return Focused?\n\t */\n\tpublic focused(target: Sprite): boolean {\n\t\treturn this._focusedSprite === target;\n\t}\n\n\t/**\n\t * Converts document coordinates to coordinates withing root element.\n\t *\n\t * @param point Document point\n\t * @return Root point\n\t */\n\tpublic documentPointToRoot(point: IPoint): IPoint {\n\t\tconst bbox = this.dom.getBoundingClientRect();\n\t\treturn {\n\t\t\tx: point.x - bbox.left,\n\t\t\ty: point.y - bbox.top\n\t\t};\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addDisposer<T extends IDisposer>(disposer: T): T {\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n * To all the clever heads out there. Yes, we did not make any attempts to\n * scramble this.\n *\n * This is a part of a tool meant for our users to manage their commercial\n * licenses for removal of amCharts branding from charts.\n *\n * The only legit way to do so is to purchase a commercial license for amCharts:\n * https://www.amcharts.com/online-store/\n *\n * Removing or altering this code, or disabling amCharts branding in any other\n * way is against the license and thus illegal.\n */\n\tprotected _hasLicense(): boolean {\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5C.{5,}/i)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Root.js","sourceRoot":"","sources":["../../../../src/.internal/core/Root.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IAnimation } from \"./util/Animation\";\nimport type { Entity } from \"./util/Entity\";\nimport type { Sprite } from \"./render/Sprite\";\nimport type { Text } from \"./render/Text\";\nimport type { Theme } from \"./Theme\";\nimport type { IPoint } from \"./util/IPoint\";\nimport type { IRenderer } from \"./render/backend/Renderer\";\n\nimport { Container } from \"./render/Container\";\nimport { HorizontalLayout } from \"./render/HorizontalLayout\";\nimport { VerticalLayout } from \"./render/VerticalLayout\";\nimport { GridLayout } from \"./render/GridLayout\";\nimport { IDisposer, Disposer } from \"./util/Disposer\";\nimport { ResizeSensor } from \"./util/ResizeSensor\";\nimport { InterfaceColors } from \"./util/InterfaceColors\";\nimport { Graphics } from \"./render/Graphics\";\nimport { Rectangle } from \"./render/Rectangle\";\nimport { Tooltip } from \"./render/Tooltip\";\nimport { NumberFormatter } from \"./util/NumberFormatter\";\nimport { DateFormatter } from \"./util/DateFormatter\";\nimport { DurationFormatter } from \"./util/DurationFormatter\";\nimport { ILocale, Language } from \"./util/Language\";\nimport { Events, EventDispatcher } from \"./util/EventDispatcher\";\nimport { DefaultTheme } from \"../themes/DefaultTheme\";\nimport { CanvasRenderer } from \"./render/backend/CanvasRenderer\";\nimport { p100, percent } from \"./util/Percent\";\nimport { color } from \"./util/Color\";\nimport { populateString } from \"./util/PopulateString\";\nimport { registry } from \"./Registry\";\n\nimport * as $order from \"./util/Order\";\nimport * as $array from \"./util/Array\";\nimport * as $object from \"./util/Object\";\nimport * as $utils from \"./util/Utils\";\n\nimport en from \"../../locales/en\";\n\n\n/**\n * @ignore\n */\ninterface IParent extends Entity {\n\t_prepareChildren(): void;\n\t_updateChildren(): void;\n}\n\ninterface IBounds extends Entity {\n\tdepth(): number;\n\t_updateBounds(): void;\n}\n\n\nexport interface IRootEvents {\n\tframestarted: {\n\t\ttimestamp: number;\n\t};\n\tframeended: {\n\t\ttimestamp: number;\n\t};\n}\n\n\n// TODO implement Disposer\n/**\n * Root element of the chart.\n *\n * @see {@link https://www.amcharts.com/docs/v5/getting-started/#Root_element} for more info\n */\nexport class Root implements IDisposer {\n\n\t/**\n\t * A reference to original chart container (div element).\n\t */\n\tpublic dom: HTMLElement;\n\tpublic _inner: HTMLElement;\n\n\tprotected _isDirty: boolean = false;\n\tprotected _isDirtyParents: boolean = false;\n\tprotected _dirty: { [id: number]: Entity } = {};\n\tprotected _dirtyParents: { [id: number]: IParent } = {};\n\tprotected _dirtyBounds: { [id: number]: IBounds } = {};\n\tprotected _dirtyPositions: { [id: number]: Sprite } = {};\n\n\tprotected _ticker: ((currentTime: number) => void) | null = null;\n\tprotected _tickers: Array<(currentTime: number) => void> = [];\n\n\t/**\n\t * Root's event dispatcher.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/} for more info\n\t */\n\tpublic events: EventDispatcher<Events<this, IRootEvents>> = new EventDispatcher();\n\n\t/**\n\t * @todo needs description\n\t */\n\tpublic animationTime: number | null = null;\n\n\tprivate _animations: Array<IAnimation> = [];\n\n\tpublic _renderer: IRenderer = new CanvasRenderer();\n\n\tpublic _rootContainer!: Container;\n\n\t/**\n\t * Main content container.\n\t */\n\tpublic container!: Container;\n\n\t/**\n\t * A [[Container]] used to display tooltips in.\n\t */\n\tpublic tooltipContainer!: Container\n\n\tpublic _tooltip!: Tooltip;\n\n\t// Locale-related\n\n\t/**\n\t * @ignore\n\t */\n\tpublic language: Language = Language.new(this, {});\n\n\t/**\n\t * Locale used by the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/locales/}\n\t */\n\tpublic locale: ILocale = en;\n\n\t// Date-time related\n\n\t/**\n\t * Use UTC when formatting date/time.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/#UTC_and_time_zones} for more info\n\t */\n\tpublic utc: boolean = false;\n\n\t/**\n\t * Use specific time zone when formatting date/time.\n\t *\n\t * @ignore timezones are not yet supported\n\t */\n\tpublic timezone: string | null = null;\n\n\t/**\n\t * Number formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/} for more info\n\t */\n\tpublic numberFormatter: NumberFormatter = NumberFormatter.new(this, {});\n\n\t/**\n\t * Date/time formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic dateFormatter: DateFormatter = DateFormatter.new(this, {});\n\n\t/**\n\t * Duration formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic durationFormatter: DurationFormatter = DurationFormatter.new(this, {});\n\n\n\t// Accessibility\n\n\t/**\n\t * Global tab index for using for the whole chart\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t */\n\tpublic tabindex: number = 0;\n\n\t//@todo maybe make this better\n\tprotected _tabindexes: Sprite[] = [];\n\n\tprotected _focusElementDirty: boolean = false;\n\tprotected _focusElementContainer: HTMLDivElement | undefined;\n\tprotected _focusedSprite: Sprite | undefined;\n\tprotected _keyboardDragPoint: IPoint | undefined;\n\tprotected _tooltipElementContainer: HTMLDivElement | undefined;\n\tprotected _readerAlertElement: HTMLDivElement | undefined;\n\n\tpublic _logo?: Container;\n\n\t/**\n\t * Used for dynamically-created CSS and JavaScript with strict source policies.\n\t */\n\tpublic nonce?: string;\n\n\t/**\n\t * Special color set to be used for various controls.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Interface_colors} for more info\n\t */\n\tpublic interfaceColors: InterfaceColors;\n\n\t/**\n\t * An instance of vertical layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic verticalLayout: VerticalLayout = VerticalLayout.new(this, {});\n\n\t/**\n\t * An instance of horizontal layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default HorizontalLayout.new()\n\t */\n\tpublic horizontalLayout: VerticalLayout = HorizontalLayout.new(this, {});\n\n\t/**\n\t * An instance of grid layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic gridLayout: VerticalLayout = GridLayout.new(this, {});\n\n\t/**\n\t * Indicates whether chart should resized automatically when parent container\n\t * width and/or height changes.\n\t *\n\t * If disabled (`autoResize = false`) you can make the chart resize manually\n\t * by calling root element's `resize()` method.\n\t */\n\tpublic autoResize: boolean = true;\n\n\tprotected _isDisposed: boolean = false;\n\tprotected _disposers: Array<IDisposer> = [];\n\n\tprotected _resizeSensorDisposer?: IDisposer;\n\n\tpublic _tooltips: Array<Tooltip> = [];\n\n\tprotected constructor(id: string | HTMLElement, isReal: boolean) {\n\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\t$array.each(registry.rootElements, (root) => {\n\t\t\tif (root.dom === dom) {\n\t\t\t\tthrow new Error(\"You cannot have multiple Roots on the same DOM node\");\n\t\t\t}\n\t\t});\n\n\t\tthis.interfaceColors = InterfaceColors.new(this, {});\n\n\t\tif (dom === null) {\n\t\t\tthrow new Error(\"Could not find HTML element with id `\" + id + \"`\");\n\t\t}\n\n\t\tthis.dom = dom;\n\n\t\tlet inner: HTMLDivElement = document.createElement(\"div\");\n\t\tinner.style.position = \"relative\";\n\t\tdom.appendChild(inner);\n\n\t\tthis._inner = inner;\n\n\t\tregistry.rootElements.push(this);\n\t}\n\n\tpublic static new(id: string | HTMLElement): Root {\n\t\tconst root = new Root(id, true);\n\t\troot._init();\n\t\treturn root;\n\t}\n\n\tpublic moveDOM(id: string | HTMLElement): void {\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\tif (dom) {\n\t\t\twhile (this.dom.childNodes.length > 0) {\n\t\t\t\tdom.appendChild(this.dom.childNodes[0]);\n\t\t\t}\n\t\t\tthis.dom = dom;\n\t\t\tthis._initResizeSensor();\n\t\t\tthis.resize();\n\t\t}\n\n\t}\n\n\n\tprotected _handleLogo(): void {\n\t\tif (this._logo) {\n\t\t\tif (this._rootContainer.getPrivate(\"width\", 0) <= 150 || this._rootContainer.getPrivate(\"height\", 0) <= 60) {\n\t\t\t\tthis._logo.hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._logo.show();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _showBranding(): void {\n\t\tif (!this._logo) {\n\t\t\tconst logo = this.tooltipContainer.children.push(Container.new(this, {\n\t\t\t\tinteractive: true,\n\t\t\t\tinteractiveChildren: false,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tsetStateOnChildren: true,\n\t\t\t\tpaddingTop: 9,\n\t\t\t\tpaddingRight: 9,\n\t\t\t\tpaddingBottom: 9,\n\t\t\t\tpaddingLeft: 9,\n\t\t\t\tscale: .6,\n\t\t\t\ty: percent(100),\n\t\t\t\tcenterY: p100,\n\t\t\t\ttooltipText: \"Created using amCharts 5\",\n\t\t\t\ttooltipX: p100,\n\t\t\t\tcursorOverStyle: \"pointer\",\n\t\t\t\tbackground: Rectangle.new(this, {\n\t\t\t\t\tfill: color(0x474758),\n\t\t\t\t\tfillOpacity: 0,\n\t\t\t\t\ttooltipY: 5\n\t\t\t\t})\n\t\t\t}));\n\n\t\t\tconst tooltip = Tooltip.new(this, {\n\t\t\t\tpointerOrientation: \"horizontal\",\n\t\t\t\tpaddingTop: 4,\n\t\t\t\tpaddingRight: 7,\n\t\t\t\tpaddingBottom: 4,\n\t\t\t\tpaddingLeft: 7\n\t\t\t});\n\t\t\ttooltip.label.setAll({\n\t\t\t\tfontSize: 12\n\t\t\t});\n\t\t\ttooltip.get(\"background\")!.setAll({\n\t\t\t\tfill: this.interfaceColors.get(\"background\"),\n\t\t\t\tstroke: this.interfaceColors.get(\"grid\"),\n\t\t\t\tstrokeOpacity: 0.3\n\t\t\t})\n\t\t\tlogo.set(\"tooltip\", tooltip);\n\n\t\t\tlogo.events.on(\"click\", () => {\n\t\t\t\twindow.open(\"https://www.amcharts.com/\", \"_blank\");\n\t\t\t});\n\n\t\t\tlogo.states.create(\"hover\", {});\n\n\t\t\tconst m = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0xcccccc),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M5 25 L13 25h13.6c3.4 0 6 0 10.3-4.3s5.2-12 8.6-12c3.4 0 4.3 8.6 7.7 8.6M83.4 25H79.8c-3.4 0-6 0-10.3-4.3s-5.2-12-8.6-12-4.3 8.6-7.7 8.6\"\n\t\t\t}));\n\n\t\t\tm.states.create(\"hover\", { stroke: color(0x3CABFF) });\n\n\t\t\tconst a = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0x888888),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M83.4 25h-31C37 25 39.5 4.4 28.4 4.4S18.9 24.2 4.3 25H0\"\n\t\t\t}));\n\n\t\t\ta.states.create(\"hover\", { stroke: color(0x474758) });\n\n\t\t\t//logo.set(\"tooltip\", this._tooltip);\n\t\t\t//logo.setPrivate(\"tooltipTarget\", logo.get(\"background\"));\n\t\t\tthis._logo = logo;\n\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprotected _init(): void {\n\t\tconst renderer = this._renderer;\n\t\tconst rootContainer = Container.new(this, { visible: true, width: this.dom.clientWidth, height: this.dom.clientHeight });\n\t\tthis._rootContainer = rootContainer;\n\t\tthis._rootContainer._defaultThemes.push(DefaultTheme.new(this));\n\n\t\tconst container = rootContainer.children.push(Container.new(this, { visible: true, width: p100, height: p100 }));\n\t\tthis.container = container;\n\n\t\trenderer.resize(this.dom.clientWidth, this.dom.clientHeight);\n\n\t\t//@todo: better appendChild - refer\n\t\tthis._inner.appendChild(renderer.view);\n\n\t\t// TODO: TMP TMP TMP for testing only, remove\n\t\t//document.body.appendChild((<any>renderer)._ghostView);\n\n\t\tthis._initResizeSensor();\n\n\t\t// Create element which is used to make announcements to screen reader\n\t\tconst readerAlertElement = document.createElement(\"div\");\n\t\treaderAlertElement.setAttribute(\"role\", \"alert\");\n\t\treaderAlertElement.style.zIndex = \"-100000\";\n\t\treaderAlertElement.style.opacity = \"0\";\n\t\treaderAlertElement.style.position = \"absolute\";\n\t\treaderAlertElement.style.top = \"0\";\n\t\tthis._readerAlertElement = readerAlertElement;\n\t\tthis._inner.appendChild(this._readerAlertElement);\n\n\t\tconst focusElementContainer = document.createElement(\"div\");\n\t\tfocusElementContainer.style.position = \"absolute\";\n\t\tfocusElementContainer.style.pointerEvents = \"none\";\n\t\tfocusElementContainer.style.top = \"0px\";\n\t\tfocusElementContainer.style.left = \"0px\";\n\t\tfocusElementContainer.style.overflow = \"hidden\";\n\t\tfocusElementContainer.style.width = this.dom.clientWidth + \"px\";\n\t\tfocusElementContainer.style.height = this.dom.clientHeight + \"px\";\n\t\t$utils.setInteractive(focusElementContainer, false);\n\t\tthis._focusElementContainer = focusElementContainer;\n\t\tthis._inner.appendChild(this._focusElementContainer);\n\n\t\tthis._tooltipElementContainer = document.createElement(\"div\");\n\t\tthis._inner.appendChild(this._tooltipElementContainer);\n\n\t\t// Add keyboard events for accessibility, e.g. simulating drag with arrow\n\t\t// keys and click with ENTER\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\tif (focusedSprite) {\n\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t// ESC pressed - lose current focus\n\t\t\t\t\t\t$utils.blur();\n\t\t\t\t\t\tthis._focusedSprite = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tlet dragOffsetX = 0;\n\t\t\t\t\tlet dragOffsetY = 0;\n\t\t\t\t\t// TODO: figure out if using bogus MouseEvent is fine, or it will\n\t\t\t\t\t// fail on some platforms\n\t\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"click\"));\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"click\", {\n\t\t\t\t\t\t\t\ttype: \"click\",\n\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\tdragOffsetX = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\tdragOffsetX = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\tdragOffsetY = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tdragOffsetY = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragOffsetX != 0 || dragOffsetY != 0) {\n\t\t\t\t\t\tev.preventDefault();\n\n\t\t\t\t\t\tif (!focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t// Start dragging\n\t\t\t\t\t\t\tthis._keyboardDragPoint = {\n\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\ty: 0\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"mousedown\", {\n\t\t\t\t\t\t\t\tclientX: 0,\n\t\t\t\t\t\t\t\tclientY: 0\n\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"pointerdown\")) {\n\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"pointerdown\", {\n\t\t\t\t\t\t\t\t\ttype: \"pointerdown\",\n\t\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Move focus marker\n\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Move incrementally\n\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\tdragPoint.x += dragOffsetX;\n\t\t\t\t\t\tdragPoint.y += dragOffsetY;\n\t\t\t\t\t\tconst moveEvent = renderer.getEvent(new MouseEvent(\"mousemove\", {\n\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t}), false);\n\n\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointermove\")) {\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointermove\", {\n\t\t\t\t\t\t\t\ttype: \"globalpointermove\",\n\t\t\t\t\t\t\t\toriginalEvent: moveEvent.event,\n\t\t\t\t\t\t\t\tpoint: moveEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\tdocument.addEventListener(\"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\tif (this._focusedSprite) {\n\t\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\t\tconst keyCode = ev.keyCode;\n\t\t\t\t\tswitch (keyCode) {\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tif (focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t\t// Simulate drag stop\n\t\t\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\t\t\tconst upEvent = renderer.getEvent(new MouseEvent(\"mouseup\", {\n\t\t\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointerup\")) {\n\t\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointerup\", {\n\t\t\t\t\t\t\t\t\t\ttype: \"globalpointerup\",\n\t\t\t\t\t\t\t\t\t\toriginalEvent: upEvent.event,\n\t\t\t\t\t\t\t\t\t\tpoint: upEvent.point,\n\t\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t\t\tthis._keyboardDragPoint = undefined;\n\t\t\t\t\t\t\t\t// @todo dispatch mouseup event instead of calling dragStop?\n\t\t\t\t\t\t\t\t// this._dispatchEvent(\"globalpointerup\", target, upEvent);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(focusedSprite.get(\"focusableGroup\")) {\n\t\t\t\t\t\t\t\t// Find next item in focusable group\n\t\t\t\t\t\t\t\tconst group = focusedSprite.get(\"focusableGroup\");\n\t\t\t\t\t\t\t\tconst items = this._tabindexes.filter(item => item.get(\"focusableGroup\") == group);\n\t\t\t\t\t\t\t\tlet index = items.indexOf(focusedSprite);\n\t\t\t\t\t\t\t\tconst lastIndex = items.length - 1;\n\t\t\t\t\t\t\t\tindex += (keyCode == 39 || keyCode == 40) ? 1 : -1;\n\t\t\t\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\t\t\t\tindex = lastIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (index > lastIndex) {\n\t\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$utils.focus(items[index].getPrivate(\"focusElement\")!);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._startTicker();\n\t\tthis.setThemes([]);\n\n\t\tthis._addTooltip();\n\n\t\tif (!this._hasLicense()) {\n\t\t\tthis._showBranding();\n\t\t}\n\t}\n\n\tprivate _initResizeSensor(): void {\n\t\tif (this._resizeSensorDisposer) {\n\t\t\tthis._resizeSensorDisposer.dispose();\n\t\t}\n\t\tthis._resizeSensorDisposer = new ResizeSensor(this.dom, () => {\n\t\t\tif (this.autoResize) {\n\t\t\t\tthis.resize();\n\t\t\t}\n\t\t});\n\t\tthis._disposers.push(this._resizeSensorDisposer);\n\t}\n\n\t/**\n\t * If automatic resizing of char is disabled (`root.autoResize = false`), it\n\t * can be resized manually by calling this method.\n\t */\n\tpublic resize(): void {\n\t\tconst dom = this.dom;\n\t\tconst w = dom.clientWidth;\n\t\tconst h = dom.clientHeight;\n\t\tif (w > 0 && h > 0) {\n\t\t\tconst focusElementContainer = this._focusElementContainer!;\n\n\t\t\tfocusElementContainer.style.width = w + \"px\";\n\t\t\tfocusElementContainer.style.height = h + \"px\";\n\n\t\t\tthis._renderer.resize(w, h);\n\n\t\t\tconst rootContainer = this._rootContainer;\n\n\t\t\trootContainer.setPrivate(\"width\", w);\n\t\t\trootContainer.setPrivate(\"height\", h);\n\t\t\tthis._render();\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprivate _render() {\n\t\tthis._renderer.render(this._rootContainer._display);\n\n\t\tif (this._focusElementDirty) {\n\t\t\tthis._updateCurrentFocus();\n\t\t\tthis._focusElementDirty = false;\n\t\t}\n\t}\n\n\tprivate _runTickers(currentTime: number) {\n\t\t$array.each(this._tickers, (f) => {\n\t\t\tf(currentTime);\n\t\t});\n\t}\n\n\tprivate _runAnimations(currentTime: number) {\n\t\t$array.keepIf(this._animations, (animation) => {\n\t\t\treturn !animation._runAnimation(currentTime);\n\t\t});\n\t}\n\n\tprivate _runDirties() {\n\t\t//console.log(\"tick **************************************************************\");\n\t\tlet allParents: { [id: number]: IParent } = {};\n\n\t\twhile (this._isDirtyParents) {\n\t\t\t// This must be before calling _prepareChildren\n\t\t\tthis._isDirtyParents = false;\n\n\t\t\t$object.keys(this._dirtyParents).forEach((key) => {\n\t\t\t\tconst parent = this._dirtyParents[key];\n\n\t\t\t\tdelete this._dirtyParents[key];\n\n\t\t\t\tif (!parent.isDisposed()) {\n\t\t\t\t\tallParents[parent.uid] = parent;\n\t\t\t\t\tparent._prepareChildren();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t$object.keys(allParents).forEach((key) => {\n\t\t\tallParents[key]._updateChildren();\n\t\t});\n\n\t\tconst objects: Array<Entity> = [];\n\n\t\t//\t\tconsole.log(\"_beforeChanged\")\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tconst entity = this._dirty[key];\n\n\t\t\tif (entity.isDisposed()) {\n\t\t\t\tdelete this._dirty[entity.uid];\n\n\t\t\t} else {\n\t\t\t\tobjects.push(entity);\n\t\t\t\tentity._beforeChanged();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_changed\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._changed();\n\t\t\tdelete this._dirty[entity.uid];\n\t\t\tentity._clearDirty();\n\t\t});\n\n\t\tthis._isDirty = false;\n\n\t\tconst depths: { [id: number]: number } = {};\n\t\tconst bounds: Array<IBounds> = [];\n\n\t\t$object.keys(this._dirtyBounds).forEach((key) => {\n\t\t\tconst entity = this._dirtyBounds[key];\n\n\t\t\tdelete this._dirtyBounds[key];\n\n\t\t\tif (!entity.isDisposed()) {\n\t\t\t\tdepths[entity.uid] = entity.depth();\n\t\t\t\tbounds.push(entity);\n\t\t\t}\n\t\t});\n\n\t\t// High depth -> low depth\n\t\tbounds.sort((x, y) => {\n\t\t\treturn $order.compare(depths[y.uid], depths[x.uid]);\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updateBounds\")\n\t\tbounds.forEach((entity) => {\n\t\t\tentity._updateBounds();\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updatePosition\")\n\t\tconst dirtyPositions = this._dirtyPositions;\n\t\t$object.keys(dirtyPositions).forEach((key) => {\n\t\t\tconst sprite = dirtyPositions[key];\n\n\t\t\tdelete dirtyPositions[key];\n\n\t\t\tif (!sprite.isDisposed()) {\n\t\t\t\tsprite._updatePosition();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_afterChanged\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._afterChanged();\n\t\t});\n\n\t}\n\n\tprivate _runTicker(currentTime: number) {\n\t\tif (!this.isDisposed()) {\n\t\t\tthis.animationTime = currentTime;\n\n\t\t\tif (this.events.isEnabled(\"framestarted\")) {\n\t\t\t\tthis.events.dispatch(\"framestarted\", {\n\t\t\t\t\ttype: \"framestarted\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._runTickers(currentTime);\n\t\t\tthis._runAnimations(currentTime);\n\t\t\tthis._runDirties();\n\t\t\tthis._render();\n\n\t\t\tif (this.events.isEnabled(\"frameended\")) {\n\t\t\t\tthis.events.dispatch(\"frameended\", {\n\t\t\t\t\ttype: \"frameended\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// No more work to do\n\t\t\tif (this._tickers.length === 0 &&\n\t\t\t\tthis._animations.length === 0 &&\n\t\t\t\t!this._isDirty) {\n\n\t\t\t\tthis._ticker = null;\n\t\t\t\tthis.animationTime = null;\n\n\t\t\t} else {\n\t\t\t\trequestAnimationFrame(this._ticker!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _startTicker() {\n\t\tif (this._ticker === null) {\n\t\t\tthis.animationTime = null;\n\n\t\t\tthis._ticker = (currentTime) => {\n\t\t\t\tthis._runTicker(currentTime);\n\t\t\t};\n\n\t\t\trequestAnimationFrame(this._ticker);\n\t\t}\n\t}\n\n\tpublic _addDirtyEntity(entity: Entity) {\n\t\tif (this._dirty[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirty[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyParent(parent: IParent) {\n\t\tif (this._dirtyParents[parent.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._isDirtyParents = true;\n\t\t\tthis._dirtyParents[parent.uid] = parent;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyBounds(entity: IBounds) {\n\t\tif (this._dirtyBounds[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyBounds[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyPosition(sprite: Sprite) {\n\t\tif (this._dirtyPositions[sprite.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyPositions[sprite.uid] = sprite;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addAnimation(animation: IAnimation) {\n\t\t// TODO use numeric id instead\n\t\tif (this._animations.indexOf(animation) === -1) {\n\t\t\tthis._animations.push(animation);\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic eachFrame(f: (currentTime: number) => void): IDisposer {\n\t\tthis._tickers.push(f);\n\t\tthis._startTicker();\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(this._tickers, f);\n\t\t});\n\t}\n\n\t/**\n\t * Returns width of the target container, in pixels.\n\t *\n\t * @return Width\n\t */\n\tpublic width(): number {\n\t\treturn this.dom.clientWidth;\n\t}\n\n\t/**\n\t * Returns height of the target container, in pixels.\n\t *\n\t * @return Height\n\t */\n\tpublic height(): number {\n\t\treturn this.dom.clientHeight;\n\t}\n\n\t/**\n\t * Disposes root and all the content in it.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._isDisposed) {\n\t\t\tthis._isDisposed = true;\n\n\t\t\tthis._rootContainer.dispose();\n\t\t\tthis._renderer.dispose();\n\t\t\tthis.horizontalLayout.dispose();\n\t\t\tthis.verticalLayout.dispose();\n\t\t\tthis.interfaceColors.dispose();\n\n\t\t\t$array.each(this._disposers, (x) => {\n\t\t\t\tx.dispose();\n\t\t\t});\n\n\t\t\tif (this._inner) {\n\t\t\t\t$utils.removeElement(this._inner);\n\t\t\t}\n\n\t\t\t$array.remove(registry.rootElements, this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if root element is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._isDisposed;\n\t}\n\n\t/**\n\t * Triggers screen reader read out a message.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t * @param text Alert text\n\t */\n\tpublic readerAlert(text: string): void {\n\t\tthis._readerAlertElement!.innerHTML = text;\n\t}\n\n\t/**\n\t * Sets themes to be used for the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t * @param themes A list of themes\n\t */\n\tpublic setThemes(themes: Array<Theme>): void {\n\t\tthis._rootContainer.set(\"themes\", themes);\n\n\t\t// otherwise new themes are not applied\n\t\tconst tooltipContainer = this.tooltipContainer;\n\t\tif (tooltipContainer) {\n\t\t\ttooltipContainer._applyThemes();\n\t\t}\n\n\t\t// @todo review this\n\t\tconst interfaceColors = this.interfaceColors;\n\t\tif (interfaceColors) {\n\t\t\tinterfaceColors._applyThemes();\n\t\t}\n\t}\n\n\tprotected _addTooltip() {\n\t\tif (!this.tooltipContainer) {\n\t\t\tconst tooltipContainer = this._rootContainer.children.push(Container.new(this, { position: \"absolute\", isMeasured: false, width: p100, height: p100, layer: 100 }));\n\t\t\tthis.tooltipContainer = tooltipContainer;\n\n\t\t\tconst tooltip = Tooltip.new(this, {});\n\t\t\tthis.container.set(\"tooltip\", tooltip);\n\t\t\ttooltip.hide(0);\n\t\t\tthis._tooltip = tooltip;\n\t\t}\n\t}\n\n\t/**\n\t * Accesibility\n\t */\n\n\tpublic _registerTabindexOrder(target: Sprite): void {\n\t\tif (target.get(\"focusable\")) {\n\t\t\t$array.pushOne(this._tabindexes, target);\n\t\t}\n\t\telse {\n\t\t\t$array.remove(this._tabindexes, target);\n\t\t}\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _unregisterTabindexOrder(target: Sprite): void {\n\t\t$array.remove(this._tabindexes, target);\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _invalidateTabindexes(): void {\n\n\t\tthis._tabindexes.sort((a: Sprite, b: Sprite) => {\n\t\t\tconst aindex = a.get(\"tabindexOrder\", 0);\n\t\t\tconst bindex = b.get(\"tabindexOrder\", 0);\n\t\t\tif (aindex == bindex) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\telse if (aindex > bindex) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t});\n\n\t\tconst groups: Array<string | number> = [];\n\t\t$array.each(this._tabindexes, (item, index) => {\n\t\t\tif (!item.getPrivate(\"focusElement\")) {\n\t\t\t\tthis._makeFocusElement(index, item);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._moveFocusElement(index, item);\n\t\t\t}\n\t\t\tconst group = item.get(\"focusableGroup\");\n\t\t\tif (group) {\n\t\t\t\tif (groups.indexOf(group) !== -1) {\n\t\t\t\t\t// Non-first element in the group, make it not directly focusable\n\t\t\t\t\titem.getPrivate(\"focusElement\")!.setAttribute(\"tabindex\", \"-1\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgroups.push(group);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t}\n\n\tpublic _updateCurrentFocus(): void {\n\t\tif (this._focusedSprite) {\n\t\t\tthis._decorateFocusElement(this._focusedSprite);\n\t\t\tthis._positionFocusElement(this._focusedSprite);\n\t\t}\n\t}\n\n\tpublic _decorateFocusElement(target: Sprite, focusElement?: HTMLDivElement): void {\n\n\t\t// Decorate with proper accessibility attributes\n\t\tif (!focusElement) {\n\t\t\tfocusElement = target.getPrivate(\"focusElement\")!;\n\t\t}\n\n\t\tif (!focusElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.get(\"visible\") && target.get(\"role\") != \"tooltip\" && !target.isHidden()) {\n\t\t\tif (focusElement.getAttribute(\"tabindex\") != \"-1\") {\n\t\t\t\tfocusElement.setAttribute(\"tabindex\", \"\" + this.tabindex);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"tabindex\")\n\t\t}\n\n\t\tconst role = target.get(\"role\");\n\t\tif (role) {\n\t\t\tfocusElement.setAttribute(\"role\", role);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"role\");\n\t\t}\n\n\t\tconst ariaLabel = target.get(\"ariaLabel\");\n\t\tif (ariaLabel) {\n\t\t\tconst label = populateString(target, ariaLabel);\n\t\t\tfocusElement.setAttribute(\"aria-label\", label);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-label\");\n\t\t}\n\n\t\tconst ariaLive = target.get(\"ariaLive\");\n\t\tif (ariaLive) {\n\t\t\tfocusElement.setAttribute(\"aria-live\", ariaLive);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-live\");\n\t\t}\n\n\t\tconst ariaChecked = target.get(\"ariaChecked\");\n\t\tif (ariaChecked != null) {\n\t\t\tfocusElement.setAttribute(\"aria-checked\", ariaChecked ? \"true\" : \"false\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-checked\");\n\t\t}\n\n\t\tif (target.get(\"ariaHidden\")) {\n\t\t\tfocusElement.setAttribute(\"aria-hidden\", \"hidden\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-hidden\");\n\t\t}\n\n\t\tconst ariaOrientation = target.get(\"ariaOrientation\");\n\t\tif (ariaOrientation) {\n\t\t\tfocusElement.setAttribute(\"aria-orientation\", ariaOrientation);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-orientation\");\n\t\t}\n\n\t\tconst ariaValueNow = target.get(\"ariaValueNow\");\n\t\tif (ariaValueNow) {\n\t\t\tfocusElement.setAttribute(\"aria-valuenow\", ariaValueNow);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuenow\");\n\t\t}\n\n\t\tconst ariaValueText = target.get(\"ariaValueText\");\n\t\tif (ariaValueText) {\n\t\t\tfocusElement.setAttribute(\"aria-valuetext\", ariaValueText);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuetext\");\n\t\t}\n\t}\n\n\tpublic _makeFocusElement(index: number, target: Sprite): void {\n\n\t\tif (target.getPrivate(\"focusElement\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Init\n\t\tconst focusElement = document.createElement(\"div\");\n\t\tif (target.get(\"role\") != \"tooltip\") {\n\t\t\tfocusElement.tabIndex = this.tabindex;\n\t\t}\n\t\tfocusElement.style.position = \"absolute\";\n\t\t$utils.setInteractive(focusElement, false);\n\n\t\ttarget.setPrivate(\"focusElement\", focusElement);\n\n\t\tthis._decorateFocusElement(target);\n\n\t\tfocusElement.addEventListener(\"focus\", (ev: FocusEvent) => {\n\t\t\tthis._handleFocus(ev, index);\n\t\t});\n\n\t\tfocusElement.addEventListener(\"blur\", (ev: FocusEvent) => {\n\t\t\tthis._handleBlur(ev, index);\n\t\t});\n\n\t\tthis._moveFocusElement(index, target);\n\n\t}\n\n\tpublic _removeFocusElement(target: Sprite): void {\n\n\t\t// Init\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tcontainer.removeChild(focusElement);\n\n\t}\n\n\tprotected _moveFocusElement(index: number, target: Sprite): void {\n\n\t\t// Get container\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\n\t\tif (focusElement === this._focusElementContainer!.children[index]) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tconst next = this._focusElementContainer!.children[index + 1];\n\t\tif (next) {\n\t\t\tcontainer.insertBefore(focusElement, next);\n\t\t}\n\t\telse {\n\t\t\tcontainer.append(focusElement);\n\t\t}\n\t}\n\n\tprotected _positionFocusElement(target: Sprite): void {\n\t\tconst bounds = target.globalBounds();\n\n\t\tconst width = bounds.right == bounds.left ? target.width() : bounds.right - bounds.left;\n\t\tconst height = bounds.top == bounds.bottom ? target.height() : bounds.bottom - bounds.top;\n\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tfocusElement.style.top = (bounds.top - 2) + \"px\";\n\t\tfocusElement.style.left = (bounds.left - 2) + \"px\";\n\t\tfocusElement.style.width = (width + 4) + \"px\";\n\t\tfocusElement.style.height = (height + 4) + \"px\";\n\n\t}\n\n\tprotected _handleFocus(ev: FocusEvent, index: number): void {\n\t\t// Get element\n\t\tconst focused = this._tabindexes[index];\n\n\t\t// Size and position\n\t\tthis._positionFocusElement(focused);\n\t\t//this._decorateFocusElement(focused);\n\n\t\tthis._focusedSprite = focused;\n\n\t\tif (focused.events.isEnabled(\"focus\")) {\n\t\t\tfocused.events.dispatch(\"focus\", {\n\t\t\t\ttype: \"focus\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _handleBlur(ev: FocusEvent, _index: number): void {\n\t\tconst focused = this._focusedSprite;\n\t\tif (focused && focused.events.isEnabled(\"blur\")) {\n\t\t\tfocused.events.dispatch(\"blur\", {\n\t\t\t\ttype: \"blur\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t\tthis._focusedSprite = undefined;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateTooltip(target: Text): void {\n\t\tconst text = target._getText();\n\t\tlet tooltipElement = target.getPrivate(\"tooltipElement\");\n\t\tif (target.get(\"role\") == \"tooltip\" && text != \"\") {\n\t\t\tif (!tooltipElement) {\n\t\t\t\ttooltipElement = this._makeTooltipElement(target);\n\t\t\t}\n\t\t\tif (tooltipElement.innerHTML != text) {\n\t\t\t\ttooltipElement.innerHTML = text!;\n\t\t\t}\n\t\t}\n\t\telse if (tooltipElement) {\n\t\t\ttooltipElement.remove();\n\t\t\ttarget.removePrivate(\"tooltipElement\");\n\t\t}\n\t}\n\n\tpublic _makeTooltipElement(target: Text): HTMLDivElement {\n\t\tconst container = this._tooltipElementContainer!;\n\t\tconst tooltipElement = document.createElement(\"div\");\n\t\ttooltipElement.style.position = \"absolute\";\n\t\ttooltipElement.style.opacity = \"0.0000001\";\n\n\t\t$utils.setInteractive(tooltipElement, false);\n\n\t\tthis._decorateFocusElement(target, tooltipElement);\n\t\tcontainer.append(tooltipElement);\n\t\ttarget.setPrivate(\"tooltipElement\", tooltipElement);\n\t\treturn tooltipElement;\n\t}\n\n\tpublic _invalidateAccessibility(target: Sprite): void {\n\t\tthis._focusElementDirty = true;\n\t\tconst focusElement = target.getPrivate(\"focusElement\");\n\t\tif (target.get(\"focusable\")) {\n\t\t\tif (focusElement) {\n\t\t\t\tthis._decorateFocusElement(target);\n\t\t\t\tthis._positionFocusElement(target);\n\t\t\t}\n\t\t\t// else {\n\t\t\t// \tthis._renderer._makeFocusElement(0, this);\n\t\t\t// }\n\t\t}\n\t\telse if (focusElement) {\n\t\t\tthis._removeFocusElement(target);\n\t\t}\n\t\t//this.updateCurrentFocus();\n\t}\n\n\t/**\n\t * Returns `true` if `target` is currently focused.\n\t *\n\t * @param target Target\n\t * @return Focused?\n\t */\n\tpublic focused(target: Sprite): boolean {\n\t\treturn this._focusedSprite === target;\n\t}\n\n\t/**\n\t * Converts document coordinates to coordinates withing root element.\n\t *\n\t * @param point Document point\n\t * @return Root point\n\t */\n\tpublic documentPointToRoot(point: IPoint): IPoint {\n\t\tconst bbox = this.dom.getBoundingClientRect();\n\t\treturn {\n\t\t\tx: point.x - bbox.left,\n\t\t\ty: point.y - bbox.top\n\t\t};\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addDisposer<T extends IDisposer>(disposer: T): T {\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n * To all the clever heads out there. Yes, we did not make any attempts to\n * scramble this.\n *\n * This is a part of a tool meant for our users to manage their commercial\n * licenses for removal of amCharts branding from charts.\n *\n * The only legit way to do so is to purchase a commercial license for amCharts:\n * https://www.amcharts.com/online-store/\n *\n * Removing or altering this code, or disabling amCharts branding in any other\n * way is against the license and thus illegal.\n */\n\tprotected _hasLicense(): boolean {\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5C.{5,}/i)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatLegend.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/HeatLegend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"HeatLegend.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/HeatLegend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAO9C,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAE9D;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;CAEvC;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;CAC5D;AAED;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,SAAS;IAExC;;;;OAIG;IACH,SAAgB,cAAc,EAAE,SAAS,CAAqD;IAE9F;;;;OAIG;IACH,SAAgB,eAAe,EAAE,SAAS,CAAqD;IAE/F;;;;OAIG;IACH,SAAgB,UAAU,EAAE,KAAK,CAAsF;IAEvH;;;;OAIG;IACH,SAAgB,QAAQ,EAAE,KAAK,CAAoF;IAEnH,OAAc,SAAS,EAAE,MAAM,CAAgB;IAC/C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuD;IAE/E,SAAS,EAAE,mBAAmB,CAAC;IAC/B,gBAAgB,EAAE,kBAAkB,CAAC;IAGpD,SAAS,CAAC,SAAS;IAQnB;;OAEG;IACI,UAAU,IAAI,gBAAgB;IAMrC;;;;OAIG;IACH,SAAgB,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAKrD;IAGF;;;;;;;;OAQG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAsCrD,gBAAgB;CAkFvB"}
|
|
@@ -9,6 +9,7 @@ import { Color } from "../../core/util/Color";
|
|
|
9
9
|
import { Tooltip } from "../../core/render/Tooltip";
|
|
10
10
|
import { LinearGradient } from "../../core/render/gradients/LinearGradient";
|
|
11
11
|
import * as $utils from "../../core/util/Utils";
|
|
12
|
+
import * as $type from "../../core/util/Type";
|
|
12
13
|
/**
|
|
13
14
|
* Heat legend.
|
|
14
15
|
*
|
|
@@ -117,7 +118,7 @@ var HeatLegend = /** @class */ (function (_super) {
|
|
|
117
118
|
writable: true,
|
|
118
119
|
value: function (value, text, color) {
|
|
119
120
|
var tooltip = this.getTooltip();
|
|
120
|
-
if (tooltip) {
|
|
121
|
+
if (tooltip && $type.isNumber(value)) {
|
|
121
122
|
var startValue = this.get("startValue", 0);
|
|
122
123
|
var endValue = this.get("endValue", 1);
|
|
123
124
|
var c = (value - startValue) / (endValue - startValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatLegend.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/HeatLegend.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IPoint } from \"../../core/util/IPoint\";\n\nimport { Container, IContainerSettings, IContainerPrivate } from \"./Container\";\nimport { Label } from \"../../core/render/Label\";\nimport { p100 } from \"../../core/util/Percent\";\nimport { RoundedRectangle } from \"../../core/render/RoundedRectangle\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { Color } from \"../../core/util/Color\";\nimport { Tooltip } from \"../../core/render/Tooltip\";\nimport { LinearGradient } from \"../../core/render/gradients/LinearGradient\";\n\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IHeatLegendSettings extends IContainerSettings {\n\n\t/**\n\t * Starting (lowest value) color.\n\t */\n\tstartColor: Color;\n\n\t/**\n\t * Ending (highest value) color.\n\t */\n\tendColor: Color;\n\n\t/**\n\t * Start (lowest) value.\n\t */\n\tstartValue?: number;\n\n\t/**\n\t * End (highest) value.\n\t */\n\tendValue?: number;\n\n\t/**\n\t * Text for start label.\n\t */\n\tstartText?: string;\n\n\t/**\n\t * Text for end label.\n\t */\n\tendText?: string;\n\n\t/**\n\t * Number of steps\n\t *\n\t * @default 1\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/heat-legend/#Gradient_or_steps} for more info\n\t */\n\tstepCount?: number;\n\n\t/**\n\t * Orientation of the heat legend.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/heat-legend/#Orientation} for more info\n\t */\n\torientation: \"horizontal\" | \"vertical\";\n\n}\n\nexport interface IHeatLegendPrivate extends IContainerPrivate {\n}\n\n/**\n * Heat legend.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/heat-legend/} for more info\n */\nexport class HeatLegend extends Container {\n\n\t/**\n\t * A [[Container]] that all labels are placed in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly labelContainer: Container = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * A [[Container]] that all markers are placed in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly markerContainer: Container = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * A start [[Label]].\n\t *\n\t * @default Label.new()\n\t */\n\tpublic readonly startLabel: Label = this.labelContainer.children.push(Label.new(this._root, { themeTags: [\"start\"] }));\n\n\t/**\n\t * An end [[Label]].\n\t *\n\t * @default Label.new()\n\t */\n\tpublic readonly endLabel: Label = this.labelContainer.children.push(Label.new(this._root, { themeTags: [\"end\"] }));\n\n\tpublic static className: string = \"HeatLegend\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([HeatLegend.className]);\n\n\tdeclare public _settings: IHeatLegendSettings;\n\tdeclare public _privateSettings: IHeatLegendPrivate;\n\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"heatlegend\", this._settings.orientation]);\n\t\tsuper._afterNew();\n\t\tthis.set(\"tooltip\", Tooltip.new(this._root, {\n\t\t\tthemeTags: [\"heatlegend\"]\n\t\t}));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeMarker(): RoundedRectangle {\n\t\tconst marker = this.markers.make();\n\t\tmarker.states.create(\"disabled\", {});\n\t\treturn marker;\n\t}\n\n\t/**\n\t * List of rectangle elements used for default legend markers.\n\t *\n\t * @default new ListTemplate<RoundedRectangle>\n\t */\n\tpublic readonly markers: ListTemplate<RoundedRectangle> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => RoundedRectangle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.markers.template.get(\"themeTags\", []), [this.get(\"orientation\"), \"heatlegend\", \"marker\"])\n\t\t}, [this.markers.template])\n\t);\n\n\n\t/**\n\t * Moves and shows tooltip at specific value.\n\t *\n\t * Can also specify optional text to show in tooltip, as well as the color.\n\t *\n\t * @param value Value\n\t * @param text Text\n\t * @param color Color\n\t */\n\tpublic showValue(value: number, text?: string, color?: Color) {\n\t\tconst tooltip = this.getTooltip();\n\t\tif (tooltip) {\n\n\t\t\tconst startValue = this.get(\"startValue\", 0);\n\t\t\tconst endValue = this.get(\"endValue\", 1);\n\n\t\t\tconst c = (value - startValue) / (endValue - startValue);\n\t\t\tconst startColor = this.get(\"startColor\")!;\n\t\t\tconst endColor = this.get(\"endColor\")!;\n\n\t\t\tif (!text) {\n\t\t\t\ttext = this.getNumberFormatter().format(value);\n\t\t\t}\n\n\t\t\tif (!color) {\n\t\t\t\tcolor = Color.interpolate(c, startColor, endColor);\n\t\t\t}\n\n\t\t\ttooltip.label.set(\"text\", text);\n\t\t\tlet p:IPoint;\n\n\t\t\tif (this.get(\"orientation\") == \"vertical\") {\n\t\t\t\tp = this.markerContainer.toGlobal({ x: 0, y: this.innerHeight() * (1 - c) });\n\t\t\t}\n\t\t\telse {\n\t\t\t\tp = this.markerContainer.toGlobal({ x: this.innerWidth() * c, y: 0 });\n\t\t\t}\n\n\t\t\tlet background = tooltip.get(\"background\");\n\t\t\tif (background) {\n\t\t\t\tbackground.set(\"fill\", Color.interpolate(c, startColor, endColor))\n\t\t\t}\n\t\t\ttooltip.set(\"pointTo\", p);\n\t\t\ttooltip.show();\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tconst labelContainer = this.labelContainer;\n\t\tconst orientation = this.get(\"orientation\");\n\t\tconst startLabel = this.startLabel;\n\t\tconst endLabel = this.endLabel;\n\t\tconst tooltip = this.getTooltip();\n\n\t\tif (this.isDirty(\"orientation\")) {\n\t\t\tif (orientation == \"vertical\") {\n\t\t\t\tthis.markerContainer.setAll({ layout: this._root.verticalLayout, height: p100 });\n\t\t\t\tthis.set(\"layout\", this._root.horizontalLayout);\n\t\t\t\tstartLabel.setAll({ y: p100, x: undefined, centerY: p100, centerX: p100 });\n\t\t\t\tendLabel.setAll({ y: 0, x: undefined, centerY: 0, centerX: p100 });\n\t\t\t\tlabelContainer.setAll({ height: p100, width: undefined });\n\t\t\t\tif (tooltip) {\n\t\t\t\t\ttooltip.set(\"pointerOrientation\", \"horizontal\");\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.markerContainer.setAll({ layout: this._root.horizontalLayout, width: p100 });\n\t\t\t\tthis.set(\"layout\", this._root.verticalLayout);\n\t\t\t\tstartLabel.setAll({ x: 0, y: undefined, centerX: 0, centerY: 0 });\n\t\t\t\tendLabel.setAll({ x: p100, y: undefined, centerX: p100, centerY: 0 });\n\t\t\t\tlabelContainer.setAll({ width: p100, height: undefined });\n\t\t\t\tif (tooltip) {\n\t\t\t\t\ttooltip.set(\"pointerOrientation\", \"vertical\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"stepCount\")) {\n\t\t\tconst stepCount = this.get(\"stepCount\", 1);\n\t\t\tconst startColor = this.get(\"startColor\")!;\n\t\t\tconst endColor = this.get(\"endColor\")!;\n\t\t\tthis.markerContainer.children.clear();\n\t\t\tif (stepCount > 1) {\n\t\t\t\tfor (let i = 0; i < stepCount; i++) {\n\t\t\t\t\tconst marker = this.makeMarker();\n\n\t\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\t\tthis.markerContainer.children.moveValue(marker, 0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.markerContainer.children.push(marker);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (startColor && endColor) {\n\t\t\t\t\t\tmarker.set(\"fill\", Color.interpolate(i / stepCount, startColor, endColor));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (stepCount == 1) {\n\t\t\t\tconst marker = this.makeMarker();\n\t\t\t\tthis.markerContainer.children.push(marker);\n\t\t\t\tconst gradient = LinearGradient.new(this._root, { stops: [{ color: startColor }, { color: endColor }] });\n\n\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\tgradient.set(\"rotation\", 90);\n\t\t\t\t\tlet stops = gradient.get(\"stops\");\n\t\t\t\t\tif (stops) {\n\t\t\t\t\t\tstops.reverse();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgradient.set(\"rotation\", 0);\n\t\t\t\t}\n\t\t\t\tif (startColor && endColor) {\n\t\t\t\t\tmarker.set(\"fillGradient\", gradient);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"startText\") || this.isDirty(\"startValue\")) {\n\t\t\tstartLabel.set(\"text\", this.get(\"startText\", this.getNumberFormatter().format(this.get(\"startValue\", 0))));\n\t\t}\n\n\t\tif (this.isDirty(\"endText\") || this.isDirty(\"endValue\")) {\n\t\t\tendLabel.set(\"text\", this.get(\"endText\", this.getNumberFormatter().format(this.get(\"endValue\", 1))))\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HeatLegend.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/HeatLegend.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IPoint } from \"../../core/util/IPoint\";\n\nimport { Container, IContainerSettings, IContainerPrivate } from \"./Container\";\nimport { Label } from \"../../core/render/Label\";\nimport { p100 } from \"../../core/util/Percent\";\nimport { RoundedRectangle } from \"../../core/render/RoundedRectangle\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { Color } from \"../../core/util/Color\";\nimport { Tooltip } from \"../../core/render/Tooltip\";\nimport { LinearGradient } from \"../../core/render/gradients/LinearGradient\";\n\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $type from \"../../core/util/Type\";\n\nexport interface IHeatLegendSettings extends IContainerSettings {\n\n\t/**\n\t * Starting (lowest value) color.\n\t */\n\tstartColor: Color;\n\n\t/**\n\t * Ending (highest value) color.\n\t */\n\tendColor: Color;\n\n\t/**\n\t * Start (lowest) value.\n\t */\n\tstartValue?: number;\n\n\t/**\n\t * End (highest) value.\n\t */\n\tendValue?: number;\n\n\t/**\n\t * Text for start label.\n\t */\n\tstartText?: string;\n\n\t/**\n\t * Text for end label.\n\t */\n\tendText?: string;\n\n\t/**\n\t * Number of steps\n\t *\n\t * @default 1\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/heat-legend/#Gradient_or_steps} for more info\n\t */\n\tstepCount?: number;\n\n\t/**\n\t * Orientation of the heat legend.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/heat-legend/#Orientation} for more info\n\t */\n\torientation: \"horizontal\" | \"vertical\";\n\n}\n\nexport interface IHeatLegendPrivate extends IContainerPrivate {\n}\n\n/**\n * Heat legend.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/heat-legend/} for more info\n */\nexport class HeatLegend extends Container {\n\n\t/**\n\t * A [[Container]] that all labels are placed in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly labelContainer: Container = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * A [[Container]] that all markers are placed in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly markerContainer: Container = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * A start [[Label]].\n\t *\n\t * @default Label.new()\n\t */\n\tpublic readonly startLabel: Label = this.labelContainer.children.push(Label.new(this._root, { themeTags: [\"start\"] }));\n\n\t/**\n\t * An end [[Label]].\n\t *\n\t * @default Label.new()\n\t */\n\tpublic readonly endLabel: Label = this.labelContainer.children.push(Label.new(this._root, { themeTags: [\"end\"] }));\n\n\tpublic static className: string = \"HeatLegend\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([HeatLegend.className]);\n\n\tdeclare public _settings: IHeatLegendSettings;\n\tdeclare public _privateSettings: IHeatLegendPrivate;\n\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"heatlegend\", this._settings.orientation]);\n\t\tsuper._afterNew();\n\t\tthis.set(\"tooltip\", Tooltip.new(this._root, {\n\t\t\tthemeTags: [\"heatlegend\"]\n\t\t}));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeMarker(): RoundedRectangle {\n\t\tconst marker = this.markers.make();\n\t\tmarker.states.create(\"disabled\", {});\n\t\treturn marker;\n\t}\n\n\t/**\n\t * List of rectangle elements used for default legend markers.\n\t *\n\t * @default new ListTemplate<RoundedRectangle>\n\t */\n\tpublic readonly markers: ListTemplate<RoundedRectangle> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => RoundedRectangle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.markers.template.get(\"themeTags\", []), [this.get(\"orientation\"), \"heatlegend\", \"marker\"])\n\t\t}, [this.markers.template])\n\t);\n\n\n\t/**\n\t * Moves and shows tooltip at specific value.\n\t *\n\t * Can also specify optional text to show in tooltip, as well as the color.\n\t *\n\t * @param value Value\n\t * @param text Text\n\t * @param color Color\n\t */\n\tpublic showValue(value: number, text?: string, color?: Color) {\n\t\tconst tooltip = this.getTooltip();\n\t\tif (tooltip && $type.isNumber(value)) {\n\n\t\t\tconst startValue = this.get(\"startValue\", 0);\n\t\t\tconst endValue = this.get(\"endValue\", 1);\n\n\t\t\tconst c = (value - startValue) / (endValue - startValue);\n\t\t\tconst startColor = this.get(\"startColor\")!;\n\t\t\tconst endColor = this.get(\"endColor\")!;\n\n\t\t\tif (!text) {\n\t\t\t\ttext = this.getNumberFormatter().format(value);\n\t\t\t}\n\n\t\t\tif (!color) {\n\t\t\t\tcolor = Color.interpolate(c, startColor, endColor);\n\t\t\t}\n\n\t\t\ttooltip.label.set(\"text\", text);\n\t\t\tlet p:IPoint;\n\n\t\t\tif (this.get(\"orientation\") == \"vertical\") {\n\t\t\t\tp = this.markerContainer.toGlobal({ x: 0, y: this.innerHeight() * (1 - c) });\n\t\t\t}\n\t\t\telse {\n\t\t\t\tp = this.markerContainer.toGlobal({ x: this.innerWidth() * c, y: 0 });\n\t\t\t}\n\n\t\t\tlet background = tooltip.get(\"background\");\n\t\t\tif (background) {\n\t\t\t\tbackground.set(\"fill\", Color.interpolate(c, startColor, endColor))\n\t\t\t}\n\t\t\ttooltip.set(\"pointTo\", p);\n\t\t\ttooltip.show();\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tconst labelContainer = this.labelContainer;\n\t\tconst orientation = this.get(\"orientation\");\n\t\tconst startLabel = this.startLabel;\n\t\tconst endLabel = this.endLabel;\n\t\tconst tooltip = this.getTooltip();\n\n\t\tif (this.isDirty(\"orientation\")) {\n\t\t\tif (orientation == \"vertical\") {\n\t\t\t\tthis.markerContainer.setAll({ layout: this._root.verticalLayout, height: p100 });\n\t\t\t\tthis.set(\"layout\", this._root.horizontalLayout);\n\t\t\t\tstartLabel.setAll({ y: p100, x: undefined, centerY: p100, centerX: p100 });\n\t\t\t\tendLabel.setAll({ y: 0, x: undefined, centerY: 0, centerX: p100 });\n\t\t\t\tlabelContainer.setAll({ height: p100, width: undefined });\n\t\t\t\tif (tooltip) {\n\t\t\t\t\ttooltip.set(\"pointerOrientation\", \"horizontal\");\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.markerContainer.setAll({ layout: this._root.horizontalLayout, width: p100 });\n\t\t\t\tthis.set(\"layout\", this._root.verticalLayout);\n\t\t\t\tstartLabel.setAll({ x: 0, y: undefined, centerX: 0, centerY: 0 });\n\t\t\t\tendLabel.setAll({ x: p100, y: undefined, centerX: p100, centerY: 0 });\n\t\t\t\tlabelContainer.setAll({ width: p100, height: undefined });\n\t\t\t\tif (tooltip) {\n\t\t\t\t\ttooltip.set(\"pointerOrientation\", \"vertical\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"stepCount\")) {\n\t\t\tconst stepCount = this.get(\"stepCount\", 1);\n\t\t\tconst startColor = this.get(\"startColor\")!;\n\t\t\tconst endColor = this.get(\"endColor\")!;\n\t\t\tthis.markerContainer.children.clear();\n\t\t\tif (stepCount > 1) {\n\t\t\t\tfor (let i = 0; i < stepCount; i++) {\n\t\t\t\t\tconst marker = this.makeMarker();\n\n\t\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\t\tthis.markerContainer.children.moveValue(marker, 0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.markerContainer.children.push(marker);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (startColor && endColor) {\n\t\t\t\t\t\tmarker.set(\"fill\", Color.interpolate(i / stepCount, startColor, endColor));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (stepCount == 1) {\n\t\t\t\tconst marker = this.makeMarker();\n\t\t\t\tthis.markerContainer.children.push(marker);\n\t\t\t\tconst gradient = LinearGradient.new(this._root, { stops: [{ color: startColor }, { color: endColor }] });\n\n\t\t\t\tif (orientation == \"vertical\") {\n\t\t\t\t\tgradient.set(\"rotation\", 90);\n\t\t\t\t\tlet stops = gradient.get(\"stops\");\n\t\t\t\t\tif (stops) {\n\t\t\t\t\t\tstops.reverse();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgradient.set(\"rotation\", 0);\n\t\t\t\t}\n\t\t\t\tif (startColor && endColor) {\n\t\t\t\t\tmarker.set(\"fillGradient\", gradient);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"startText\") || this.isDirty(\"startValue\")) {\n\t\t\tstartLabel.set(\"text\", this.get(\"startText\", this.getNumberFormatter().format(this.get(\"startValue\", 0))));\n\t\t}\n\n\t\tif (this.isDirty(\"endText\") || this.isDirty(\"endValue\")) {\n\t\t\tendLabel.set(\"text\", this.get(\"endText\", this.getNumberFormatter().format(this.get(\"endValue\", 1))))\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Legend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,MAAM,WAAW,eAAgB,SAAQ,eAAe;IAEvD;;;OAGG;IACH,aAAa,EAAE,SAAS,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,eAAe,EAAE,gBAAgB,CAAC;IAElC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,MAAM;IAC1C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"Legend.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Legend.ts"],"names":[],"mappings":"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"}
|
|
@@ -188,8 +188,20 @@ var Legend = /** @class */ (function (_super) {
|
|
|
188
188
|
itemContainer.set("disabled", !visible);
|
|
189
189
|
}));
|
|
190
190
|
if (!item_1.get("visible")) {
|
|
191
|
-
itemContainer.set("disabled",
|
|
191
|
+
itemContainer.set("disabled", true);
|
|
192
192
|
}
|
|
193
|
+
itemContainer.events.on("pointerover", function () {
|
|
194
|
+
var component = item_1.component;
|
|
195
|
+
if (component && component.hoverDataItem) {
|
|
196
|
+
component.hoverDataItem(item_1);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
itemContainer.events.on("pointerout", function () {
|
|
200
|
+
var component = item_1.component;
|
|
201
|
+
if (component && component.hoverDataItem) {
|
|
202
|
+
component.unhoverDataItem(item_1);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
193
205
|
itemContainer.events.on("click", function () {
|
|
194
206
|
var toggleDp = itemContainer._toggleDp;
|
|
195
207
|
if (toggleDp) {
|
|
@@ -197,7 +209,7 @@ var Legend = /** @class */ (function (_super) {
|
|
|
197
209
|
}
|
|
198
210
|
if (itemContainer.get("toggleKey") != "none") {
|
|
199
211
|
var labelText = dataItem.get("label").text._getText();
|
|
200
|
-
if (item_1.isHidden()) {
|
|
212
|
+
if (item_1.isHidden() || item_1.get("visible") === false) {
|
|
201
213
|
item_1.show();
|
|
202
214
|
itemContainer.set("disabled", false);
|
|
203
215
|
_this._root.readerAlert(_this._t("%1 shown", _this._root.locale, labelText));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Legend.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate } from \"./Series\";\nimport { Container } from \"../../core/render/Container\";\nimport { Label } from \"../../core/render/Label\";\nimport { RoundedRectangle } from \"../../core/render/RoundedRectangle\";\nimport { Rectangle } from \"../../core/render/Rectangle\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport type { Entity, IEntitySettings } from \"../../core/util/Entity\";\nimport type { Color } from \"../../core/util/Color\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface ILegendDataItem extends ISeriesDataItem {\n\n\t/**\n\t * [[Container]] element holding all other legend item elements, labels,\n\t * markers, etc.\n\t */\n\titemContainer: Container;\n\n\t/**\n\t * Marker element.\n\t */\n\tmarker: Container;\n\n\t/**\n\t * Marker rectangle element.\n\t */\n\tmarkerRectangle: RoundedRectangle;\n\n\t/**\n\t * Label element.\n\t */\n\tlabel: Label;\n\n\t/**\n\t * Value label element.\n\t */\n\tvalueLabel: Label;\n\n\t/**\n\t * Marker fill color.\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Marker stroke (outline) color.\n\t */\n\tstroke?: Color;\n\n\t/**\n\t * Name of the legend item.\n\t */\n\tname?: string;\n\n}\n\nexport interface ILegendItemSettings extends IEntitySettings {\n\tvisible?: boolean;\n}\n\n/**\n * @ignore\n */\nexport interface ILegendItem extends Entity {\n\t_settings: ILegendItemSettings;\n\tisHidden: () => boolean;\n\tshow: () => void;\n\thide: () => void;\n\tcreateLegendMarker?: () => {}\n\t// how to define that properties of dataItem should have legendDataItem?\n}\n\n//type ILegendDataItemSettings = { [K in keyof ILegendDataItem]?: string; };\n\nexport interface ILegendSettings extends ISeriesSettings {\n\n\t/**\n\t * If set to `true` the legend will not try to mimic appearance of the actual\n\t * item but rather show default square marker.\n\t *\n\t * @default false\n\t */\n\tuseDefaultMarker?: boolean;\n\n\t/**\n\t * A key to look up in data for a name of the data item.\n\t *\n\t */\n\tnameField?: string;\n\n\t/**\n\t * A key to look up in data for a fill of the data item.\n\t *\n\t */\n\tfillField?: string;\n\n\t/**\n\t * A key to look up in data for a stroke of the data item.\n\t *\n\t */\n\tstrokeField?: string;\n\n}\n\nexport interface ILegendPrivate extends ISeriesPrivate {\n}\n\n/**\n * A universal legend control.\n *\n * @important\n * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/} for more info\n */\nexport class Legend extends Series {\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"legend\"]);\n\t\tthis.fields.push(\"name\", \"stroke\", \"fill\");\n\t\tsuper._afterNew();\n\t}\n\n\tpublic static className: string = \"Legend\";\n\tpublic static classNames: Array<string> = Series.classNames.concat([Legend.className]);\n\n\tdeclare public _settings: ILegendSettings;\n\tdeclare public _privateSettings: ILegendPrivate;\n\tdeclare public _dataItemSettings: ILegendDataItem;\n\n\t/**\n\t * List of all [[Container]] elements for legend items.\n\t *\n\t * @default new ListTemplate<Container>\n\t */\n\tpublic readonly itemContainers: ListTemplate<Container> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Container._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.itemContainers.template.get(\"themeTags\", []), [\"legend\", \"item\"]),\n\t\t\tthemeTagsSelf: $utils.mergeTags(this.itemContainers.template.get(\"themeTagsSelf\", []), [\"itemcontainer\"]),\n\t\t\tbackground: Rectangle.new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.itemContainers.template.get(\"themeTags\", []), [\"legend\", \"item\", \"background\"]),\n\t\t\t\tthemeTagsSelf: $utils.mergeTags(this.itemContainers.template.get(\"themeTagsSelf\", []), [\"itemcontainer\"])\n\t\t\t})\n\t\t}, [this.itemContainers.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeItemContainer(dataItem: DataItem<this[\"_dataItemSettings\"]>): Container {\n\t\tconst itemContainer = this.children.push(this.itemContainers.make());\n\t\titemContainer._setDataItem(dataItem);\n\t\tthis.itemContainers.push(itemContainer);\n\t\titemContainer.states.create(\"disabled\", {});\n\t\treturn itemContainer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeMarker(): Container {\n\t\tconst marker = this.markers.make();\n\t\tthis.markers.push(marker);\n\t\tmarker.states.create(\"disabled\", {});\n\t\treturn marker;\n\t}\n\n\t/**\n\t * List of legend marker elements.\n\t *\n\t * @default new ListTemplate<Container>\n\t */\n\tpublic readonly markers: ListTemplate<Container> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Container._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.markers.template.get(\"themeTags\", []), [\"legend\", \"marker\"])\n\t\t}, [this.markers.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLabel(): Label {\n\t\tconst label = this.labels.make();\n\t\tlabel.states.create(\"disabled\", {});\n\t\treturn label;\n\t}\n\n\t/**\n\t * List of legend label elements.\n\t *\n\t * @default new ListTemplate<Label>\n\t */\n\tpublic readonly labels: ListTemplate<Label> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Label._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.labels.template.get(\"themeTags\", []), [\"legend\", \"label\"])\n\t\t}, [this.labels.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeValueLabel(): Label {\n\t\tconst valueLabel = this.valueLabels.make();\n\t\tvalueLabel.states.create(\"disabled\", {});\n\t\treturn valueLabel;\n\t}\n\n\t/**\n\t * List of legend value label elements.\n\t *\n\t * @default new ListTemplate<label>\n\t */\n\tpublic readonly valueLabels: ListTemplate<Label> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Label._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.valueLabels.template.get(\"themeTags\", []), [\"legend\", \"label\", \"value\"])\n\t\t}, [this.valueLabels.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeMarkerRectangle(): RoundedRectangle {\n\t\tconst markerRectangle = this.markerRectangles.make();\n\t\tmarkerRectangle.states.create(\"disabled\", {});\n\t\treturn markerRectangle;\n\t}\n\n\t/**\n\t * List of rectangle elements used for default legend markers.\n\t *\n\t * @default new ListTemplate<RoundedRectangle>\n\t */\n\tpublic readonly markerRectangles: ListTemplate<RoundedRectangle> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => RoundedRectangle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.markerRectangles.template.get(\"themeTags\", []), [\"legend\", \"marker\", \"rectangle\"])\n\t\t}, [this.markerRectangles.template])\n\t);\n\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst itemContainer = this.makeItemContainer(dataItem);\n\n\t\tconst nameField = this.get(\"nameField\");\n\t\tconst fillField = this.get(\"fillField\");\n\t\tconst strokeField = this.get(\"strokeField\");\n\n\t\tif (itemContainer) {\n\t\t\tconst item = dataItem.dataContext as ILegendItem;\n\n\t\t\tif (item && item.set) {\n\t\t\t\titem.set(<any>\"legendDataItem\", dataItem);\n\t\t\t}\n\n\t\t\tif (item && item.show) {\n\n\t\t\t\tthis._disposers.push(item.on(\"visible\", (visible) => {\n\t\t\t\t\titemContainer.set(\"disabled\", !visible)\n\t\t\t\t}));\n\n\t\t\t\tif (!item.get(\"visible\")) {\n\t\t\t\t\titemContainer.set(\"disabled\", false);\n\t\t\t\t}\n\n\t\t\t\titemContainer.events.on(\"click\", () => {\n\t\t\t\t\tconst toggleDp = itemContainer._toggleDp;\n\t\t\t\t\tif (toggleDp) {\n\t\t\t\t\t\ttoggleDp.dispose();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (itemContainer.get(\"toggleKey\") != \"none\") {\n\t\t\t\t\t\tconst labelText = dataItem.get(\"label\").text._getText();\n\n\t\t\t\t\t\tif (item.isHidden()) {\n\t\t\t\t\t\t\titem.show();\n\t\t\t\t\t\t\titemContainer.set(\"disabled\", false);\n\t\t\t\t\t\t\tthis._root.readerAlert(this._t(\"%1 shown\", this._root.locale, labelText));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\titem.hide();\n\t\t\t\t\t\t\titemContainer.set(\"disabled\", true);\n\t\t\t\t\t\t\tthis._root.readerAlert(this._t(\"%1 hidden\", this._root.locale, labelText));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\titemContainer._setDataItem(dataItem);\n\t\t\tdataItem.set(\"itemContainer\", itemContainer);\n\n\t\t\tconst marker = this.makeMarker();\n\t\t\tif (marker) {\n\t\t\t\titemContainer.children.push(marker);\n\t\t\t\tmarker._setDataItem(dataItem);\n\t\t\t\tdataItem.set(\"marker\", marker);\n\n\t\t\t\tconst useDefaultMarker = this.get(\"useDefaultMarker\");\n\n\t\t\t\tconst markerRectangle = marker.children.push(this.makeMarkerRectangle());\n\n\t\t\t\tlet fill = dataItem.get(\"fill\");\n\t\t\t\tlet stroke = dataItem.get(\"stroke\");\n\n\t\t\t\tdataItem.set(\"markerRectangle\", markerRectangle);\n\n\t\t\t\tif (item && item.get) {\n\t\t\t\t\tfill = item.get(fillField as any, fill);\n\t\t\t\t\tstroke = item.get(strokeField as any, stroke);\n\t\t\t\t}\n\n\t\t\t\tif (!stroke) {\n\t\t\t\t\tstroke = fill;\n\t\t\t\t}\n\n\t\t\t\tif (!useDefaultMarker) {\n\t\t\t\t\tif (item && item.createLegendMarker) {\n\t\t\t\t\t\titem.createLegendMarker();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmarkerRectangle.setAll({ fill, stroke });\n\n\t\t\t}\n\n\t\t\tconst label = this.makeLabel();\n\n\t\t\tif (label) {\n\t\t\t\titemContainer.children.push(label);\n\t\t\t\tlabel._setDataItem(dataItem);\n\t\t\t\tdataItem.set(\"label\", label);\n\n\t\t\t\tlabel.text.on(\"text\", () => {\n\t\t\t\t\titemContainer.set(\"ariaLabel\", label.text._getText() + \"; \" + this._t(\"Press ENTER to toggle\"));\n\t\t\t\t});\n\n\t\t\t\tif (item && item.get) {\n\t\t\t\t\tdataItem.set(\"name\", item.get(nameField as any) as string);\n\t\t\t\t}\n\n\t\t\t\tlet name = dataItem.get(\"name\");\n\n\t\t\t\tif (name) {\n\t\t\t\t\tlabel.set(\"text\", name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst valueLabel = this.makeValueLabel();\n\t\t\tif (valueLabel) {\n\t\t\t\titemContainer.children.push(valueLabel);\n\t\t\t\tvalueLabel._setDataItem(dataItem);\n\t\t\t\tdataItem.set(\"valueLabel\", valueLabel);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t\tlet itemContainer = dataItem.get(\"itemContainer\");\n\t\tif (itemContainer) {\n\t\t\tthis.itemContainers.removeValue(itemContainer);\n\t\t\titemContainer.dispose();\n\t\t}\n\n\t\tlet marker = dataItem.get(\"marker\");\n\t\tif (marker) {\n\t\t\tthis.markers.removeValue(marker);\n\t\t\tmarker.dispose();\n\t\t}\n\n\t\tlet markerRectangle = dataItem.get(\"markerRectangle\");\n\t\tif (markerRectangle) {\n\t\t\tthis.markerRectangles.removeValue(markerRectangle);\n\t\t\tmarkerRectangle.dispose();\n\t\t}\n\n\t\tlet label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tthis.labels.removeValue(label);\n\t\t\tlabel.dispose();\n\t\t}\n\n\t\tlet valueLabel = dataItem.get(\"valueLabel\");\n\t\tif (valueLabel) {\n\t\t\tthis.valueLabels.removeValue(valueLabel);\n\t\t\tvalueLabel.dispose();\n\t\t}\n\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Legend.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Legend.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate } from \"./Series\";\nimport { Container } from \"../../core/render/Container\";\nimport { Label } from \"../../core/render/Label\";\nimport { RoundedRectangle } from \"../../core/render/RoundedRectangle\";\nimport { Rectangle } from \"../../core/render/Rectangle\";\nimport { Template } from \"../../core/util/Template\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport type { Entity, IEntitySettings } from \"../../core/util/Entity\";\nimport type { Color } from \"../../core/util/Color\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface ILegendDataItem extends ISeriesDataItem {\n\n\t/**\n\t * [[Container]] element holding all other legend item elements, labels,\n\t * markers, etc.\n\t */\n\titemContainer: Container;\n\n\t/**\n\t * Marker element.\n\t */\n\tmarker: Container;\n\n\t/**\n\t * Marker rectangle element.\n\t */\n\tmarkerRectangle: RoundedRectangle;\n\n\t/**\n\t * Label element.\n\t */\n\tlabel: Label;\n\n\t/**\n\t * Value label element.\n\t */\n\tvalueLabel: Label;\n\n\t/**\n\t * Marker fill color.\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Marker stroke (outline) color.\n\t */\n\tstroke?: Color;\n\n\t/**\n\t * Name of the legend item.\n\t */\n\tname?: string;\n\n}\n\nexport interface ILegendItemSettings extends IEntitySettings {\n\tvisible?: boolean;\n}\n\n/**\n * @ignore\n */\nexport interface ILegendItem extends Entity {\n\t_settings: ILegendItemSettings;\n\tisHidden: () => boolean;\n\tshow: () => void;\n\thide: () => void;\n\tcreateLegendMarker?: () => {}\n\tcomponent?: Series;\n\t// how to define that properties of dataItem should have legendDataItem?\n}\n\n//type ILegendDataItemSettings = { [K in keyof ILegendDataItem]?: string; };\n\nexport interface ILegendSettings extends ISeriesSettings {\n\n\t/**\n\t * If set to `true` the legend will not try to mimic appearance of the actual\n\t * item but rather show default square marker.\n\t *\n\t * @default false\n\t */\n\tuseDefaultMarker?: boolean;\n\n\t/**\n\t * A key to look up in data for a name of the data item.\n\t *\n\t */\n\tnameField?: string;\n\n\t/**\n\t * A key to look up in data for a fill of the data item.\n\t *\n\t */\n\tfillField?: string;\n\n\t/**\n\t * A key to look up in data for a stroke of the data item.\n\t *\n\t */\n\tstrokeField?: string;\n\n}\n\nexport interface ILegendPrivate extends ISeriesPrivate {\n}\n\n/**\n * A universal legend control.\n *\n * @important\n * @see {@link https://www.amcharts.com/docs/v5/concepts/legend/} for more info\n */\nexport class Legend extends Series {\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"legend\"]);\n\t\tthis.fields.push(\"name\", \"stroke\", \"fill\");\n\t\tsuper._afterNew();\n\t}\n\n\tpublic static className: string = \"Legend\";\n\tpublic static classNames: Array<string> = Series.classNames.concat([Legend.className]);\n\n\tdeclare public _settings: ILegendSettings;\n\tdeclare public _privateSettings: ILegendPrivate;\n\tdeclare public _dataItemSettings: ILegendDataItem;\n\n\t/**\n\t * List of all [[Container]] elements for legend items.\n\t *\n\t * @default new ListTemplate<Container>\n\t */\n\tpublic readonly itemContainers: ListTemplate<Container> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Container._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.itemContainers.template.get(\"themeTags\", []), [\"legend\", \"item\"]),\n\t\t\tthemeTagsSelf: $utils.mergeTags(this.itemContainers.template.get(\"themeTagsSelf\", []), [\"itemcontainer\"]),\n\t\t\tbackground: Rectangle.new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.itemContainers.template.get(\"themeTags\", []), [\"legend\", \"item\", \"background\"]),\n\t\t\t\tthemeTagsSelf: $utils.mergeTags(this.itemContainers.template.get(\"themeTagsSelf\", []), [\"itemcontainer\"])\n\t\t\t})\n\t\t}, [this.itemContainers.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeItemContainer(dataItem: DataItem<this[\"_dataItemSettings\"]>): Container {\n\t\tconst itemContainer = this.children.push(this.itemContainers.make());\n\t\titemContainer._setDataItem(dataItem);\n\t\tthis.itemContainers.push(itemContainer);\n\t\titemContainer.states.create(\"disabled\", {});\n\t\treturn itemContainer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeMarker(): Container {\n\t\tconst marker = this.markers.make();\n\t\tthis.markers.push(marker);\n\t\tmarker.states.create(\"disabled\", {});\n\t\treturn marker;\n\t}\n\n\t/**\n\t * List of legend marker elements.\n\t *\n\t * @default new ListTemplate<Container>\n\t */\n\tpublic readonly markers: ListTemplate<Container> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Container._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.markers.template.get(\"themeTags\", []), [\"legend\", \"marker\"])\n\t\t}, [this.markers.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLabel(): Label {\n\t\tconst label = this.labels.make();\n\t\tlabel.states.create(\"disabled\", {});\n\t\treturn label;\n\t}\n\n\t/**\n\t * List of legend label elements.\n\t *\n\t * @default new ListTemplate<Label>\n\t */\n\tpublic readonly labels: ListTemplate<Label> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Label._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.labels.template.get(\"themeTags\", []), [\"legend\", \"label\"])\n\t\t}, [this.labels.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeValueLabel(): Label {\n\t\tconst valueLabel = this.valueLabels.make();\n\t\tvalueLabel.states.create(\"disabled\", {});\n\t\treturn valueLabel;\n\t}\n\n\t/**\n\t * List of legend value label elements.\n\t *\n\t * @default new ListTemplate<label>\n\t */\n\tpublic readonly valueLabels: ListTemplate<Label> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Label._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.valueLabels.template.get(\"themeTags\", []), [\"legend\", \"label\", \"value\"])\n\t\t}, [this.valueLabels.template])\n\t);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeMarkerRectangle(): RoundedRectangle {\n\t\tconst markerRectangle = this.markerRectangles.make();\n\t\tmarkerRectangle.states.create(\"disabled\", {});\n\t\treturn markerRectangle;\n\t}\n\n\t/**\n\t * List of rectangle elements used for default legend markers.\n\t *\n\t * @default new ListTemplate<RoundedRectangle>\n\t */\n\tpublic readonly markerRectangles: ListTemplate<RoundedRectangle> = new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => RoundedRectangle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.markerRectangles.template.get(\"themeTags\", []), [\"legend\", \"marker\", \"rectangle\"])\n\t\t}, [this.markerRectangles.template])\n\t);\n\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst itemContainer = this.makeItemContainer(dataItem);\n\n\t\tconst nameField = this.get(\"nameField\");\n\t\tconst fillField = this.get(\"fillField\");\n\t\tconst strokeField = this.get(\"strokeField\");\n\n\t\tif (itemContainer) {\n\t\t\tconst item = dataItem.dataContext as ILegendItem;\n\n\t\t\tif (item && item.set) {\n\t\t\t\titem.set(<any>\"legendDataItem\", dataItem);\n\t\t\t}\n\n\t\t\tif (item && item.show) {\n\n\t\t\t\tthis._disposers.push(item.on(\"visible\", (visible) => {\n\t\t\t\t\titemContainer.set(\"disabled\", !visible)\n\t\t\t\t}));\n\n\t\t\t\tif (!item.get(\"visible\")) {\n\t\t\t\t\titemContainer.set(\"disabled\", true);\n\t\t\t\t}\n\t\t\t\titemContainer.events.on(\"pointerover\", () => {\n\t\t\t\t\tconst component = item.component;\n\t\t\t\t\tif (component && component.hoverDataItem) {\n\t\t\t\t\t\tcomponent.hoverDataItem(item as any)\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\titemContainer.events.on(\"pointerout\", () => {\n\t\t\t\t\tconst component = item.component;\n\t\t\t\t\tif (component && component.hoverDataItem) {\n\t\t\t\t\t\tcomponent.unhoverDataItem(item as any)\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\titemContainer.events.on(\"click\", () => {\n\t\t\t\t\tconst toggleDp = itemContainer._toggleDp;\n\t\t\t\t\tif (toggleDp) {\n\t\t\t\t\t\ttoggleDp.dispose();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (itemContainer.get(\"toggleKey\") != \"none\") {\n\t\t\t\t\t\tconst labelText = dataItem.get(\"label\").text._getText();\n\n\t\t\t\t\t\tif (item.isHidden() || item.get(\"visible\") === false) {\n\t\t\t\t\t\t\titem.show();\n\t\t\t\t\t\t\titemContainer.set(\"disabled\", false);\n\t\t\t\t\t\t\tthis._root.readerAlert(this._t(\"%1 shown\", this._root.locale, labelText));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\titem.hide();\n\t\t\t\t\t\t\titemContainer.set(\"disabled\", true);\n\t\t\t\t\t\t\tthis._root.readerAlert(this._t(\"%1 hidden\", this._root.locale, labelText));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\titemContainer._setDataItem(dataItem);\n\t\t\tdataItem.set(\"itemContainer\", itemContainer);\n\n\t\t\tconst marker = this.makeMarker();\n\t\t\tif (marker) {\n\t\t\t\titemContainer.children.push(marker);\n\t\t\t\tmarker._setDataItem(dataItem);\n\t\t\t\tdataItem.set(\"marker\", marker);\n\n\t\t\t\tconst useDefaultMarker = this.get(\"useDefaultMarker\");\n\n\t\t\t\tconst markerRectangle = marker.children.push(this.makeMarkerRectangle());\n\n\t\t\t\tlet fill = dataItem.get(\"fill\");\n\t\t\t\tlet stroke = dataItem.get(\"stroke\");\n\n\t\t\t\tdataItem.set(\"markerRectangle\", markerRectangle);\n\n\t\t\t\tif (item && item.get) {\n\t\t\t\t\tfill = item.get(fillField as any, fill);\n\t\t\t\t\tstroke = item.get(strokeField as any, stroke);\n\t\t\t\t}\n\n\t\t\t\tif (!stroke) {\n\t\t\t\t\tstroke = fill;\n\t\t\t\t}\n\n\t\t\t\tif (!useDefaultMarker) {\n\t\t\t\t\tif (item && item.createLegendMarker) {\n\t\t\t\t\t\titem.createLegendMarker();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmarkerRectangle.setAll({ fill, stroke });\n\n\t\t\t}\n\n\t\t\tconst label = this.makeLabel();\n\n\t\t\tif (label) {\n\t\t\t\titemContainer.children.push(label);\n\t\t\t\tlabel._setDataItem(dataItem);\n\t\t\t\tdataItem.set(\"label\", label);\n\n\t\t\t\tlabel.text.on(\"text\", () => {\n\t\t\t\t\titemContainer.set(\"ariaLabel\", label.text._getText() + \"; \" + this._t(\"Press ENTER to toggle\"));\n\t\t\t\t});\n\n\t\t\t\tif (item && item.get) {\n\t\t\t\t\tdataItem.set(\"name\", item.get(nameField as any) as string);\n\t\t\t\t}\n\n\t\t\t\tlet name = dataItem.get(\"name\");\n\n\t\t\t\tif (name) {\n\t\t\t\t\tlabel.set(\"text\", name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst valueLabel = this.makeValueLabel();\n\t\t\tif (valueLabel) {\n\t\t\t\titemContainer.children.push(valueLabel);\n\t\t\t\tvalueLabel._setDataItem(dataItem);\n\t\t\t\tdataItem.set(\"valueLabel\", valueLabel);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t\tlet itemContainer = dataItem.get(\"itemContainer\");\n\t\tif (itemContainer) {\n\t\t\tthis.itemContainers.removeValue(itemContainer);\n\t\t\titemContainer.dispose();\n\t\t}\n\n\t\tlet marker = dataItem.get(\"marker\");\n\t\tif (marker) {\n\t\t\tthis.markers.removeValue(marker);\n\t\t\tmarker.dispose();\n\t\t}\n\n\t\tlet markerRectangle = dataItem.get(\"markerRectangle\");\n\t\tif (markerRectangle) {\n\t\t\tthis.markerRectangles.removeValue(markerRectangle);\n\t\t\tmarkerRectangle.dispose();\n\t\t}\n\n\t\tlet label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tthis.labels.removeValue(label);\n\t\t\tlabel.dispose();\n\t\t}\n\n\t\tlet valueLabel = dataItem.get(\"valueLabel\");\n\t\tif (valueLabel) {\n\t\t\tthis.valueLabels.removeValue(valueLabel);\n\t\t\tvalueLabel.dispose();\n\t\t}\n\n\t}\n}\n"]}
|