@amcharts/amcharts5 5.10.6 → 5.10.7

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.
Files changed (148) hide show
  1. package/.internal/core/Registry.js +1 -1
  2. package/.internal/core/Registry.js.map +1 -1
  3. package/.internal/core/util/Template.js +1 -1
  4. package/.internal/core/util/Template.js.map +1 -1
  5. package/CHANGELOG.md +6 -0
  6. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  7. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  8. package/examples/javascript/flow-chord/package.json +1 -1
  9. package/examples/javascript/flow-chord-directed/package.json +1 -1
  10. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  11. package/examples/javascript/flow-sankey/package.json +1 -1
  12. package/examples/javascript/gauge/package.json +1 -1
  13. package/examples/javascript/gauge-bands/package.json +1 -1
  14. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  15. package/examples/javascript/hierarchy-pack/package.json +1 -1
  16. package/examples/javascript/hierarchy-partition/package.json +1 -1
  17. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  18. package/examples/javascript/hierarchy-tree/package.json +1 -1
  19. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  20. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  21. package/examples/javascript/jest/package.json +1 -1
  22. package/examples/javascript/json-pie/package.json +1 -1
  23. package/examples/javascript/json-xy/package.json +1 -1
  24. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  25. package/examples/javascript/map-clustered-points/package.json +1 -1
  26. package/examples/javascript/map-day-and-night/package.json +1 -1
  27. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  28. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  29. package/examples/javascript/map-with-bubbles/package.json +1 -1
  30. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  31. package/examples/javascript/misc-40-charts/package.json +1 -1
  32. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  33. package/examples/javascript/pie-chart/package.json +1 -1
  34. package/examples/javascript/pie-donut-chart/package.json +1 -1
  35. package/examples/javascript/pie-variable-radius/package.json +1 -1
  36. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  37. package/examples/javascript/radar-heat-map/package.json +1 -1
  38. package/examples/javascript/radar-line/package.json +1 -1
  39. package/examples/javascript/radar-time-line/package.json +1 -1
  40. package/examples/javascript/sliced-funnel/package.json +1 -1
  41. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  42. package/examples/javascript/sliced-pyramid/package.json +1 -1
  43. package/examples/javascript/stock-chart/package.json +1 -1
  44. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  45. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  46. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  47. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  48. package/examples/javascript/stock-chart-live/package.json +1 -1
  49. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  50. package/examples/javascript/venn-diagram/package.json +1 -1
  51. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  52. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  53. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  54. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  55. package/examples/javascript/xy-bubble/package.json +1 -1
  56. package/examples/javascript/xy-candlestick/package.json +1 -1
  57. package/examples/javascript/xy-clustered-column/package.json +1 -1
  58. package/examples/javascript/xy-column/package.json +1 -1
  59. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  60. package/examples/javascript/xy-data-grouping/package.json +1 -1
  61. package/examples/javascript/xy-draggable-range/package.json +1 -1
  62. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  63. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  64. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  65. package/examples/javascript/xy-line/package.json +1 -1
  66. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  67. package/examples/javascript/xy-live-data/package.json +1 -1
  68. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  69. package/examples/javascript/xy-ohlc/package.json +1 -1
  70. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  71. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  72. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  73. package/examples/javascript/xy-stacked-column/package.json +1 -1
  74. package/examples/javascript/xy-stacked-step/package.json +1 -1
  75. package/examples/javascript/xy-stock/package.json +1 -1
  76. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  77. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  78. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  79. package/examples/typescript/flow-chord/package.json +1 -1
  80. package/examples/typescript/flow-chord-directed/package.json +1 -1
  81. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  82. package/examples/typescript/flow-sankey/package.json +1 -1
  83. package/examples/typescript/gauge/package.json +1 -1
  84. package/examples/typescript/gauge-bands/package.json +1 -1
  85. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  86. package/examples/typescript/hierarchy-pack/package.json +1 -1
  87. package/examples/typescript/hierarchy-partition/package.json +1 -1
  88. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  89. package/examples/typescript/hierarchy-tree/package.json +1 -1
  90. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  91. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  92. package/examples/typescript/jest/package.json +1 -1
  93. package/examples/typescript/json-pie/package.json +1 -1
  94. package/examples/typescript/json-xy/package.json +1 -1
  95. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  96. package/examples/typescript/map-clustered-points/package.json +1 -1
  97. package/examples/typescript/map-day-and-night/package.json +1 -1
  98. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  99. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  100. package/examples/typescript/map-with-bubbles/package.json +1 -1
  101. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  102. package/examples/typescript/misc-40-charts/package.json +1 -1
  103. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  104. package/examples/typescript/pie-chart/package.json +1 -1
  105. package/examples/typescript/pie-donut-chart/package.json +1 -1
  106. package/examples/typescript/pie-variable-radius/package.json +1 -1
  107. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  108. package/examples/typescript/radar-heat-map/package.json +1 -1
  109. package/examples/typescript/radar-line/package.json +1 -1
  110. package/examples/typescript/radar-time-line/package.json +1 -1
  111. package/examples/typescript/sliced-funnel/package.json +1 -1
  112. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  113. package/examples/typescript/sliced-pyramid/package.json +1 -1
  114. package/examples/typescript/stock-chart/package.json +1 -1
  115. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  116. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  117. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  118. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  119. package/examples/typescript/stock-chart-live/package.json +1 -1
  120. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  121. package/examples/typescript/venn-diagram/package.json +1 -1
  122. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  123. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  124. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  125. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  126. package/examples/typescript/xy-bubble/package.json +1 -1
  127. package/examples/typescript/xy-candlestick/package.json +1 -1
  128. package/examples/typescript/xy-clustered-column/package.json +1 -1
  129. package/examples/typescript/xy-column/package.json +1 -1
  130. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  131. package/examples/typescript/xy-data-grouping/package.json +1 -1
  132. package/examples/typescript/xy-draggable-range/package.json +1 -1
  133. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  134. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  135. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  136. package/examples/typescript/xy-line/package.json +1 -1
  137. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  138. package/examples/typescript/xy-live-data/package.json +1 -1
  139. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  140. package/examples/typescript/xy-ohlc/package.json +1 -1
  141. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  142. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  143. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  144. package/examples/typescript/xy-stacked-column/package.json +1 -1
  145. package/examples/typescript/xy-stacked-step/package.json +1 -1
  146. package/examples/typescript/xy-stock/package.json +1 -1
  147. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  148. package/package.json +1 -1
