@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":"Entity.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Entity.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../Root\";\nimport type { Template, ApplyState } from \"./Template\";\nimport type { Theme, IRule } from \"../Theme\";\nimport type { ILocale } from \"./Language\";\n\nimport { IDisposer, Disposer } from \"./Disposer\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { Time, IAnimation, getInterpolate } from \"./Animation\";\nimport { States } from \"./States\";\nimport { registry } from \"../Registry\";\n\nimport * as $object from \"./Object\";\nimport * as $ease from \"./Ease\";\nimport * as $array from \"./Array\";\nimport * as $order from \"./Order\";\n\n/**\n * @ignore\n */\nexport type Dirty<A> = { [K in keyof A]?: boolean };\n\n\n/**\n * Allows to dynamically modify setting value of its target element.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n */\nexport class Adapters<E extends Settings> {\n\tprivate _entity: E;\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E[\"_settings\"]>(value: O[K], target?: O, key?: K) => O[K]> } = {};\n\n\tconstructor(entity: E) {\n\t\tthis._entity = entity;\n\t}\n\n\t/**\n\t * Add a function (`callback`) that will modify value for setting `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n\t */\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: <O extends E[\"_settings\"]>(value: O[Key], target?: O, key?: Key) => O[Key]): IDisposer {\n\t\tlet callbacks = this._callbacks[key];\n\n\t\tif (callbacks === undefined) {\n\t\t\tcallbacks = this._callbacks[key] = [];\n\t\t}\n\n\t\tcallbacks.push(callback);\n\n\t\tthis._entity._markDirtyKey(key);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(callbacks!, callback);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic fold<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]): E[\"_settings\"][Key] {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tfor (let i = 0, len = callbacks.length; i < len; ++i) {\n\t\t\t\tvalue = callbacks[i](value, this._entity, key);\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\n\nexport interface IEntitySettings {\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTags?: Array<string>;\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * These tags only apply to this object, not any children.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTagsSelf?: Array<string>;\n\n\t/**\n\t * A list of themes applied to the element.\n\t */\n\tthemes?: Array<Theme>;\n\n\n\t/**\n\t * Duration of transition from one state to another.\n\t */\n\tstateAnimationDuration?:number;\n\n\t/**\n\t * Easing of transition from one state to another.\n\t */\n\tstateAnimationEasing?:$ease.Easing;\n\n\t/**\n\t * A custom string ID for the element.\n\t *\n\t * If set, element can be looked up via `am5.registry.entitiesById`.\n\t *\n\t * Will raise error if an element with the same ID already exists.\n\t */\n\tid?: string;\n\n\t/**\n\t * A storage for any custom user data that needs to be associated with the\n\t * element.\n\t */\n\tuserData?: any;\n\n}\n\nexport interface IEntityPrivate {\n}\n\nexport interface IEntityEvents {\n}\n\n/**\n * Animation options.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport interface AnimationOptions<Key, Value> {\n\n\t/**\n\t * A setting key to animate value for.\n\t */\n\tkey: Key,\n\n\t/**\n\t * Initial value to animate from. If not set, will use current value.\n\t */\n\tfrom?: Value;\n\n\t/**\n\t * Target value to animate to.\n\t */\n\tto: Value;\n\n\t/**\n\t * Animation duration in milliseconds.\n\t */\n\tduration: number;\n\n\t/**\n\t * Easing function. Defaults to linear.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\teasing?: $ease.Easing;\n\n\t/**\n\t * How many times to play the animation. Defaults to 1.\n\t */\n\tloops?: number;\n}\n\nexport interface IAnimationEvents {\n\t/**\n\t * Invoked when animation was stopped, which happens in these situations:\n\t * 1. When the animation reached the end.\n\t * 2. When the `stop()` method is called.\n\t * 3. When a new animation starts for the same key.\n\t * 4. When calling `set` for the same key.\n\t */\n\tstopped: {};\n}\n\n/**\n * Animation object.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport class Animation<Value> {\n\tprivate _from: Value;\n\tprivate _to: Value;\n\tprivate _duration: number;\n\tprivate _easing: $ease.Easing;\n\tprivate _loops: number;\n\tprivate _interpolate: <A extends Value>(diff: Time, from: A, to: A) => A;\n\tprivate _oldTime: number | null;\n\tprivate _time: number = 0;\n\n\tpublic _stopped: boolean = false;\n\tpublic _playing: boolean = true;\n\n\tpublic events: EventDispatcher<Events<this, IAnimationEvents>> = new EventDispatcher();\n\n\tconstructor(from: Value, to: Value, duration: number, easing: $ease.Easing, loops: number, startingTime: number | null) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._duration = duration;\n\t\tthis._easing = easing;\n\t\tthis._loops = loops;\n\t\tthis._interpolate = getInterpolate(from, to);\n\t\tthis._oldTime = startingTime;\n\t}\n\n\tpublic get to() {\n\t\treturn this._to;\n\t}\n\n\tpublic get from() {\n\t\treturn this._from;\n\t}\n\n\tpublic get playing() {\n\t\treturn this._playing;\n\t}\n\n\tpublic get stopped() {\n\t\treturn this._stopped;\n\t}\n\n\tpublic stop(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._stopped = true;\n\t\t\tthis._playing = false;\n\n\t\t\tif (this.events.isEnabled(\"stopped\")) {\n\t\t\t\tthis.events.dispatch(\"stopped\", {\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic pause(): void {\n\t\tthis._playing = false;\n\t\tthis._oldTime = null;\n\t}\n\n\tpublic play(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._playing = true;\n\t\t}\n\t}\n\n\tpublic get percentage(): Time {\n\t\treturn this._time / this._duration;\n\t}\n\n\tpublic waitForStop(): Promise<void> {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tif (this._stopped) {\n\t\t\t\tresolve();\n\n\t\t\t} else {\n\t\t\t\tconst listener = () => {\n\t\t\t\t\tstopped.dispose();\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst stopped = this.events.on(\"stopped\", listener);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic _checkEnded(): boolean {\n\t\tif (this._loops > 1) {\n\t\t\t--this._loops;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic _run(currentTime: number): void {\n\t\tif (this._oldTime !== null) {\n\t\t\tthis._time += currentTime - this._oldTime;\n\n\t\t\tif (this._time > this._duration) {\n\t\t\t\tthis._time = this._duration;\n\t\t\t}\n\t\t}\n\n\t\tthis._oldTime = currentTime;\n\t}\n\n\tpublic _reset(currentTime: number): void {\n\t\tthis._oldTime = currentTime;\n\t\tthis._time = 0;\n\t}\n\n\tpublic _value(diff: Time): Value {\n\t\treturn this._interpolate(this._easing(diff), this._from, this._to);\n\t}\n}\n\ntype Animated<P> = { [K in keyof P]?: Animation<P[K]> };\n\n\n/**\n * @ignore\n */\nlet counter = 0;\n\n/**\n * Base class for [[Entity]] objects that support Settings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n */\nexport abstract class Settings implements IDisposer, IAnimation {\n\n\t/**\n\t * Unique ID.\n\t */\n\tpublic uid: number = ++counter;\n\n\tpublic _settings: {};\n\tpublic _privateSettings: {} = {};\n\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\n\tpublic _prevSettings: this[\"_settings\"] = {};\n\tpublic _prevPrivateSettings: this[\"_privateSettings\"] = {};\n\n\tprotected _animatingSettings: Animated<this[\"_settings\"]> = {};\n\tprotected _animatingPrivateSettings: Animated<this[\"_privateSettings\"]> = {};\n\tprotected _animatingCount: number = 0;\n\n\tprivate _disposed: boolean = false;\n\n\t// TODO move this into Entity\n\tprotected _userProperties: Dirty<this[\"_settings\"]> = {};\n\n\tconstructor(settings: Settings[\"_settings\"]) {\n\t\tthis._settings = settings;\n\t}\n\n\tprotected _checkDirty(): void {\n\t\t$object.keys(this._settings).forEach((key) => {\n\t\t\t(this._userProperties as any)[key] = true;\n\t\t\tthis._markDirtyKey(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract markDirty(): void;\n\n\tpublic _runAnimation(currentTime: number): boolean {\n\t\tif (!this.isDisposed()) {\n\t\t\t$object.each(this._animatingSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimation(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.set(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._set(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._set(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._animatingPrivateSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimationPrivate(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.setPrivate(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._setPrivate(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._setPrivate(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this._animatingCount < 0) {\n\t\t\t\tthrow new Error(\"Invalid animation count\");\n\t\t\t}\n\n\t\t\treturn this._animatingCount === 0;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprotected abstract _startAnimation(): void;\n\tprotected abstract _animationTime(): number | null;\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of settings changes\n\t * or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @param key Settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._settingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._settingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._settingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of private settings\n\t * changes or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @ignore\n\t * @param key Private settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._privateSettingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._privateSettingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._privateSettingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._settings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` ios returned instead (if set)/\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return {any} Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\treturn this.getRaw(key, fallback);\n\t}\n\n\tprotected _sendKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._settingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _sendPrivateKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._privateSettingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevSettings[key] = old;\n\t\tthis._sendKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\t}\n\n\n\tprotected _stopAnimation<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst animation = this._animatingSettings[key];\n\n\t\tif (animation) {\n\t\t\tdelete this._animatingSettings[key];\n\t\t\t--this._animatingCount;\n\t\t\tanimation.stop();\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._set(key, value);\n\t\tthis._stopAnimation(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tif (key in this._settings) {\n\t\t\tthis._prevSettings[key] = (<any>this._settings)[key];\n\n\t\t\tdelete (<any>this._settings)[key];\n\n\t\t\tthis._sendKeyEvent(key, undefined as any);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\n\t\tthis._stopAnimation(key);\n\t}\n\n\t/**\n\t * Removes all keys;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t */\n\tpublic removeAll(): void {\n\t\t$array.each($object.keys(this._settings), (key) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\n\t/**\n\t * Returns a value of a private setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/#Private_settings} for more info\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._privateSettings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevPrivateSettings[key] = old;\n\t\tthis._sendPrivateKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\t}\n\n\tprotected _stopAnimationPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tconst animation = this._animatingPrivateSettings[key];\n\n\t\tif (animation) {\n\t\t\tanimation.stop();\n\t\t\tdelete this._animatingPrivateSettings[key];\n\t\t\t--this._animatingCount;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._setPrivate(key, value);\n\t\tthis._stopAnimationPrivate(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tif (key in this._privateSettings) {\n\t\t\tthis._prevPrivateSettings[key] = (<any>this._privateSettings)[key];\n\n\t\t\tdelete (<any>this._privateSettings)[key];\n\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\n\t\tthis._stopAnimationPrivate(key);\n\t}\n\n\t/**\n\t * Sets multiple settings at once.\n\t *\n\t * `settings` must be an object with key: value pairs.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param settings Settings\n\t */\n\tpublic setAll(settings: Partial<this[\"_settings\"]>) {\n\t\t$object.each(settings, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Animates setting values from current/start values to new ones.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_settings} for more info\n\t * @param options Animation options\n\t * @return Animation object\n\t */\n\tpublic animate<Key extends keyof this[\"_settings\"]>(options: AnimationOptions<Key, this[\"_settings\"][Key]>): Animation<this[\"_settings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.get(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.set(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.set(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.set(key, from);\n\n\t\t\t\tconst animation = this._animatingSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic animatePrivate<Key extends keyof this[\"_privateSettings\"]>(options: AnimationOptions<Key, this[\"_privateSettings\"][Key]>): Animation<this[\"_privateSettings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.getPrivate(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.setPrivate(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.setPrivate(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.setPrivate(key, from);\n\n\t\t\t\tconst animation = this._animatingPrivateSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\tprotected _dispose() {}\n\n\t/**\n\t * Returns `true` if this element is disposed.\n\t *\n\t * @return Disposed\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes this object.\n\t */\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * Base class.\n *\n * @important\n */\nexport class Entity extends Settings implements IDisposer {\n\tpublic _root: Root;\n\n\tpublic _user_id:any; // for testing purposes\n\n\tdeclare public _settings: IEntitySettings;\n\tdeclare public _privateSettings: IEntityPrivate;\n\tdeclare public _events: IEntityEvents;\n\n\tpublic states: States<this> = new States(this);\n\tpublic adapters: Adapters<this> = new Adapters(this);\n\tpublic events: EventDispatcher<Events<this, this[\"_events\"]>> = this._createEvents();\n\n\tprotected _userPrivateProperties: Dirty<this[\"_privateSettings\"]> = {};\n\n\tpublic _dirty: Dirty<this[\"_settings\"]> = {};\n\tpublic _dirtyPrivate: Dirty<this[\"_privateSettings\"]> = {};\n\n\tprotected _template: Template<this> | undefined;\n\n\t// Templates for the themes\n\tprotected _templates: Array<Template<this>> = [];\n\n\t// Internal templates which can be overridden by the user's templates\n\tprotected _internalTemplates: Array<Template<this>>;\n\n\t// Default themes which can be overridden by the user's themes\n\tpublic _defaultThemes: Array<Theme> = [];\n\n\t// Disposers for all of the templates\n\tprotected _templateDisposers: Array<IDisposer> = [];\n\n\tprotected _disposers: Array<IDisposer> = [];\n\n\t// Whether the template setup function should be run\n\tprotected _runSetup: boolean = true;\n\n\tpublic static className: string = \"Entity\";\n\tpublic static classNames: Array<string> = [\"Entity\"];\n\n\tprotected _disposerProperties: { [Key in keyof this[\"_settings\"]]?: Array<IDisposer> } = {};\n\n\t/**\n\t * IMPORTANT! Do not instantiate this class via `new Class()` syntax.\n\t *\n\t * Use static method `Class.new()` instead.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @ignore\n\t */\n\tconstructor(root: Root, settings: Entity[\"_settings\"], isReal: boolean, templates: Array<Template<Entity>> = []) {\n\t\tsuper(settings);\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\t\tthis._root = root;\n\t\tthis._internalTemplates = templates as Array<Template<this>>;\n\t}\n\n\t/**\n\t * Use this method to create an instance of this class.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @param root Root element\n\t * @param settings Settings\n\t * @param template Template\n\t * @return Instantiated object\n\t */\n\tstatic new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], template?: Template<T>): T {\n\t\tconst x = (new this(root, settings, true)) as T;\n\t\tx._template = template;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tstatic _new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], templates: Array<Template<T>> = []): T {\n\t\tconst x = (new this(root, settings, true, templates)) as T;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._checkDirty();\n\n\t\tlet shouldApply = false;\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tif (shouldApply) {\n\t\t\tthis._applyTemplates(false);\n\t\t}\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\t}\n\n\t// This is the same as _afterNew, except it also applies the themes.\n\t// This should only be used for classes which don't have a parent (because they extend from Entity and not Sprite).\n\tprotected _afterNewApplyThemes() {\n\t\tthis._checkDirty();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\n\t\tthis._applyThemes();\n\t}\n\n\tprotected _createEvents(): EventDispatcher<Events<this, this[\"_events\"]>> {\n\t\treturn new EventDispatcher();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get classNames(): Array<string> {\n\t\treturn (this.constructor as any).classNames;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get className(): string {\n\t\treturn (this.constructor as any).className;\n\t}\n\n\tprotected _setDefaults(){\n\n\t}\n\n\tpublic _setDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\t}\n\n\tpublic _setRawDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.setRaw(key, value);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tthis._dirty[key] = false;\n\t\t});\n\n\t\t$object.keys(this._dirtyPrivate).forEach((key) => {\n\t\t\tthis._dirtyPrivate[key] = false;\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDirty<Key extends keyof this[\"_settings\"]>(key: Key): boolean {\n\t\treturn !!this._dirty[key];\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isPrivateDirty<Key extends keyof this[\"_privateSettings\"]>(key: Key): boolean {\n\t\treturn !!this._dirtyPrivate[key];\n\t}\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tthis._dirty[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tthis._dirtyPrivate[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\t/**\n\t * Checks if element is of certain class (or inherits one).\n\t *\n\t * @param type Class name to check\n\t * @return {boolean} Is of class?\n\t */\n\tpublic isType<A>(type: string): this is A {\n\t\treturn this.classNames.indexOf(type) !== -1;\n\t}\n\n\tprotected _pushPropertyDisposer<Key extends keyof this[\"_settings\"], D extends IDisposer>(key: Key, disposer: D): D {\n\t\tlet disposers = this._disposerProperties[key];\n\n\t\tif (disposers === undefined) {\n\t\t\tdisposers = this._disposerProperties[key] = [];\n\t\t}\n\n\t\tdisposers.push(disposer);\n\n\t\treturn disposer;\n\t}\n\n\tprotected _disposeProperty<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst disposers = this._disposerProperties[key];\n\n\t\tif (disposers !== undefined) {\n\t\t\t$array.each(disposers!, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\n\t\t\tdelete this._disposerProperties[key];\n\t\t}\n\t}\n\n\t/**\n\t * @todo needs description\n\t * @param value Template\n\t */\n\tpublic set template(value: Template<this> | undefined) {\n\t\tconst template = this._template;\n\n\t\tif (template !== value) {\n\t\t\tthis._template = value;\n\n\t\t\tif (template) {\n\t\t\t\ttemplate._removeObjectTemplate(this);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tvalue._setObjectTemplate(this);\n\t\t\t}\n\n\t\t\tthis._applyTemplates();\n\t\t}\n\t}\n\n\tpublic get template(): Template<this> | undefined {\n\t\treturn this._template;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty() {\n\t\tthis._root._addDirtyEntity(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this._root.animationTime;\n\t}\n\n\tpublic _applyState(_name: string): void { }\n\tpublic _applyStateAnimated(_name: string, _duration?: number): void { }\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = this.adapters.fold(key, (<any>this._settings)[key]);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userProperties[key] = true;\n\t\treturn super.set(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userProperties[key] = true;\n\t\tsuper.setRaw(key, value);\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key` only if the value for this key was not set previously using set method, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic _setSoft<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tif(!this._userProperties[key]){\n\t\t\treturn super.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._userProperties[key];\n\t\tthis._removeTemplateProperty(key);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userPrivateProperties[key] = true;\n\t\treturn super.setPrivate(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userPrivateProperties[key] = true;\n\t\tsuper.setPrivateRaw(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tdelete this._userPrivateProperties[key];\n\t\tthis._removeTemplatePrivateProperty(key);\n\t}\n\n\tpublic _setTemplateProperty<Key extends keyof this[\"_settings\"]>(template: Template<this>, key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _setTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(template: Template<this>, key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplateProperty<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.set(key, match._settings[key]!);\n\n\t\t\t} else {\n\t\t\t\tsuper.remove(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.setPrivate(key, match._privateSettings[key]);\n\n\t\t\t} else {\n\t\t\t\tsuper.removePrivate(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _walkParents(f: (parent: Entity) => void): void {\n\t\tf(this._root._rootContainer);\n\t\tf(this);\n\t}\n\n\t// TODO faster version of this method which is specialized to just 1 key\n\tpublic _applyStateByKey(name: string): void {\n\t\tconst other = this.states.create(name, {});\n\t\tconst seen: Dirty<this[\"_settings\"]> = {};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tconst state = template.states.lookup(name);\n\n\t\t\tif (state) {\n\t\t\t\tstate._apply(other, seen);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(other._settings, (key) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tother.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected _applyTemplate(template: Template<this>, state: ApplyState<this>): void {\n\t\tthis._templateDisposers.push(template._apply(this, state));\n\n\t\t$object.each(template._settings, (key, value) => {\n\t\t\tif (!state.settings[key] && !this._userProperties[key]) {\n\t\t\t\tstate.settings[key] = true;\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(template._privateSettings, (key, value) => {\n\t\t\tif (!state.privateSettings[key] && !this._userPrivateProperties[key]) {\n\t\t\t\tstate.privateSettings[key] = true;\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t});\n\n\t\tif (this._runSetup && template.setup) {\n\t\t\tthis._runSetup = false;\n\t\t\ttemplate.setup(this);\n\t\t}\n\t}\n\n\t/**\n\t * Calls the closure with each template and returns the first template which is true\n\t */\n\tprotected _findStaticTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tif (this._template) {\n\t\t\tif (f(this._template)) {\n\t\t\t\treturn this._template;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _eachTemplate(f: (template: Template<this>) => void): void {\n\t\tthis._findStaticTemplate((template) => {\n\t\t\tf(template);\n\t\t\treturn false;\n\t\t});\n\n\t\t$array.each(this._internalTemplates, f);\n\n\t\t$array.each(this._templates, f);\n\t}\n\n\tpublic _applyTemplates(remove: boolean = true): void {\n\t\tif (remove) {\n\t\t\tthis._disposeTemplates();\n\t\t}\n\n\t\tconst state: ApplyState<this> = {\n\t\t\tsettings: {},\n\t\t\tprivateSettings: {},\n\t\t\tstates: {},\n\t\t};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tthis._applyTemplate(template, state);\n\t\t});\n\n\t\tif (remove) {\n\t\t\t$object.each(this._settings, (key) => {\n\t\t\t\tif (!this._userProperties[key] && !state.settings[key]) {\n\t\t\t\t\tsuper.remove(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._privateSettings, (key) => {\n\t\t\t\tif (!this._userPrivateProperties[key] && !state.privateSettings[key]) {\n\t\t\t\t\tsuper.removePrivate(key);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _findTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tconst value = this._findStaticTemplate(f);\n\n\t\tif (value === undefined) {\n\t\t\tconst value = $array.find(this._internalTemplates, f);\n\n\t\t\tif (value === undefined) {\n\t\t\t\treturn $array.find(this._templates, f);\n\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tprotected _findTemplateByKey<Key extends keyof this[\"_settings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._settings;\n\t\t});\n\t}\n\n\tprotected _findTemplateByPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._privateSettings;\n\t\t});\n\t}\n\n\tprotected _disposeTemplates() {\n\t\t$array.each(this._templateDisposers, (disposer) => {\n\t\t\tdisposer.dispose();\n\t\t});\n\n\t\tthis._templateDisposers.length = 0;\n\t}\n\n\tprotected _removeTemplates() {\n\t\t$array.each(this._templates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._templates.length = 0;\n\t}\n\n\tpublic _applyThemes(): boolean {\n\t\tlet isConnected = false;\n\n\t\tconst defaults: Array<Array<Theme>> = [];\n\n\t\tlet themes: Array<Array<Theme>> = [];\n\n\t\tconst themeTags: Set<string> = new Set();\n\n\t\tconst tags = this.get(\"themeTagsSelf\");\n\n\t\tif (tags) {\n\t\t\t$array.each(tags, (tag) => {\n\t\t\t\tthemeTags.add(tag);\n\t\t\t});\n\t\t}\n\n\t\tthis._walkParents((entity) => {\n\t\t\tif (entity === this._root._rootContainer) {\n\t\t\t\tisConnected = true;\n\t\t\t}\n\n\t\t\tif (entity._defaultThemes.length > 0) {\n\t\t\t\tdefaults.push(entity._defaultThemes);\n\t\t\t}\n\n\t\t\tconst theme = entity.get(\"themes\");\n\n\t\t\tif (theme) {\n\t\t\t\tthemes.push(theme);\n\t\t\t}\n\n\t\t\tconst tags = entity.get(\"themeTags\");\n\n\t\t\tif (tags) {\n\t\t\t\t$array.each(tags, (tag) => {\n\t\t\t\t\tthemeTags.add(tag);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthemes = defaults.concat(themes);\n\n\t\tthis._removeTemplates();\n\n\t\tif (isConnected) {\n\t\t\t$array.eachReverse(this.classNames, (name) => {\n\t\t\t\tconst allRules: Array<IRule<this>> = [];\n\n\t\t\t\t$array.each(themes, (themes) => {\n\t\t\t\t\t$array.each(themes, (theme) => {\n\t\t\t\t\t\tconst rules = theme._lookupRules<this>(name);\n\n\t\t\t\t\t\tif (rules) {\n\t\t\t\t\t\t\t$array.eachReverse(rules, (rule) => {\n\t\t\t\t\t\t\t\tconst matches = rule.tags.every((tag) => {\n\t\t\t\t\t\t\t\t\treturn themeTags.has(tag);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\t\tconst result = $array.getFirstSortedIndex(allRules, (x) => {\n\t\t\t\t\t\t\t\t\t\tconst order = $order.compare(rule.tags.length, x.tags.length);\n\n\t\t\t\t\t\t\t\t\t\tif (order === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn $order.compareArray(rule.tags, x.tags, $order.compare);\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn order;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tallRules.splice(result.index, 0, rule);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$array.each(allRules, (rule) => {\n\t\t\t\t\tthis._templates.push(rule.template);\n\t\t\t\t\trule.template._setObjectTemplate(this);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis._applyTemplates();\n\n\t\tif (isConnected) {\n\t\t\t// This causes it to only run the setup function the first time that the themes are applied\n\t\t\tthis._runSetup = false;\n\t\t}\n\n\t\treturn isConnected;\n\t}\n\n\tpublic _changed(): void { }\n\n\tpublic _beforeChanged(): void {\n\n\t\tif (this.isDirty(\"id\")) {\n\t\t\tconst id = this.get(\"id\")!;\n\t\t\tif (id) {\n\t\t\t\tif (registry.entitiesById[id]) {\n\t\t\t\t\tthrow new Error(\"An entity with id \\\"\" + id + \"\\\" already exists.\");\n\t\t\t\t}\n\t\t\t\tregistry.entitiesById[id] = this;\n\t\t\t}\n\n\t\t\tconst prevId = this._prevSettings.id;\n\t\t\tif(prevId) {\n\t\t\t\tdelete registry.entitiesById[prevId];\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged(): void { }\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\tprotected _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._removeTemplates();\n\t\tthis._disposeTemplates();\n\n\t\tthis.events.dispose();\n\n\t\tthis._disposers.forEach((x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\t$object.each(this._disposerProperties, (_, disposers) => {\n\t\t\t$array.each(disposers, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\t\t});\n\n\t\tconst id = this.get(\"id\")!;\n\t\tif (id) {\n\t\t\tdelete registry.entitiesById[id];\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a \"disposable\" timeout.\n\t *\n\t * @param fn Callback\n\t * @param delay Delay in milliseconds\n\t * @return Timeout disposer\n\t */\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\n\t\tconst id = setTimeout(() => {\n\t\t\tthis.removeDispose(disposer);\n\t\t\tfn();\n\t\t}, delay);\n\n\t\tconst disposer = new Disposer(() => {\n\t\t\tclearTimeout(id);\n\t\t});\n\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeDispose(target: IDisposer): void {\n\t\tif (!this.isDisposed()) {\n\t\t\tlet index = $array.indexOf(this._disposers, target);\n\t\t\tif (index > -1) {\n\t\t\t\tthis._disposers.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\ttarget.dispose();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hasTag(tag: string): boolean {\n\t\treturn $array.indexOf(this.get(\"themeTags\", []), tag) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addTag(tag: string): void {\n\t\tif (!this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\ttags.push(tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeTag(tag: string): void {\n\t\tif (this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\t$array.remove(tags, tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\tprotected _t(text: any, locale?: ILocale, ...rest: Array<string>){\n\t\treturn this._root.language.translate(text, locale, ...rest);\n\t}\n\n\t/**\n\t * An instance of [[Root]] object.\n\t *\n\t * @readonly\n\t * @since 5.0.6\n\t * @return Root object\n\t */\n\tpublic get root(): Root {\n\t\treturn this._root;\n\t}\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Entity.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../Root\";\nimport type { Template, ApplyState } from \"./Template\";\nimport type { Theme, IRule } from \"../Theme\";\nimport type { ILocale } from \"./Language\";\n\nimport { IDisposer, Disposer } from \"./Disposer\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { Time, IAnimation, getInterpolate } from \"./Animation\";\nimport { States } from \"./States\";\nimport { registry } from \"../Registry\";\n\nimport * as $object from \"./Object\";\nimport * as $ease from \"./Ease\";\nimport * as $array from \"./Array\";\nimport * as $order from \"./Order\";\n\n/**\n * @ignore\n */\nexport type Dirty<A> = { [K in keyof A]?: boolean };\n\n\n/**\n * Allows to dynamically modify setting value of its target element.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n */\nexport class Adapters<E extends Settings> {\n\tprivate _entity: E;\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E[\"_settings\"]>(value: O[K], target?: O, key?: K) => O[K]> } = {};\n\n\tconstructor(entity: E) {\n\t\tthis._entity = entity;\n\t}\n\n\t/**\n\t * Add a function (`callback`) that will modify value for setting `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n\t */\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: <O extends E[\"_settings\"]>(value: O[Key], target?: O, key?: Key) => O[Key]): IDisposer {\n\t\tlet callbacks = this._callbacks[key];\n\n\t\tif (callbacks === undefined) {\n\t\t\tcallbacks = this._callbacks[key] = [];\n\t\t}\n\n\t\tcallbacks.push(callback);\n\n\t\tthis._entity._markDirtyKey(key);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(callbacks!, callback);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic fold<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]): E[\"_settings\"][Key] {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tfor (let i = 0, len = callbacks.length; i < len; ++i) {\n\t\t\t\tvalue = callbacks[i](value, this._entity, key);\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\n\nexport interface IEntitySettings {\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTags?: Array<string>;\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * These tags only apply to this object, not any children.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTagsSelf?: Array<string>;\n\n\t/**\n\t * A list of themes applied to the element.\n\t */\n\tthemes?: Array<Theme>;\n\n\n\t/**\n\t * Duration of transition from one state to another.\n\t */\n\tstateAnimationDuration?:number;\n\n\t/**\n\t * Easing of transition from one state to another.\n\t */\n\tstateAnimationEasing?:$ease.Easing;\n\n\t/**\n\t * A custom string ID for the element.\n\t *\n\t * If set, element can be looked up via `am5.registry.entitiesById`.\n\t *\n\t * Will raise error if an element with the same ID already exists.\n\t */\n\tid?: string;\n\n\t/**\n\t * A storage for any custom user data that needs to be associated with the\n\t * element.\n\t */\n\tuserData?: any;\n\n}\n\nexport interface IEntityPrivate {\n}\n\nexport interface IEntityEvents {\n}\n\n/**\n * Animation options.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport interface AnimationOptions<Key, Value> {\n\n\t/**\n\t * A setting key to animate value for.\n\t */\n\tkey: Key,\n\n\t/**\n\t * Initial value to animate from. If not set, will use current value.\n\t */\n\tfrom?: Value;\n\n\t/**\n\t * Target value to animate to.\n\t */\n\tto: Value;\n\n\t/**\n\t * Animation duration in milliseconds.\n\t */\n\tduration: number;\n\n\t/**\n\t * Easing function. Defaults to linear.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\teasing?: $ease.Easing;\n\n\t/**\n\t * How many times to play the animation. Defaults to 1.\n\t */\n\tloops?: number;\n}\n\nexport interface IAnimationEvents {\n\t/**\n\t * Invoked when animation was stopped, which happens in these situations:\n\t * 1. When the animation reached the end.\n\t * 2. When the `stop()` method is called.\n\t * 3. When a new animation starts for the same key.\n\t * 4. When calling `set` for the same key.\n\t */\n\tstopped: {};\n}\n\n/**\n * Animation object.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport class Animation<Value> {\n\tprivate _from: Value;\n\tprivate _to: Value;\n\tprivate _duration: number;\n\tprivate _easing: $ease.Easing;\n\tprivate _loops: number;\n\tprivate _interpolate: <A extends Value>(diff: Time, from: A, to: A) => A;\n\tprivate _oldTime: number | null;\n\tprivate _time: number = 0;\n\n\tpublic _stopped: boolean = false;\n\tpublic _playing: boolean = true;\n\n\tpublic events: EventDispatcher<Events<this, IAnimationEvents>> = new EventDispatcher();\n\n\tconstructor(from: Value, to: Value, duration: number, easing: $ease.Easing, loops: number, startingTime: number | null) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._duration = duration;\n\t\tthis._easing = easing;\n\t\tthis._loops = loops;\n\t\tthis._interpolate = getInterpolate(from, to);\n\t\tthis._oldTime = startingTime;\n\t}\n\n\tpublic get to() {\n\t\treturn this._to;\n\t}\n\n\tpublic get from() {\n\t\treturn this._from;\n\t}\n\n\tpublic get playing() {\n\t\treturn this._playing;\n\t}\n\n\tpublic get stopped() {\n\t\treturn this._stopped;\n\t}\n\n\tpublic stop(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._stopped = true;\n\t\t\tthis._playing = false;\n\n\t\t\tif (this.events.isEnabled(\"stopped\")) {\n\t\t\t\tthis.events.dispatch(\"stopped\", {\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic pause(): void {\n\t\tthis._playing = false;\n\t\tthis._oldTime = null;\n\t}\n\n\tpublic play(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._playing = true;\n\t\t}\n\t}\n\n\tpublic get percentage(): Time {\n\t\treturn this._time / this._duration;\n\t}\n\n\tpublic waitForStop(): Promise<void> {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tif (this._stopped) {\n\t\t\t\tresolve();\n\n\t\t\t} else {\n\t\t\t\tconst listener = () => {\n\t\t\t\t\tstopped.dispose();\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst stopped = this.events.on(\"stopped\", listener);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic _checkEnded(): boolean {\n\t\tif (this._loops > 1) {\n\t\t\t--this._loops;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic _run(currentTime: number): void {\n\t\tif (this._oldTime !== null) {\n\t\t\tthis._time += currentTime - this._oldTime;\n\n\t\t\tif (this._time > this._duration) {\n\t\t\t\tthis._time = this._duration;\n\t\t\t}\n\t\t}\n\n\t\tthis._oldTime = currentTime;\n\t}\n\n\tpublic _reset(currentTime: number): void {\n\t\tthis._oldTime = currentTime;\n\t\tthis._time = 0;\n\t}\n\n\tpublic _value(diff: Time): Value {\n\t\treturn this._interpolate(this._easing(diff), this._from, this._to);\n\t}\n}\n\ntype Animated<P> = { [K in keyof P]?: Animation<P[K]> };\n\n\n/**\n * @ignore\n */\nlet counter = 0;\n\n/**\n * Base class for [[Entity]] objects that support Settings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n */\nexport abstract class Settings implements IDisposer, IAnimation {\n\n\t/**\n\t * Unique ID.\n\t */\n\tpublic uid: number = ++counter;\n\n\tpublic _settings: {};\n\tpublic _privateSettings: {} = {};\n\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\n\tpublic _prevSettings: this[\"_settings\"] = {};\n\tpublic _prevPrivateSettings: this[\"_privateSettings\"] = {};\n\n\tprotected _animatingSettings: Animated<this[\"_settings\"]> = {};\n\tprotected _animatingPrivateSettings: Animated<this[\"_privateSettings\"]> = {};\n\tprotected _animatingCount: number = 0;\n\n\tprivate _disposed: boolean = false;\n\n\t// TODO move this into Entity\n\tprotected _userProperties: Dirty<this[\"_settings\"]> = {};\n\n\tconstructor(settings: Settings[\"_settings\"]) {\n\t\tthis._settings = settings;\n\t}\n\n\tprotected _checkDirty(): void {\n\t\t$object.keys(this._settings).forEach((key) => {\n\t\t\t(this._userProperties as any)[key] = true;\n\t\t\tthis._markDirtyKey(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract markDirty(): void;\n\n\tpublic _runAnimation(currentTime: number): boolean {\n\t\tif (!this.isDisposed()) {\n\t\t\t$object.each(this._animatingSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimation(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.set(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._set(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._set(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._animatingPrivateSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimationPrivate(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.setPrivate(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._setPrivate(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._setPrivate(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this._animatingCount < 0) {\n\t\t\t\tthrow new Error(\"Invalid animation count\");\n\t\t\t}\n\n\t\t\treturn this._animatingCount === 0;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprotected abstract _startAnimation(): void;\n\tprotected abstract _animationTime(): number | null;\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of settings changes\n\t * or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @param key Settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._settingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._settingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._settingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of private settings\n\t * changes or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @ignore\n\t * @param key Private settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._privateSettingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._privateSettingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._privateSettingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._settings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` ios returned instead (if set)/\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return {any} Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\treturn this.getRaw(key, fallback);\n\t}\n\n\tprotected _sendKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._settingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _sendPrivateKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._privateSettingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevSettings[key] = old;\n\t\tthis._sendKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\t}\n\n\n\tprotected _stopAnimation<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst animation = this._animatingSettings[key];\n\n\t\tif (animation) {\n\t\t\tdelete this._animatingSettings[key];\n\t\t\t--this._animatingCount;\n\t\t\tanimation.stop();\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._set(key, value);\n\t\tthis._stopAnimation(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tif (key in this._settings) {\n\t\t\tthis._prevSettings[key] = (<any>this._settings)[key];\n\n\t\t\tdelete (<any>this._settings)[key];\n\n\t\t\tthis._sendKeyEvent(key, undefined as any);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\n\t\tthis._stopAnimation(key);\n\t}\n\n\t/**\n\t * Removes all keys;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t */\n\tpublic removeAll(): void {\n\t\t$array.each($object.keys(this._settings), (key) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\n\t/**\n\t * Returns a value of a private setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/#Private_settings} for more info\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._privateSettings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevPrivateSettings[key] = old;\n\t\tthis._sendPrivateKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\t}\n\n\tprotected _stopAnimationPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tconst animation = this._animatingPrivateSettings[key];\n\n\t\tif (animation) {\n\t\t\tanimation.stop();\n\t\t\tdelete this._animatingPrivateSettings[key];\n\t\t\t--this._animatingCount;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._setPrivate(key, value);\n\t\tthis._stopAnimationPrivate(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tif (key in this._privateSettings) {\n\t\t\tthis._prevPrivateSettings[key] = (<any>this._privateSettings)[key];\n\n\t\t\tdelete (<any>this._privateSettings)[key];\n\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\n\t\tthis._stopAnimationPrivate(key);\n\t}\n\n\t/**\n\t * Sets multiple settings at once.\n\t *\n\t * `settings` must be an object with key: value pairs.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param settings Settings\n\t */\n\tpublic setAll(settings: Partial<this[\"_settings\"]>) {\n\t\t$object.each(settings, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Animates setting values from current/start values to new ones.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_settings} for more info\n\t * @param options Animation options\n\t * @return Animation object\n\t */\n\tpublic animate<Key extends keyof this[\"_settings\"]>(options: AnimationOptions<Key, this[\"_settings\"][Key]>): Animation<this[\"_settings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.get(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.set(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.set(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.set(key, from);\n\n\t\t\t\tconst animation = this._animatingSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic animatePrivate<Key extends keyof this[\"_privateSettings\"]>(options: AnimationOptions<Key, this[\"_privateSettings\"][Key]>): Animation<this[\"_privateSettings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.getPrivate(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.setPrivate(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.setPrivate(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.setPrivate(key, from);\n\n\t\t\t\tconst animation = this._animatingPrivateSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\tprotected _dispose() {}\n\n\t/**\n\t * Returns `true` if this element is disposed.\n\t *\n\t * @return Disposed\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes this object.\n\t */\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * Base class.\n *\n * @important\n */\nexport class Entity extends Settings implements IDisposer {\n\tpublic _root: Root;\n\n\tpublic _user_id:any; // for testing purposes\n\n\tdeclare public _settings: IEntitySettings;\n\tdeclare public _privateSettings: IEntityPrivate;\n\tdeclare public _events: IEntityEvents;\n\n\tpublic states: States<this> = new States(this);\n\tpublic adapters: Adapters<this> = new Adapters(this);\n\tpublic events: EventDispatcher<Events<this, this[\"_events\"]>> = this._createEvents();\n\n\tprotected _userPrivateProperties: Dirty<this[\"_privateSettings\"]> = {};\n\n\tpublic _dirty: Dirty<this[\"_settings\"]> = {};\n\tpublic _dirtyPrivate: Dirty<this[\"_privateSettings\"]> = {};\n\n\tprotected _template: Template<this> | undefined;\n\n\t// Templates for the themes\n\tprotected _templates: Array<Template<this>> = [];\n\n\t// Internal templates which can be overridden by the user's templates\n\tprotected _internalTemplates: Array<Template<this>>;\n\n\t// Default themes which can be overridden by the user's themes\n\tpublic _defaultThemes: Array<Theme> = [];\n\n\t// Disposers for all of the templates\n\tprotected _templateDisposers: Array<IDisposer> = [];\n\n\tprotected _disposers: Array<IDisposer> = [];\n\n\t// Whether the template setup function should be run\n\tprotected _runSetup: boolean = true;\n\n\tpublic static className: string = \"Entity\";\n\tpublic static classNames: Array<string> = [\"Entity\"];\n\n\tprotected _disposerProperties: { [Key in keyof this[\"_settings\"]]?: Array<IDisposer> } = {};\n\n\t/**\n\t * IMPORTANT! Do not instantiate this class via `new Class()` syntax.\n\t *\n\t * Use static method `Class.new()` instead.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @ignore\n\t */\n\tconstructor(root: Root, settings: Entity[\"_settings\"], isReal: boolean, templates: Array<Template<Entity>> = []) {\n\t\tsuper(settings);\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\t\tthis._root = root;\n\t\tthis._internalTemplates = templates as Array<Template<this>>;\n\t}\n\n\t/**\n\t * Use this method to create an instance of this class.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @param root Root element\n\t * @param settings Settings\n\t * @param template Template\n\t * @return Instantiated object\n\t */\n\tstatic new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], template?: Template<T>): T {\n\t\tconst x = (new this(root, settings, true)) as T;\n\t\tx._template = template;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tstatic _new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], templates: Array<Template<T>> = []): T {\n\t\tconst x = (new this(root, settings, true, templates)) as T;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._checkDirty();\n\n\t\tlet shouldApply = false;\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tif (shouldApply) {\n\t\t\tthis._applyTemplates(false);\n\t\t}\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\t}\n\n\t// This is the same as _afterNew, except it also applies the themes.\n\t// This should only be used for classes which don't have a parent (because they extend from Entity and not Sprite).\n\tprotected _afterNewApplyThemes() {\n\t\tthis._checkDirty();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\n\t\tthis._applyThemes();\n\t}\n\n\tprotected _createEvents(): EventDispatcher<Events<this, this[\"_events\"]>> {\n\t\treturn new EventDispatcher();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get classNames(): Array<string> {\n\t\treturn (this.constructor as any).classNames;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get className(): string {\n\t\treturn (this.constructor as any).className;\n\t}\n\n\tprotected _setDefaults(){\n\n\t}\n\n\tpublic _setDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\t}\n\n\tpublic _setRawDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.setRaw(key, value);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tthis._dirty[key] = false;\n\t\t});\n\n\t\t$object.keys(this._dirtyPrivate).forEach((key) => {\n\t\t\tthis._dirtyPrivate[key] = false;\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDirty<Key extends keyof this[\"_settings\"]>(key: Key): boolean {\n\t\treturn !!this._dirty[key];\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isPrivateDirty<Key extends keyof this[\"_privateSettings\"]>(key: Key): boolean {\n\t\treturn !!this._dirtyPrivate[key];\n\t}\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tthis._dirty[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tthis._dirtyPrivate[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\t/**\n\t * Checks if element is of certain class (or inherits one).\n\t *\n\t * @param type Class name to check\n\t * @return {boolean} Is of class?\n\t */\n\tpublic isType<A>(type: string): this is A {\n\t\treturn this.classNames.indexOf(type) !== -1;\n\t}\n\n\tprotected _pushPropertyDisposer<Key extends keyof this[\"_settings\"], D extends IDisposer>(key: Key, disposer: D): D {\n\t\tlet disposers = this._disposerProperties[key];\n\n\t\tif (disposers === undefined) {\n\t\t\tdisposers = this._disposerProperties[key] = [];\n\t\t}\n\n\t\tdisposers.push(disposer);\n\n\t\treturn disposer;\n\t}\n\n\tprotected _disposeProperty<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst disposers = this._disposerProperties[key];\n\n\t\tif (disposers !== undefined) {\n\t\t\t$array.each(disposers!, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\n\t\t\tdelete this._disposerProperties[key];\n\t\t}\n\t}\n\n\t/**\n\t * @todo needs description\n\t * @param value Template\n\t */\n\tpublic set template(value: Template<this> | undefined) {\n\t\tconst template = this._template;\n\n\t\tif (template !== value) {\n\t\t\tthis._template = value;\n\n\t\t\tif (template) {\n\t\t\t\ttemplate._removeObjectTemplate(this);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tvalue._setObjectTemplate(this);\n\t\t\t}\n\n\t\t\tthis._applyTemplates();\n\t\t}\n\t}\n\n\tpublic get template(): Template<this> | undefined {\n\t\treturn this._template;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty() {\n\t\tthis._root._addDirtyEntity(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this._root.animationTime;\n\t}\n\n\tpublic _applyState(_name: string): void { }\n\tpublic _applyStateAnimated(_name: string, _duration?: number): void { }\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = this.adapters.fold(key, (<any>this._settings)[key]);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userProperties[key] = true;\n\t\treturn super.set(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userProperties[key] = true;\n\t\tsuper.setRaw(key, value);\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key` only if the value for this key was not set previously using set method, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic _setSoft<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tif(!this._userProperties[key]){\n\t\t\treturn super.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._userProperties[key];\n\t\tthis._removeTemplateProperty(key);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userPrivateProperties[key] = true;\n\t\treturn super.setPrivate(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userPrivateProperties[key] = true;\n\t\tsuper.setPrivateRaw(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tdelete this._userPrivateProperties[key];\n\t\tthis._removeTemplatePrivateProperty(key);\n\t}\n\n\tpublic _setTemplateProperty<Key extends keyof this[\"_settings\"]>(template: Template<this>, key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _setTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(template: Template<this>, key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplateProperty<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.set(key, match._settings[key]!);\n\n\t\t\t} else {\n\t\t\t\tsuper.remove(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.setPrivate(key, match._privateSettings[key]);\n\n\t\t\t} else {\n\t\t\t\tsuper.removePrivate(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _walkParents(f: (parent: Entity) => void): void {\n\t\tf(this._root._rootContainer);\n\t\tf(this);\n\t}\n\n\t// TODO faster version of this method which is specialized to just 1 key\n\tpublic _applyStateByKey(name: string): void {\n\t\tconst other = this.states.create(name, {});\n\t\tconst seen: Dirty<this[\"_settings\"]> = {};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tconst state = template.states.lookup(name);\n\n\t\t\tif (state) {\n\t\t\t\tstate._apply(other, seen);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(other._settings, (key) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tother.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected _applyTemplate(template: Template<this>, state: ApplyState<this>): void {\n\t\tthis._templateDisposers.push(template._apply(this, state));\n\n\t\t$object.each(template._settings, (key, value) => {\n\t\t\tif (!state.settings[key] && !this._userProperties[key]) {\n\t\t\t\tstate.settings[key] = true;\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(template._privateSettings, (key, value) => {\n\t\t\tif (!state.privateSettings[key] && !this._userPrivateProperties[key]) {\n\t\t\t\tstate.privateSettings[key] = true;\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t});\n\n\t\tif (this._runSetup && template.setup) {\n\t\t\tthis._runSetup = false;\n\t\t\ttemplate.setup(this);\n\t\t}\n\t}\n\n\t/**\n\t * Calls the closure with each template and returns the first template which is true\n\t */\n\tprotected _findStaticTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tif (this._template) {\n\t\t\tif (f(this._template)) {\n\t\t\t\treturn this._template;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _eachTemplate(f: (template: Template<this>) => void): void {\n\t\tthis._findStaticTemplate((template) => {\n\t\t\tf(template);\n\t\t\treturn false;\n\t\t});\n\n\t\t// _internalTemplates is sorted with most specific to the right\n\t\t$array.eachReverse(this._internalTemplates, f);\n\n\t\t// _templates is sorted with most specific to the left\n\t\t$array.each(this._templates, f);\n\t}\n\n\tpublic _applyTemplates(remove: boolean = true): void {\n\t\tif (remove) {\n\t\t\tthis._disposeTemplates();\n\t\t}\n\n\t\tconst state: ApplyState<this> = {\n\t\t\tsettings: {},\n\t\t\tprivateSettings: {},\n\t\t\tstates: {},\n\t\t};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tthis._applyTemplate(template, state);\n\t\t});\n\n\t\tif (remove) {\n\t\t\t$object.each(this._settings, (key) => {\n\t\t\t\tif (!this._userProperties[key] && !state.settings[key]) {\n\t\t\t\t\tsuper.remove(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._privateSettings, (key) => {\n\t\t\t\tif (!this._userPrivateProperties[key] && !state.privateSettings[key]) {\n\t\t\t\t\tsuper.removePrivate(key);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _findTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tconst value = this._findStaticTemplate(f);\n\n\t\tif (value === undefined) {\n\t\t\t// _internalTemplates is sorted with most specific to the right\n\t\t\tconst value = $array.findReverse(this._internalTemplates, f);\n\n\t\t\tif (value === undefined) {\n\t\t\t\t// _templates is sorted with most specific to the left\n\t\t\t\treturn $array.find(this._templates, f);\n\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tprotected _findTemplateByKey<Key extends keyof this[\"_settings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._settings;\n\t\t});\n\t}\n\n\tprotected _findTemplateByPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._privateSettings;\n\t\t});\n\t}\n\n\tprotected _disposeTemplates() {\n\t\t$array.each(this._templateDisposers, (disposer) => {\n\t\t\tdisposer.dispose();\n\t\t});\n\n\t\tthis._templateDisposers.length = 0;\n\t}\n\n\tprotected _removeTemplates() {\n\t\t$array.each(this._templates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._templates.length = 0;\n\t}\n\n\tpublic _applyThemes(): boolean {\n\t\tlet isConnected = false;\n\n\t\tconst defaults: Array<Array<Theme>> = [];\n\n\t\tlet themes: Array<Array<Theme>> = [];\n\n\t\tconst themeTags: Set<string> = new Set();\n\n\t\tconst tags = this.get(\"themeTagsSelf\");\n\n\t\tif (tags) {\n\t\t\t$array.each(tags, (tag) => {\n\t\t\t\tthemeTags.add(tag);\n\t\t\t});\n\t\t}\n\n\t\tthis._walkParents((entity) => {\n\t\t\tif (entity === this._root._rootContainer) {\n\t\t\t\tisConnected = true;\n\t\t\t}\n\n\t\t\tif (entity._defaultThemes.length > 0) {\n\t\t\t\tdefaults.push(entity._defaultThemes);\n\t\t\t}\n\n\t\t\tconst theme = entity.get(\"themes\");\n\n\t\t\tif (theme) {\n\t\t\t\tthemes.push(theme);\n\t\t\t}\n\n\t\t\tconst tags = entity.get(\"themeTags\");\n\n\t\t\tif (tags) {\n\t\t\t\t$array.each(tags, (tag) => {\n\t\t\t\t\tthemeTags.add(tag);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthemes = defaults.concat(themes);\n\n\t\tthis._removeTemplates();\n\n\t\tif (isConnected) {\n\t\t\t$array.eachReverse(this.classNames, (name) => {\n\t\t\t\tconst allRules: Array<IRule<this>> = [];\n\n\t\t\t\t$array.each(themes, (themes) => {\n\t\t\t\t\t$array.each(themes, (theme) => {\n\t\t\t\t\t\tconst rules = theme._lookupRules<this>(name);\n\n\t\t\t\t\t\tif (rules) {\n\t\t\t\t\t\t\t$array.eachReverse(rules, (rule) => {\n\t\t\t\t\t\t\t\tconst matches = rule.tags.every((tag) => {\n\t\t\t\t\t\t\t\t\treturn themeTags.has(tag);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\t\tconst result = $array.getFirstSortedIndex(allRules, (x) => {\n\t\t\t\t\t\t\t\t\t\tconst order = $order.compare(rule.tags.length, x.tags.length);\n\n\t\t\t\t\t\t\t\t\t\tif (order === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn $order.compareArray(rule.tags, x.tags, $order.compare);\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn order;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tallRules.splice(result.index, 0, rule);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$array.each(allRules, (rule) => {\n\t\t\t\t\tthis._templates.push(rule.template);\n\t\t\t\t\trule.template._setObjectTemplate(this);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis._applyTemplates();\n\n\t\tif (isConnected) {\n\t\t\t// This causes it to only run the setup function the first time that the themes are applied\n\t\t\tthis._runSetup = false;\n\t\t}\n\n\t\treturn isConnected;\n\t}\n\n\tpublic _changed(): void { }\n\n\tpublic _beforeChanged(): void {\n\n\t\tif (this.isDirty(\"id\")) {\n\t\t\tconst id = this.get(\"id\")!;\n\t\t\tif (id) {\n\t\t\t\tif (registry.entitiesById[id]) {\n\t\t\t\t\tthrow new Error(\"An entity with id \\\"\" + id + \"\\\" already exists.\");\n\t\t\t\t}\n\t\t\t\tregistry.entitiesById[id] = this;\n\t\t\t}\n\n\t\t\tconst prevId = this._prevSettings.id;\n\t\t\tif(prevId) {\n\t\t\t\tdelete registry.entitiesById[prevId];\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged(): void { }\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\tprotected _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._removeTemplates();\n\t\tthis._disposeTemplates();\n\n\t\tthis.events.dispose();\n\n\t\tthis._disposers.forEach((x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\t$object.each(this._disposerProperties, (_, disposers) => {\n\t\t\t$array.each(disposers, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\t\t});\n\n\t\tconst id = this.get(\"id\")!;\n\t\tif (id) {\n\t\t\tdelete registry.entitiesById[id];\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a \"disposable\" timeout.\n\t *\n\t * @param fn Callback\n\t * @param delay Delay in milliseconds\n\t * @return Timeout disposer\n\t */\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\n\t\tconst id = setTimeout(() => {\n\t\t\tthis.removeDispose(disposer);\n\t\t\tfn();\n\t\t}, delay);\n\n\t\tconst disposer = new Disposer(() => {\n\t\t\tclearTimeout(id);\n\t\t});\n\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeDispose(target: IDisposer): void {\n\t\tif (!this.isDisposed()) {\n\t\t\tlet index = $array.indexOf(this._disposers, target);\n\t\t\tif (index > -1) {\n\t\t\t\tthis._disposers.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\ttarget.dispose();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hasTag(tag: string): boolean {\n\t\treturn $array.indexOf(this.get(\"themeTags\", []), tag) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addTag(tag: string): void {\n\t\tif (!this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\ttags.push(tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeTag(tag: string): void {\n\t\tif (this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\t$array.remove(tags, tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\tprotected _t(text: any, locale?: ILocale, ...rest: Array<string>){\n\t\treturn this._root.language.translate(text, locale, ...rest);\n\t}\n\n\t/**\n\t * An instance of [[Root]] object.\n\t *\n\t * @readonly\n\t * @since 5.0.6\n\t * @return Root object\n\t */\n\tpublic get root(): Root {\n\t\treturn this._root;\n\t}\n\n}\n"]}
|
|
@@ -10,27 +10,12 @@
|
|
|
10
10
|
* The Percent object, can be instantiated using two ways:
|
|
11
11
|
*
|
|
12
12
|
* * Via `new Percent(X)`.
|
|
13
|
-
* * Via `
|
|
13
|
+
* * Via `am5.percent(X)`.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* chart.paddingRight = new Percent(10);
|
|
20
|
-
* // or
|
|
21
|
-
* chart.paddingRight = am4core.percent(10);
|
|
22
|
-
* ```
|
|
23
|
-
* ```JavaScript
|
|
24
|
-
* chart.paddingRight = new Percent(10);
|
|
25
|
-
* // or
|
|
26
|
-
* chart.paddingRight = am4core.percent(10);
|
|
27
|
-
* ```
|
|
28
|
-
* ```JSON
|
|
29
|
-
* {
|
|
30
|
-
* // ...
|
|
31
|
-
* "paddingRight": "10%"
|
|
32
|
-
* }
|
|
33
|
-
* ```
|
|
15
|
+
* You can also use shortcut functions for `0%`, `50%`, and `100%`:
|
|
16
|
+
* * `am5.p0`
|
|
17
|
+
* * `am5.p50`
|
|
18
|
+
* * `am5.p1000`
|
|
34
19
|
*/
|
|
35
20
|
export declare class Percent {
|
|
36
21
|
/**
|
|
@@ -52,25 +37,25 @@ export declare class Percent {
|
|
|
52
37
|
*
|
|
53
38
|
* ```TypeScript
|
|
54
39
|
* let value = 256;
|
|
55
|
-
* let percent = new
|
|
40
|
+
* let percent = new am5.p50;
|
|
56
41
|
* console.log(value * percent.value); // outputs 128
|
|
57
42
|
* ```
|
|
58
43
|
* ```JavaScript
|
|
59
44
|
* var value = 256;
|
|
60
|
-
* var percent = new
|
|
45
|
+
* var percent = new am5.p50;
|
|
61
46
|
* console.log(value * percent.value); // outputs 128
|
|
62
47
|
* ```
|
|
63
48
|
*
|
|
64
|
-
* Alternatively, you can use `
|
|
49
|
+
* Alternatively, you can use `am5.percent()` helper function:
|
|
65
50
|
*
|
|
66
51
|
* ```TypeScript
|
|
67
52
|
* let value = 256;
|
|
68
|
-
* let percent =
|
|
53
|
+
* let percent = am5.p50;
|
|
69
54
|
* console.log(value * percent.value); // outputs 128
|
|
70
55
|
* ```
|
|
71
56
|
* ```JavaScript
|
|
72
57
|
* var value = 256;
|
|
73
|
-
* var percent =
|
|
58
|
+
* var percent = am5.p50;
|
|
74
59
|
* console.log(value * percent.value); // outputs 128
|
|
75
60
|
* ```
|
|
76
61
|
*
|
|
@@ -92,18 +77,27 @@ export declare class Percent {
|
|
|
92
77
|
* Converts numeric percent value to a proper [[Percent]] object.
|
|
93
78
|
*
|
|
94
79
|
* ```TypeScript
|
|
95
|
-
* pieSeries.radius
|
|
80
|
+
* pieSeries.set("radius", am5.percent(80));
|
|
96
81
|
* ```
|
|
97
82
|
* ```JavaScript
|
|
98
|
-
* pieSeries.radius
|
|
83
|
+
* pieSeries.set("radius", am5.percent(80));
|
|
99
84
|
* ```
|
|
100
85
|
*
|
|
101
86
|
* @param value Percent
|
|
102
87
|
* @return Percent object
|
|
103
88
|
*/
|
|
104
89
|
export declare function percent(value: number): Percent;
|
|
90
|
+
/**
|
|
91
|
+
* A shortcut function to `am5.percent(0)`.
|
|
92
|
+
*/
|
|
105
93
|
export declare const p0: Percent;
|
|
94
|
+
/**
|
|
95
|
+
* A shortcut function to `am5.percent(100)`.
|
|
96
|
+
*/
|
|
106
97
|
export declare const p100: Percent;
|
|
98
|
+
/**
|
|
99
|
+
* A shortcut function to `am5.percent(50)`.
|
|
100
|
+
*/
|
|
107
101
|
export declare const p50: Percent;
|
|
108
102
|
/**
|
|
109
103
|
* Checks if value is a [[Percent]] object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Percent.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Percent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH
|
|
1
|
+
{"version":3,"file":"Percent.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Percent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO;IAEnB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;gBACS,OAAO,EAAE,MAAM;IAI3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,QAAQ,IAAI,MAAM;IAIlB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIpD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;CAkB9E;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;GAEG;AACH,eAAO,MAAM,EAAE,SAAa,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,IAAI,SAAe,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,GAAG,SAAc,CAAC;AAG/B;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE7C"}
|
|
@@ -10,27 +10,12 @@
|
|
|
10
10
|
* The Percent object, can be instantiated using two ways:
|
|
11
11
|
*
|
|
12
12
|
* * Via `new Percent(X)`.
|
|
13
|
-
* * Via `
|
|
13
|
+
* * Via `am5.percent(X)`.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* chart.paddingRight = new Percent(10);
|
|
20
|
-
* // or
|
|
21
|
-
* chart.paddingRight = am4core.percent(10);
|
|
22
|
-
* ```
|
|
23
|
-
* ```JavaScript
|
|
24
|
-
* chart.paddingRight = new Percent(10);
|
|
25
|
-
* // or
|
|
26
|
-
* chart.paddingRight = am4core.percent(10);
|
|
27
|
-
* ```
|
|
28
|
-
* ```JSON
|
|
29
|
-
* {
|
|
30
|
-
* // ...
|
|
31
|
-
* "paddingRight": "10%"
|
|
32
|
-
* }
|
|
33
|
-
* ```
|
|
15
|
+
* You can also use shortcut functions for `0%`, `50%`, and `100%`:
|
|
16
|
+
* * `am5.p0`
|
|
17
|
+
* * `am5.p50`
|
|
18
|
+
* * `am5.p1000`
|
|
34
19
|
*/
|
|
35
20
|
var Percent = /** @class */ (function () {
|
|
36
21
|
/**
|
|
@@ -60,25 +45,25 @@ var Percent = /** @class */ (function () {
|
|
|
60
45
|
*
|
|
61
46
|
* ```TypeScript
|
|
62
47
|
* let value = 256;
|
|
63
|
-
* let percent = new
|
|
48
|
+
* let percent = new am5.p50;
|
|
64
49
|
* console.log(value * percent.value); // outputs 128
|
|
65
50
|
* ```
|
|
66
51
|
* ```JavaScript
|
|
67
52
|
* var value = 256;
|
|
68
|
-
* var percent = new
|
|
53
|
+
* var percent = new am5.p50;
|
|
69
54
|
* console.log(value * percent.value); // outputs 128
|
|
70
55
|
* ```
|
|
71
56
|
*
|
|
72
|
-
* Alternatively, you can use `
|
|
57
|
+
* Alternatively, you can use `am5.percent()` helper function:
|
|
73
58
|
*
|
|
74
59
|
* ```TypeScript
|
|
75
60
|
* let value = 256;
|
|
76
|
-
* let percent =
|
|
61
|
+
* let percent = am5.p50;
|
|
77
62
|
* console.log(value * percent.value); // outputs 128
|
|
78
63
|
* ```
|
|
79
64
|
* ```JavaScript
|
|
80
65
|
* var value = 256;
|
|
81
|
-
* var percent =
|
|
66
|
+
* var percent = am5.p50;
|
|
82
67
|
* console.log(value * percent.value); // outputs 128
|
|
83
68
|
* ```
|
|
84
69
|
*
|
|
@@ -144,10 +129,10 @@ export { Percent };
|
|
|
144
129
|
* Converts numeric percent value to a proper [[Percent]] object.
|
|
145
130
|
*
|
|
146
131
|
* ```TypeScript
|
|
147
|
-
* pieSeries.radius
|
|
132
|
+
* pieSeries.set("radius", am5.percent(80));
|
|
148
133
|
* ```
|
|
149
134
|
* ```JavaScript
|
|
150
|
-
* pieSeries.radius
|
|
135
|
+
* pieSeries.set("radius", am5.percent(80));
|
|
151
136
|
* ```
|
|
152
137
|
*
|
|
153
138
|
* @param value Percent
|
|
@@ -156,8 +141,17 @@ export { Percent };
|
|
|
156
141
|
export function percent(value) {
|
|
157
142
|
return new Percent(value);
|
|
158
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* A shortcut function to `am5.percent(0)`.
|
|
146
|
+
*/
|
|
159
147
|
export var p0 = percent(0);
|
|
148
|
+
/**
|
|
149
|
+
* A shortcut function to `am5.percent(100)`.
|
|
150
|
+
*/
|
|
160
151
|
export var p100 = percent(100);
|
|
152
|
+
/**
|
|
153
|
+
* A shortcut function to `am5.percent(50)`.
|
|
154
|
+
*/
|
|
161
155
|
export var p50 = percent(50);
|
|
162
156
|
/**
|
|
163
157
|
* Checks if value is a [[Percent]] object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Percent.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Percent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH
|
|
1
|
+
{"version":3,"file":"Percent.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Percent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;GAYG;AACH;IAOC;;;;OAIG;IACH,iBAAY,OAAe;QAV3B;;WAEG;QACH;;;;;WAAyB;QAQxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACvB,CAAC;IAoCD,sBAAW,0BAAK;QAlChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAiCG;aACH;YACC,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAC1B,CAAC;;;OAAA;IAOD,sBAAW,4BAAO;QALlB;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;;;OAAA;;;;;eAED;YACC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAC/B,CAAC;;;;;;eAED,UAAmB,GAAW,EAAE,GAAW;YAC1C,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;;;;;;eAED,UAAiB,OAAyB,EAAE,GAAW,EAAE,GAAW;YACnE,IAAI,OAAO,YAAY,OAAO,EAAE;gBAC/B,OAAO,OAAO,CAAC;aAEf;iBAAM;gBACN,IAAI,GAAG,KAAK,GAAG,EAAE;oBAChB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;iBAEtB;qBAAM;oBACN,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;iBACxF;aACD;QACF,CAAC;;IAMF,cAAC;AAAD,CAAC,AAzFD,IAyFC;;AAGD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACpC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,IAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,IAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAG/B;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IACnC,OAAO,KAAK,YAAY,OAAO,CAAC;AACjC,CAAC","sourcesContent":["/**\n * ============================================================================\n * MAIN CLASS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Represents a relative value (percent).\n *\n * The Percent object, can be instantiated using two ways:\n *\n * * Via `new Percent(X)`.\n * * Via `am5.percent(X)`.\n *\n * You can also use shortcut functions for `0%`, `50%`, and `100%`:\n * * `am5.p0`\n * * `am5.p50`\n * * `am5.p1000`\n */\nexport class Percent {\n\n\t/**\n\t * Value in percent.\n\t */\n\tprotected _value: number;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param percent Percent value\n\t */\n\tconstructor(percent: number) {\n\t\tthis._value = percent;\n\t}\n\n\t/**\n\t * Relative value.\n\t *\n\t * E.g. 100% is 1, 50% is 0.5, etc.\n\t *\n\t * This is useful to apply transformations to other values. E.g.:\n\t *\n\t * ```TypeScript\n\t * let value = 256;\n\t * let percent = new am5.p50;\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t * ```JavaScript\n\t * var value = 256;\n\t * var percent = new am5.p50;\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t *\n\t * Alternatively, you can use `am5.percent()` helper function:\n\t *\n\t * ```TypeScript\n\t * let value = 256;\n\t * let percent = am5.p50;\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t * ```JavaScript\n\t * var value = 256;\n\t * var percent = am5.p50;\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t *\n\t * @readonly\n\t * @return Relative value\n\t */\n\tpublic get value(): number {\n\t\treturn this._value / 100;\n\t}\n\n\t/**\n\t * Value in percent.\n\t *\n\t * @return Percent\n\t */\n\tpublic get percent(): number {\n\t\treturn this._value;\n\t}\n\n\tpublic toString(): string {\n\t\treturn \"\" + this._value + \"%\";\n\t}\n\n\tpublic interpolate(min: number, max: number): number {\n\t\treturn min + (this.value * (max - min));\n\t}\n\n\tstatic normalize(percent: Percent | number, min: number, max: number): Percent {\n\t\tif (percent instanceof Percent) {\n\t\t\treturn percent;\n\n\t\t} else {\n\t\t\tif (min === max) {\n\t\t\t\treturn new Percent(0);\n\n\t\t\t} else {\n\t\t\t\treturn new Percent(Math.min(Math.max((percent - min) * (1 / (max - min)), 0), 1) * 100);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*public toNumber(): number {\n\t\treturn this.percent;\n\t}*/\n\n}\n\n\n/**\n * Converts numeric percent value to a proper [[Percent]] object.\n *\n * ```TypeScript\n * pieSeries.set(\"radius\", am5.percent(80));\n * ```\n * ```JavaScript\n * pieSeries.set(\"radius\", am5.percent(80));\n * ```\n *\n * @param value Percent\n * @return Percent object\n */\nexport function percent(value: number): Percent {\n\treturn new Percent(value);\n}\n\n/**\n * A shortcut function to `am5.percent(0)`.\n */\nexport const p0 = percent(0);\n\n/**\n * A shortcut function to `am5.percent(100)`.\n */\nexport const p100 = percent(100);\n\n/**\n * A shortcut function to `am5.percent(50)`.\n */\nexport const p50 = percent(50);\n\n\n/**\n * Checks if value is a [[Percent]] object.\n *\n * @ignore Exclude from docs\n * @param value Input value\n * @return Is percent?\n */\nexport function isPercent(value: any): boolean {\n\treturn value instanceof Percent;\n}\n"]}
|