@@ -10,7 +10,7 @@ export class Registry {
10
10
  enumerable: true,
11
11
  configurable: true,
12
12
  writable: true,
13
- value: "5.10.6"
13
+ value: "5.10.7"
14
14
  });
15
15
  /**
16
16
  * List of applied licenses.
@@ -1 +1 @@
1
- {"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/.internal/core/Registry.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACC;;WAEG;QACH;;;;mBAA2B,QAAQ;WAAC;QAEpC;;;WAGG;QACH;;;;mBAAqB,EAAE;WAAC;QAExB;;WAEG;QACH;;;;mBAAyC,EAAE;WAAC;QAE5C;;WAEG;QACH;;;;mBAAsB,EAAE;WAAC;IAE1B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,IAAI,CAAC;IACT,OAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KACf;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACrC,IAAI,KAAK,CAAC;IACV,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC;SACb;IACF,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["\r\n/**\r\n * @ignore\r\n */\r\nexport class Registry {\r\n\t/**\r\n\t * Currently running version of amCharts.\r\n\t */\r\n\treadonly version: string = \"5.10.6\";\r\n\r\n\t/**\r\n\t * List of applied licenses.\r\n\t * @ignore\r\n\t */\r\n\tlicenses: String[] = [];\r\n\r\n\t/**\r\n\t * Entities that have their `id` setting set.\r\n\t */\r\n\tentitiesById: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * All created [[Root]] elements.\r\n\t */\r\n\trootElements: any[] = [];\r\n\r\n}\r\n\r\n/**\r\n\t* @ignore\r\n */\r\nexport const registry = new Registry();\r\n\r\n/**\r\n * Adds a license, e.g.:\r\n *\r\n * ```TypeScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n * ```JavaScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n *\r\n * Multiple licenses can be added to cover for multiple products.\r\n *\r\n * @param license License key\r\n */\r\nexport function addLicense(license: string): void {\r\n\tregistry.licenses.push(license);\r\n}\r\n\r\n\r\n/**\r\n * Disposes all [[Root]] elements.\r\n */\r\nexport function disposeAllRootElements(): void {\r\n\tlet root;\r\n\twhile(root = registry.rootElements.pop()) {\r\n\t\troot.dispose();\r\n\t}\r\n}\r\n\r\n/**\r\n * Finds and returns a `Root` element assigned to a container with `id`.\r\n * \r\n * @param id Container ID\r\n * @return Root\r\n * @since 5.9.2\r\n */\r\nexport function getRootById(id: string): any {\r\n\tlet found;\r\n\tregistry.rootElements.forEach((item) => {\r\n\t\tif (item.dom.id == id) {\r\n\t\t\tfound = item;\r\n\t\t}\r\n\t});\r\n\treturn found;\r\n}"]}
1
+ {"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/.internal/core/Registry.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACC;;WAEG;QACH;;;;mBAA2B,QAAQ;WAAC;QAEpC;;;WAGG;QACH;;;;mBAAqB,EAAE;WAAC;QAExB;;WAEG;QACH;;;;mBAAyC,EAAE;WAAC;QAE5C;;WAEG;QACH;;;;mBAAsB,EAAE;WAAC;IAE1B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,IAAI,CAAC;IACT,OAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KACf;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACrC,IAAI,KAAK,CAAC;IACV,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC;SACb;IACF,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["\r\n/**\r\n * @ignore\r\n */\r\nexport class Registry {\r\n\t/**\r\n\t * Currently running version of amCharts.\r\n\t */\r\n\treadonly version: string = \"5.10.7\";\r\n\r\n\t/**\r\n\t * List of applied licenses.\r\n\t * @ignore\r\n\t */\r\n\tlicenses: String[] = [];\r\n\r\n\t/**\r\n\t * Entities that have their `id` setting set.\r\n\t */\r\n\tentitiesById: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * All created [[Root]] elements.\r\n\t */\r\n\trootElements: any[] = [];\r\n\r\n}\r\n\r\n/**\r\n\t* @ignore\r\n */\r\nexport const registry = new Registry();\r\n\r\n/**\r\n * Adds a license, e.g.:\r\n *\r\n * ```TypeScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n * ```JavaScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n *\r\n * Multiple licenses can be added to cover for multiple products.\r\n *\r\n * @param license License key\r\n */\r\nexport function addLicense(license: string): void {\r\n\tregistry.licenses.push(license);\r\n}\r\n\r\n\r\n/**\r\n * Disposes all [[Root]] elements.\r\n */\r\nexport function disposeAllRootElements(): void {\r\n\tlet root;\r\n\twhile(root = registry.rootElements.pop()) {\r\n\t\troot.dispose();\r\n\t}\r\n}\r\n\r\n/**\r\n * Finds and returns a `Root` element assigned to a container with `id`.\r\n * \r\n * @param id Container ID\r\n * @return Root\r\n * @since 5.9.2\r\n */\r\nexport function getRootById(id: string): any {\r\n\tlet found;\r\n\tregistry.rootElements.forEach((item) => {\r\n\t\tif (item.dom.id == id) {\r\n\t\t\tfound = item;\r\n\t\t}\r\n\t});\r\n\treturn found;\r\n}"]}
@@ -406,7 +406,7 @@ export class Template {
406
406
  this._entities.push(entity);
407
407
  }
408
408
  _removeObjectTemplate(entity) {
409
- this._checkDisposed();
409
+ //this._checkDisposed();
410
410
  $array.remove(this._entities, entity);
411
411
  }
412
412
  _stateChanged(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"Template.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Template.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Entity, Dirty } from \"./Entity\";\nimport type { State } from \"./States\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { IDisposer, Disposer, MultiDisposer } from \"./Disposer\";\nimport * as $array from \"./Array\";\nimport * as $object from \"./Object\";\nimport * as $type from \"./Type\";\n\n\nfunction disposeSettings(settings: object) {\n\t$object.each(settings, (_key, value) => {\n\t\tif ($type.isObject(value) && typeof (value as any).dispose === \"function\") {\n\t\t\t(value as any).enableDispose = true;\n\t\t\t(value as any).dispose();\n\t\t}\n\t});\n}\n\n\nexport class TemplateState<E extends Entity> {\n\tpublic _settings: Partial<E[\"_settings\"]>;\n\n\tprivate _name: string;\n\tprivate _template: Template<E>;\n\n\tconstructor(name: string, template: Template<E>, settings: Partial<E[\"_settings\"]>) {\n\t\tthis._name = name;\n\t\tthis._template = template;\n\t\tthis._settings = settings;\n\t}\n\n\tpublic _dispose() {\n\t\tdisposeSettings(this._settings);\n\t}\n\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\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, fallback?: any): any {\n\t\tconst value = 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\tpublic set<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]) {\n\t\tthis._settings[key] = value;\n\t\t// TODO maybe only do this if the value changed ?\n\t\tthis._template._stateChanged(this._name);\n\t}\n\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._settings[key];\n\t\t// TODO maybe only do this if the value changed ?\n\t\tthis._template._stateChanged(this._name);\n\t}\n\n\tpublic setAll(settings: this[\"_settings\"]) {\n\t\t$object.keys(settings).forEach((key) => {\n\t\t\tthis._settings[key] = settings[key];\n\t\t});\n\n\t\tthis._template._stateChanged(this._name);\n\t}\n\n\tpublic _apply(other: State<E>, seen: Dirty<E[\"_settings\"]>): void {\n\t\t$object.each(this._settings, (key, value) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tseen[key] = true;\n\t\t\t\tother.setRaw(key, value);\n\t\t\t}\n\t\t});\n\t}\n}\n\n\nexport class TemplateStates<E extends Entity> {\n\tprivate _template: Template<E>;\n\tprivate _states: { [key: string]: TemplateState<E> } = {};\n\n\tconstructor(template: Template<E>) {\n\t\tthis._template = template;\n\t}\n\n\tpublic _dispose() {\n\t\t$object.each(this._states, (_key, state) => {\n\t\t\tstate._dispose();\n\t\t});\n\t}\n\n\tpublic lookup(name: string): TemplateState<E> | undefined {\n\t\treturn this._states[name];\n\t}\n\n\tpublic create(name: string, settings: Partial<E[\"_settings\"]>): TemplateState<E> {\n\t\tconst state = this._states[name];\n\n\t\tif (state) {\n\t\t\tstate.setAll(settings);\n\t\t\treturn state;\n\n\t\t} else {\n\t\t\tconst state = new TemplateState(name, this._template, settings);\n\t\t\tthis._states[name] = state;\n\t\t\tthis._template._stateChanged(name);\n\t\t\treturn state;\n\t\t}\n\t}\n\n\tpublic remove(name: string) {\n\t\tdelete this._states[name];\n\t\tthis._template._stateChanged(name);\n\t}\n\n\tpublic _apply(entity: E, state: ApplyState<E>): void {\n\t\t$object.each(this._states, (key, value) => {\n\t\t\tlet seen = state.states[key];\n\n\t\t\tif (seen == null) {\n\t\t\t\tseen = state.states[key] = {};\n\t\t\t}\n\n\t\t\tconst other = entity.states.create(key as string, {});\n\t\t\tvalue._apply(other, seen);\n\t\t});\n\t}\n}\n\n\nexport class TemplateAdapters<E extends Entity> {\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E>(value: O[\"_settings\"][K], target: O, key: K) => O[\"_settings\"][K]> } = {};\n\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: (value: E[\"_settings\"][Key], target: E, key: Key) => E[\"_settings\"][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\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(callbacks!, callback);\n\n\t\t\tif (callbacks!.length === 0) {\n\t\t\t\tdelete this._callbacks[key];\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic remove<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tdelete this._callbacks[key];\n\t\t}\n\t}\n\n\tpublic _apply(entity: E): IDisposer {\n\t\tconst disposers: Array<IDisposer> = [];\n\n\t\t$object.each(this._callbacks, (key, callbacks) => {\n\t\t\t$array.each(callbacks, (callback) => {\n\t\t\t\tdisposers.push(entity.adapters.add(key, callback));\n\t\t\t});\n\t\t});\n\n\t\treturn new MultiDisposer(disposers);\n\t}\n}\n\n\nexport interface ApplyState<E extends Entity> {\n\tsettings: Dirty<E[\"_settings\"]>;\n\tprivateSettings: Dirty<E[\"_privateSettings\"]>;\n\tstates: { [name: string]: Dirty<E[\"_settings\"]> };\n}\n\n\n// TODO maybe extend from Properties ?\nexport class Template<E extends Entity> implements IDisposer {\n\tprivate _disposed: boolean = false;\n\n\tpublic _settings: Partial<E[\"_settings\"]>;\n\tpublic _privateSettings: E[\"_privateSettings\"] = {};\n\n\t// TODO code duplication with Properties\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K]>(value: V) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K]>(value: V) => void> } = {};\n\n\tpublic _entities: Array<E> = [];\n\n\tpublic readonly states: TemplateStates<E> = new TemplateStates(this);\n\n\tpublic readonly adapters: TemplateAdapters<E> = new TemplateAdapters();\n\tpublic readonly events: EventDispatcher<Events<E, E[\"_events\"]>> = new EventDispatcher();\n\n\tpublic setup: (<O extends E>(entity: O) => void) | undefined;\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\tpublic static new<E extends Entity>(settings: E[\"_settings\"]): Template<E> {\n\t\treturn new Template<E>(settings, true);\n\t}\n\n\tprotected _dispose() {\n\t\tdisposeSettings(this._settings);\n\t\tdisposeSettings(this._privateSettings);\n\t}\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\tprivate _checkDisposed() {\n\t\tif (this._disposed) {\n\t\t\tthrow new Error(\"Template is disposed\");\n\t\t}\n\t}\n\n\t/**\n\t * Array of all entities using this template.\n\t */\n\tpublic get entities():Array<E>{\n\t\treturn this._entities;\n\t}\n\n\tconstructor(settings: E[\"_settings\"], isReal: boolean) {\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\n\t\tthis._settings = settings;\n\t}\n\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\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, fallback?: any): any {\n\t\tthis._checkDisposed();\n\n\t\tconst value = 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\tpublic setRaw<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tthis._checkDisposed();\n\t\tthis._settings[key] = value;\n\t}\n\n\tpublic set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tthis._checkDisposed();\n\n\t\tif (this._settings[key] !== value) {\n\t\t\tthis.setRaw(key, value);\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._setTemplateProperty(this, key, value);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tthis._checkDisposed();\n\n\t\tif (key in this._settings) {\n\t\t\tdelete this._settings[key];\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._removeTemplateProperty(key);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic removeAll(): void {\n\t\tthis._checkDisposed();\n\n\t\t$object.each(this._settings, (key, _value) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tthis._checkDisposed();\n\n\t\tconst value = 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\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._checkDisposed();\n\t\tthis._privateSettings[key] = value;\n\t\treturn value;\n\t}\n\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._checkDisposed();\n\n\t\tif (this._privateSettings[key] !== value) {\n\t\t\tthis.setPrivateRaw(key, value);\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._setTemplatePrivateProperty(this, key, value);\n\t\t\t});\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tthis._checkDisposed();\n\n\t\tif (key in this._privateSettings) {\n\t\t\tdelete this._privateSettings[key];\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._removeTemplatePrivateProperty(key);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic setAll(value: this[\"_settings\"]) {\n\t\tthis._checkDisposed();\n\n\t\t$object.each(value, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t// TODO code duplication with Properties\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: E, key?: Key) => void): IDisposer {\n\t\tthis._checkDisposed();\n\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// TODO code duplication with Properties\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: E, key?: Key) => void): IDisposer {\n\t\tthis._checkDisposed();\n\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\tpublic _apply(entity: E, state: ApplyState<E>): IDisposer {\n\t\tthis._checkDisposed();\n\n\t\tconst disposers: Array<IDisposer> = [];\n\n\t\t$object.each(this._settingEvents, (key, events) => {\n\t\t\t$array.each(events, (event) => {\n\t\t\t\tdisposers.push(entity.on(key, event));\n\t\t\t});\n\t\t});\n\n\t\t$object.each(this._privateSettingEvents, (key, events) => {\n\t\t\t$array.each(events, (event) => {\n\t\t\t\tdisposers.push(entity.onPrivate(key, event));\n\t\t\t});\n\t\t});\n\n\t\tthis.states._apply(entity, state);\n\n\t\tdisposers.push(this.adapters._apply(entity));\n\t\tdisposers.push(entity.events.copyFrom(this.events));\n\n\t\treturn new MultiDisposer(disposers);\n\t}\n\n\tpublic _setObjectTemplate(entity: E) {\n\t\tthis._checkDisposed();\n\t\tthis._entities.push(entity);\n\t}\n\n\tpublic _removeObjectTemplate(entity: E) {\n\t\tthis._checkDisposed();\n\t\t$array.remove(this._entities, entity);\n\t}\n\n\tpublic _stateChanged(name: string): void {\n\t\tthis._checkDisposed();\n\n\t\tthis._entities.forEach((entity) => {\n\t\t\tentity._applyStateByKey(name);\n\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAa,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAGhC,SAAS,eAAe,CAAC,QAAgB;IACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAQ,KAAa,CAAC,OAAO,KAAK,UAAU,EAAE;YACzE,KAAa,CAAC,aAAa,GAAG,IAAI,CAAC;YACnC,KAAa,CAAC,OAAO,EAAE,CAAC;SACzB;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAGD,MAAM,OAAO,aAAa;IAMzB,YAAY,IAAY,EAAE,QAAqB,EAAE,QAAiC;QALlF;;;;;WAA0C;QAE1C;;;;;WAAsB;QACtB;;;;;WAA+B;QAG9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACd,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAIM,GAAG,CAAsC,GAAQ,EAAE,QAAc;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,OAAO,KAAK,CAAC;SAEb;aAAM;YACN,OAAO,QAAQ,CAAC;SAChB;IACF,CAAC;IAEM,GAAG,CAAmC,GAAQ,EAAE,KAA0B;QAChF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,iDAAiD;QACjD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAsC,GAAQ;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,iDAAiD;QACjD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,QAA2B;QACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,KAAe,EAAE,IAA2B;QACzD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACjB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACzB;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAGD,MAAM,OAAO,cAAc;IAI1B,YAAY,QAAqB;QAHjC;;;;;WAA+B;QAC/B;;;;mBAAuD,EAAE;WAAC;QAGzD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1C,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,QAAiC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,KAAK,EAAE;YACV,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC;SAEb;aAAM;YACN,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;SACb;IACF,CAAC;IAEM,MAAM,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,MAAS,EAAE,KAAoB;QAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE7B,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC9B;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC;YACtD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAGD,MAAM,OAAO,gBAAgB;IAA7B;QACC;;;;mBAA+I,EAAE;WAAC;IAuCnJ,CAAC;IArCO,GAAG,CAAmC,GAAQ,EAAE,QAAkF;QACxI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC5B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACtC;QAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,WAAW,CAAC,SAAU,EAAE,QAAQ,CAAC,CAAC;YAEzC,IAAI,SAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC5B;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAmC,GAAQ;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC5B;IACF,CAAC;IAEM,MAAM,CAAC,MAAS;QACtB,MAAM,SAAS,GAAqB,EAAE,CAAC;QAEvC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;CACD;AAUD,sCAAsC;AACtC,MAAM,OAAO,QAAQ;IAqEpB,YAAY,QAAwB,EAAE,MAAe;QApErD;;;;mBAA6B,KAAK;WAAC;QAEnC;;;;;WAA0C;QAC1C;;;;mBAAiD,EAAE;WAAC;QAEpD,wCAAwC;QACxC;;;;mBAAwH,EAAE;WAAC;QAC3H;;;;mBAA+H,EAAE;WAAC;QAElI;;;;mBAA6B,EAAE;WAAC;QAEhC;;;;mBAA4C,IAAI,cAAc,CAAC,IAAI,CAAC;WAAC;QAErE;;;;mBAAgD,IAAI,gBAAgB,EAAE;WAAC;QACvE;;;;mBAAmE,IAAI,eAAe,EAAE;WAAC;QAEzF;;;;;WAA6D;QAqD5D,IAAI,CAAC,MAAM,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAxDD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAmB,QAAwB;QAC3D,OAAO,IAAI,QAAQ,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAES,QAAQ;QACjB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,UAAU;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;IACF,CAAC;IAEO,cAAc;QACrB,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACxC;IACF,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAYM,GAAG,CAAsC,GAAQ,EAAE,QAAc;QACvE,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,OAAO,KAAK,CAAC;SAEb;aAAM;YACN,OAAO,QAAQ,CAAC;SAChB;IACF,CAAC;IAEM,MAAM,CAAsC,GAAQ,EAAE,KAA6B;QACzF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAsC,GAAQ,EAAE,KAA6B;QACtF,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAExB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAEM,MAAM,CAAsC,GAAQ;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAEM,SAAS;QACf,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACJ,CAAC;IAIM,UAAU,CAA6C,GAAQ,EAAE,QAAc;QACrF,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,OAAO,KAAK,CAAC;SAEb;aAAM;YACN,OAAO,QAAQ,CAAC;SAChB;IACF,CAAC;IAEM,aAAa,CAA0F,GAAQ,EAAE,KAAY;QACnI,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnC,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,UAAU,CAA0F,GAAQ,EAAE,KAAY;QAChI,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;SACH;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,aAAa,CAA6C,GAAQ;QACxE,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAEM,MAAM,CAAC,KAAwB;QACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,wCAAwC;IACjC,EAAE,CAAsC,GAAQ,EAAE,QAAwE;QAChI,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACvC;QAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,CAAC;YAEtC,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aAChC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,wCAAwC;IACjC,SAAS,CAA6C,GAAQ,EAAE,QAA+E;QACrJ,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SAC9C;QAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,CAAC;YAEtC,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;aACvC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,MAAS,EAAE,KAAoB;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,SAAS,GAAqB,EAAE,CAAC;QAEvC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAElC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEM,kBAAkB,CAAC,MAAS;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAEM,qBAAqB,CAAC,MAAS;QACrC,wBAAwB;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,aAAa,CAAC,IAAY;QAChC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC;CACD","sourcesContent":["import type { Entity, Dirty } from \"./Entity\";\nimport type { State } from \"./States\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { IDisposer, Disposer, MultiDisposer } from \"./Disposer\";\nimport * as $array from \"./Array\";\nimport * as $object from \"./Object\";\nimport * as $type from \"./Type\";\n\n\nfunction disposeSettings(settings: object) {\n\t$object.each(settings, (_key, value) => {\n\t\tif ($type.isObject(value) && typeof (value as any).dispose === \"function\") {\n\t\t\t(value as any).enableDispose = true;\n\t\t\t(value as any).dispose();\n\t\t}\n\t});\n}\n\n\nexport class TemplateState<E extends Entity> {\n\tpublic _settings: Partial<E[\"_settings\"]>;\n\n\tprivate _name: string;\n\tprivate _template: Template<E>;\n\n\tconstructor(name: string, template: Template<E>, settings: Partial<E[\"_settings\"]>) {\n\t\tthis._name = name;\n\t\tthis._template = template;\n\t\tthis._settings = settings;\n\t}\n\n\tpublic _dispose() {\n\t\tdisposeSettings(this._settings);\n\t}\n\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\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, fallback?: any): any {\n\t\tconst value = 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\tpublic set<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]) {\n\t\tthis._settings[key] = value;\n\t\t// TODO maybe only do this if the value changed ?\n\t\tthis._template._stateChanged(this._name);\n\t}\n\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._settings[key];\n\t\t// TODO maybe only do this if the value changed ?\n\t\tthis._template._stateChanged(this._name);\n\t}\n\n\tpublic setAll(settings: this[\"_settings\"]) {\n\t\t$object.keys(settings).forEach((key) => {\n\t\t\tthis._settings[key] = settings[key];\n\t\t});\n\n\t\tthis._template._stateChanged(this._name);\n\t}\n\n\tpublic _apply(other: State<E>, seen: Dirty<E[\"_settings\"]>): void {\n\t\t$object.each(this._settings, (key, value) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tseen[key] = true;\n\t\t\t\tother.setRaw(key, value);\n\t\t\t}\n\t\t});\n\t}\n}\n\n\nexport class TemplateStates<E extends Entity> {\n\tprivate _template: Template<E>;\n\tprivate _states: { [key: string]: TemplateState<E> } = {};\n\n\tconstructor(template: Template<E>) {\n\t\tthis._template = template;\n\t}\n\n\tpublic _dispose() {\n\t\t$object.each(this._states, (_key, state) => {\n\t\t\tstate._dispose();\n\t\t});\n\t}\n\n\tpublic lookup(name: string): TemplateState<E> | undefined {\n\t\treturn this._states[name];\n\t}\n\n\tpublic create(name: string, settings: Partial<E[\"_settings\"]>): TemplateState<E> {\n\t\tconst state = this._states[name];\n\n\t\tif (state) {\n\t\t\tstate.setAll(settings);\n\t\t\treturn state;\n\n\t\t} else {\n\t\t\tconst state = new TemplateState(name, this._template, settings);\n\t\t\tthis._states[name] = state;\n\t\t\tthis._template._stateChanged(name);\n\t\t\treturn state;\n\t\t}\n\t}\n\n\tpublic remove(name: string) {\n\t\tdelete this._states[name];\n\t\tthis._template._stateChanged(name);\n\t}\n\n\tpublic _apply(entity: E, state: ApplyState<E>): void {\n\t\t$object.each(this._states, (key, value) => {\n\t\t\tlet seen = state.states[key];\n\n\t\t\tif (seen == null) {\n\t\t\t\tseen = state.states[key] = {};\n\t\t\t}\n\n\t\t\tconst other = entity.states.create(key as string, {});\n\t\t\tvalue._apply(other, seen);\n\t\t});\n\t}\n}\n\n\nexport class TemplateAdapters<E extends Entity> {\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E>(value: O[\"_settings\"][K], target: O, key: K) => O[\"_settings\"][K]> } = {};\n\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: (value: E[\"_settings\"][Key], target: E, key: Key) => E[\"_settings\"][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\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(callbacks!, callback);\n\n\t\t\tif (callbacks!.length === 0) {\n\t\t\t\tdelete this._callbacks[key];\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic remove<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tdelete this._callbacks[key];\n\t\t}\n\t}\n\n\tpublic _apply(entity: E): IDisposer {\n\t\tconst disposers: Array<IDisposer> = [];\n\n\t\t$object.each(this._callbacks, (key, callbacks) => {\n\t\t\t$array.each(callbacks, (callback) => {\n\t\t\t\tdisposers.push(entity.adapters.add(key, callback));\n\t\t\t});\n\t\t});\n\n\t\treturn new MultiDisposer(disposers);\n\t}\n}\n\n\nexport interface ApplyState<E extends Entity> {\n\tsettings: Dirty<E[\"_settings\"]>;\n\tprivateSettings: Dirty<E[\"_privateSettings\"]>;\n\tstates: { [name: string]: Dirty<E[\"_settings\"]> };\n}\n\n\n// TODO maybe extend from Properties ?\nexport class Template<E extends Entity> implements IDisposer {\n\tprivate _disposed: boolean = false;\n\n\tpublic _settings: Partial<E[\"_settings\"]>;\n\tpublic _privateSettings: E[\"_privateSettings\"] = {};\n\n\t// TODO code duplication with Properties\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K]>(value: V) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K]>(value: V) => void> } = {};\n\n\tpublic _entities: Array<E> = [];\n\n\tpublic readonly states: TemplateStates<E> = new TemplateStates(this);\n\n\tpublic readonly adapters: TemplateAdapters<E> = new TemplateAdapters();\n\tpublic readonly events: EventDispatcher<Events<E, E[\"_events\"]>> = new EventDispatcher();\n\n\tpublic setup: (<O extends E>(entity: O) => void) | undefined;\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\tpublic static new<E extends Entity>(settings: E[\"_settings\"]): Template<E> {\n\t\treturn new Template<E>(settings, true);\n\t}\n\n\tprotected _dispose() {\n\t\tdisposeSettings(this._settings);\n\t\tdisposeSettings(this._privateSettings);\n\t}\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\tprivate _checkDisposed() {\n\t\tif (this._disposed) {\n\t\t\tthrow new Error(\"Template is disposed\");\n\t\t}\n\t}\n\n\t/**\n\t * Array of all entities using this template.\n\t */\n\tpublic get entities():Array<E>{\n\t\treturn this._entities;\n\t}\n\n\tconstructor(settings: E[\"_settings\"], isReal: boolean) {\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\n\t\tthis._settings = settings;\n\t}\n\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\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, fallback?: any): any {\n\t\tthis._checkDisposed();\n\n\t\tconst value = 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\tpublic setRaw<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tthis._checkDisposed();\n\t\tthis._settings[key] = value;\n\t}\n\n\tpublic set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tthis._checkDisposed();\n\n\t\tif (this._settings[key] !== value) {\n\t\t\tthis.setRaw(key, value);\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._setTemplateProperty(this, key, value);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tthis._checkDisposed();\n\n\t\tif (key in this._settings) {\n\t\t\tdelete this._settings[key];\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._removeTemplateProperty(key);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic removeAll(): void {\n\t\tthis._checkDisposed();\n\n\t\t$object.each(this._settings, (key, _value) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tthis._checkDisposed();\n\n\t\tconst value = 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\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._checkDisposed();\n\t\tthis._privateSettings[key] = value;\n\t\treturn value;\n\t}\n\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._checkDisposed();\n\n\t\tif (this._privateSettings[key] !== value) {\n\t\t\tthis.setPrivateRaw(key, value);\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._setTemplatePrivateProperty(this, key, value);\n\t\t\t});\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tthis._checkDisposed();\n\n\t\tif (key in this._privateSettings) {\n\t\t\tdelete this._privateSettings[key];\n\n\t\t\tthis._entities.forEach((entity) => {\n\t\t\t\tentity._removeTemplatePrivateProperty(key);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic setAll(value: this[\"_settings\"]) {\n\t\tthis._checkDisposed();\n\n\t\t$object.each(value, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t// TODO code duplication with Properties\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: E, key?: Key) => void): IDisposer {\n\t\tthis._checkDisposed();\n\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// TODO code duplication with Properties\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: E, key?: Key) => void): IDisposer {\n\t\tthis._checkDisposed();\n\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\tpublic _apply(entity: E, state: ApplyState<E>): IDisposer {\n\t\tthis._checkDisposed();\n\n\t\tconst disposers: Array<IDisposer> = [];\n\n\t\t$object.each(this._settingEvents, (key, events) => {\n\t\t\t$array.each(events, (event) => {\n\t\t\t\tdisposers.push(entity.on(key, event));\n\t\t\t});\n\t\t});\n\n\t\t$object.each(this._privateSettingEvents, (key, events) => {\n\t\t\t$array.each(events, (event) => {\n\t\t\t\tdisposers.push(entity.onPrivate(key, event));\n\t\t\t});\n\t\t});\n\n\t\tthis.states._apply(entity, state);\n\n\t\tdisposers.push(this.adapters._apply(entity));\n\t\tdisposers.push(entity.events.copyFrom(this.events));\n\n\t\treturn new MultiDisposer(disposers);\n\t}\n\n\tpublic _setObjectTemplate(entity: E) {\n\t\tthis._checkDisposed();\n\t\tthis._entities.push(entity);\n\t}\n\n\tpublic _removeObjectTemplate(entity: E) {\n\t\t//this._checkDisposed();\n\t\t$array.remove(this._entities, entity);\n\t}\n\n\tpublic _stateChanged(name: string): void {\n\t\tthis._checkDisposed();\n\n\t\tthis._entities.forEach((entity) => {\n\t\t\tentity._applyStateByKey(name);\n\t\t});\n\t}\n}\n"]}
package/CHANGELOG.md CHANGED
@@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
5
5
  Please note, that this project, while following numbering syntax, it DOES NOT
6
6
  adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
7
7
 
8
+ ## [5.10.7] - 2024-10-12
9
+
10
+ ### Fixed
11
+ - In some cases disposing `Root` element could result in a "Template is disposed" error.
12
+
13
+
8
14
  ## [5.10.6] - 2024-10-11
9
15
 
10
16
  ### Added
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-arc-horizontal",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-arc-vertical",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-non-ribbon",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-sankey",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge-bands",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-force-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-pack",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-partition",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-sunburst",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-tree",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-treemap",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-voronoi-treemap",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-jest",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-json-pie",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-json-xy",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-animating-along-lines",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-clustered-points",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-day-and-night",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-globe-rotate-to-country",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-globe-with-projected-circles",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-with-bubbles",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-zoom-to-country",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "@amcharts/amcharts5-geodata": "^5.1.4",
8
8
  "source-map-loader": "^4.0.1",
9
9
  "webpack": "^5.1.3",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-misc-40-charts",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-misc-microchart-grid",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-pie-chart",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-pie-donut-chart",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-pie-variable-radius",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-column-iwatch-style",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-heat-map",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-line",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-time-line",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-sliced-funnel",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-sliced-pictorial-stacked",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-sliced-pyramid",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart-comparing-stocks",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart-data-granularity",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart-data-grouping",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart-intraday",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart-live",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-stock-chart-volume-separate-panel",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.10.6",
6
+ "@amcharts/amcharts5": "^5.10.7",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",