@amcharts/amcharts5 5.1.5 → 5.1.8

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 (253) hide show
  1. package/.internal/charts/flow/ChordLink.d.ts +12 -0
  2. package/.internal/charts/flow/ChordLink.d.ts.map +1 -1
  3. package/.internal/charts/flow/ChordLink.js.map +1 -1
  4. package/.internal/charts/flow/Flow.d.ts +2 -0
  5. package/.internal/charts/flow/Flow.d.ts.map +1 -1
  6. package/.internal/charts/flow/Flow.js +17 -0
  7. package/.internal/charts/flow/Flow.js.map +1 -1
  8. package/.internal/charts/flow/FlowNodes.d.ts +7 -0
  9. package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
  10. package/.internal/charts/flow/FlowNodes.js +7 -0
  11. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  12. package/.internal/charts/flow/Sankey.d.ts.map +1 -1
  13. package/.internal/charts/flow/Sankey.js +59 -57
  14. package/.internal/charts/flow/Sankey.js.map +1 -1
  15. package/.internal/charts/funnel/FunnelSeries.d.ts +9 -0
  16. package/.internal/charts/funnel/FunnelSeries.d.ts.map +1 -1
  17. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  18. package/.internal/charts/hierarchy/Hierarchy.d.ts +36 -0
  19. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  20. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  21. package/.internal/charts/map/MapChart.d.ts +2 -0
  22. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  23. package/.internal/charts/map/MapChart.js +30 -3
  24. package/.internal/charts/map/MapChart.js.map +1 -1
  25. package/.internal/charts/map/MapPointSeries.d.ts +6 -0
  26. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  27. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  28. package/.internal/charts/percent/PercentSeries.d.ts +18 -0
  29. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  30. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  31. package/.internal/charts/pie/PieSeries.d.ts +3 -0
  32. package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
  33. package/.internal/charts/pie/PieSeries.js.map +1 -1
  34. package/.internal/charts/radar/AxisRendererCircular.d.ts +12 -0
  35. package/.internal/charts/radar/AxisRendererCircular.d.ts.map +1 -1
  36. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  37. package/.internal/charts/radar/AxisRendererRadial.d.ts +12 -0
  38. package/.internal/charts/radar/AxisRendererRadial.d.ts.map +1 -1
  39. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  40. package/.internal/charts/radar/RadarChart.d.ts +1 -0
  41. package/.internal/charts/radar/RadarChart.d.ts.map +1 -1
  42. package/.internal/charts/radar/RadarChart.js +7 -0
  43. package/.internal/charts/radar/RadarChart.js.map +1 -1
  44. package/.internal/charts/radar/RadarColumnSeries.d.ts +15 -0
  45. package/.internal/charts/radar/RadarColumnSeries.d.ts.map +1 -1
  46. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  47. package/.internal/charts/radar/RadarCursor.d.ts +12 -0
  48. package/.internal/charts/radar/RadarCursor.d.ts.map +1 -1
  49. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  50. package/.internal/charts/wordcloud/WordCloud.d.ts +3 -0
  51. package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
  52. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  53. package/.internal/charts/xy/XYChart.d.ts +42 -0
  54. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  55. package/.internal/charts/xy/XYChart.js +167 -12
  56. package/.internal/charts/xy/XYChart.js.map +1 -1
  57. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  58. package/.internal/charts/xy/XYChartDefaultTheme.js +3 -1
  59. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  60. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  61. package/.internal/charts/xy/XYCursor.js +8 -1
  62. package/.internal/charts/xy/XYCursor.js.map +1 -1
  63. package/.internal/charts/xy/axes/Axis.d.ts +2 -0
  64. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  65. package/.internal/charts/xy/axes/Axis.js +7 -0
  66. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  67. package/.internal/charts/xy/axes/AxisLabel.d.ts.map +1 -1
  68. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  69. package/.internal/charts/xy/axes/AxisRenderer.d.ts +3 -0
  70. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  71. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  72. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  73. package/.internal/charts/xy/axes/DateAxis.js +7 -2
  74. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  75. package/.internal/charts/xy/axes/DurationAxis.d.ts +5 -0
  76. package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -1
  77. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  78. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +3 -0
  79. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  80. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  81. package/.internal/charts/xy/axes/ValueAxis.d.ts +74 -0
  82. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  83. package/.internal/charts/xy/axes/ValueAxis.js +1 -0
  84. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  85. package/.internal/charts/xy/series/Candlestick.d.ts +27 -0
  86. package/.internal/charts/xy/series/Candlestick.d.ts.map +1 -1
  87. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  88. package/.internal/charts/xy/series/CandlestickSeries.d.ts +6 -1
  89. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  90. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  91. package/.internal/charts/xy/series/ColumnSeries.d.ts +3 -0
  92. package/.internal/charts/xy/series/ColumnSeries.d.ts.map +1 -1
  93. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  94. package/.internal/charts/xy/series/OHLCSeries.d.ts +3 -0
  95. package/.internal/charts/xy/series/OHLCSeries.d.ts.map +1 -1
  96. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  97. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  98. package/.internal/charts/xy/series/XYSeries.js +1 -0
  99. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  100. package/.internal/core/render/Graphics.d.ts +2 -0
  101. package/.internal/core/render/Graphics.d.ts.map +1 -1
  102. package/.internal/core/render/Graphics.js.map +1 -1
  103. package/.internal/core/render/Sprite.d.ts.map +1 -1
  104. package/.internal/core/render/Sprite.js +15 -1
  105. package/.internal/core/render/Sprite.js.map +1 -1
  106. package/.internal/core/render/Tooltip.d.ts.map +1 -1
  107. package/.internal/core/render/Tooltip.js +14 -4
  108. package/.internal/core/render/Tooltip.js.map +1 -1
  109. package/.internal/core/render/VerticalLayout.js +1 -1
  110. package/.internal/core/render/VerticalLayout.js.map +1 -1
  111. package/.internal/core/render/backend/CanvasRenderer.d.ts +0 -2
  112. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  113. package/.internal/core/render/backend/CanvasRenderer.js +17 -11
  114. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  115. package/.internal/core/util/Benchmark.js +1 -1
  116. package/.internal/core/util/Benchmark.js.map +1 -1
  117. package/.internal/core/util/Entity.d.ts +1 -1
  118. package/.internal/core/util/Entity.d.ts.map +1 -1
  119. package/.internal/core/util/Entity.js +1 -1
  120. package/.internal/core/util/Entity.js.map +1 -1
  121. package/.internal/core/util/Language.js +3 -3
  122. package/.internal/core/util/Language.js.map +1 -1
  123. package/.internal/core/util/ResizeSensor.d.ts.map +1 -1
  124. package/.internal/core/util/ResizeSensor.js +1 -2
  125. package/.internal/core/util/ResizeSensor.js.map +1 -1
  126. package/.internal/core/util/Template.d.ts +1 -1
  127. package/.internal/core/util/Template.d.ts.map +1 -1
  128. package/.internal/core/util/Template.js.map +1 -1
  129. package/.internal/core/util/Utils.js +1 -1
  130. package/.internal/core/util/Utils.js.map +1 -1
  131. package/.internal/plugins/exporting/Exporting.d.ts +0 -4
  132. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  133. package/.internal/plugins/exporting/Exporting.js +4 -49
  134. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  135. package/CHANGELOG.md +36 -0
  136. package/LICENSE +1 -1
  137. package/examples/javascript/flow-chord/package.json +1 -1
  138. package/examples/javascript/flow-chord-directed/package.json +1 -1
  139. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  140. package/examples/javascript/flow-sankey/package.json +1 -1
  141. package/examples/javascript/gauge/package.json +1 -1
  142. package/examples/javascript/gauge-bands/package.json +1 -1
  143. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  144. package/examples/javascript/hierarchy-pack/package.json +1 -1
  145. package/examples/javascript/hierarchy-partition/package.json +1 -1
  146. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  147. package/examples/javascript/hierarchy-tree/package.json +1 -1
  148. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  149. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  150. package/examples/javascript/map-day-and-night/package.json +1 -1
  151. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  152. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  153. package/examples/javascript/map-with-bubbles/package.json +1 -1
  154. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  155. package/examples/javascript/misc-40-charts/package.json +1 -1
  156. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  157. package/examples/javascript/pie-chart/package.json +1 -1
  158. package/examples/javascript/pie-donut-chart/package.json +1 -1
  159. package/examples/javascript/pie-variable-radius/package.json +1 -1
  160. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  161. package/examples/javascript/radar-heat-map/package.json +1 -1
  162. package/examples/javascript/radar-line/package.json +1 -1
  163. package/examples/javascript/radar-time-line/package.json +1 -1
  164. package/examples/javascript/sliced-funnel/package.json +1 -1
  165. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  166. package/examples/javascript/sliced-pyramid/package.json +1 -1
  167. package/examples/javascript/venn-diagram/package.json +1 -1
  168. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  169. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  170. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  171. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  172. package/examples/javascript/xy-bubble/package.json +1 -1
  173. package/examples/javascript/xy-candlestick/package.json +1 -1
  174. package/examples/javascript/xy-clustered-column/package.json +1 -1
  175. package/examples/javascript/xy-column/package.json +1 -1
  176. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  177. package/examples/javascript/xy-data-grouping/package.json +1 -1
  178. package/examples/javascript/xy-draggable-range/package.json +1 -1
  179. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  180. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  181. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  182. package/examples/javascript/xy-line/package.json +1 -1
  183. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  184. package/examples/javascript/xy-live-data/package.json +1 -1
  185. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  186. package/examples/javascript/xy-ohlc/package.json +1 -1
  187. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  188. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  189. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  190. package/examples/javascript/xy-stacked-column/package.json +1 -1
  191. package/examples/javascript/xy-stacked-step/package.json +1 -1
  192. package/examples/javascript/xy-stock/package.json +1 -1
  193. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  194. package/examples/typescript/flow-chord/package.json +1 -1
  195. package/examples/typescript/flow-chord-directed/package.json +1 -1
  196. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  197. package/examples/typescript/flow-sankey/package.json +1 -1
  198. package/examples/typescript/gauge/package.json +1 -1
  199. package/examples/typescript/gauge-bands/package.json +1 -1
  200. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  201. package/examples/typescript/hierarchy-pack/package.json +1 -1
  202. package/examples/typescript/hierarchy-partition/package.json +1 -1
  203. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  204. package/examples/typescript/hierarchy-tree/package.json +1 -1
  205. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  206. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  207. package/examples/typescript/map-day-and-night/package.json +1 -1
  208. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  209. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  210. package/examples/typescript/map-with-bubbles/package.json +1 -1
  211. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  212. package/examples/typescript/misc-40-charts/package.json +1 -1
  213. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  214. package/examples/typescript/pie-chart/package.json +1 -1
  215. package/examples/typescript/pie-donut-chart/package.json +1 -1
  216. package/examples/typescript/pie-variable-radius/package.json +1 -1
  217. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  218. package/examples/typescript/radar-heat-map/package.json +1 -1
  219. package/examples/typescript/radar-line/package.json +1 -1
  220. package/examples/typescript/radar-time-line/package.json +1 -1
  221. package/examples/typescript/sliced-funnel/package.json +1 -1
  222. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  223. package/examples/typescript/sliced-pyramid/package.json +1 -1
  224. package/examples/typescript/venn-diagram/package.json +1 -1
  225. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  226. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  227. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  228. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  229. package/examples/typescript/xy-bubble/package.json +1 -1
  230. package/examples/typescript/xy-candlestick/package.json +1 -1
  231. package/examples/typescript/xy-clustered-column/package.json +1 -1
  232. package/examples/typescript/xy-column/package.json +1 -1
  233. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  234. package/examples/typescript/xy-data-grouping/package.json +1 -1
  235. package/examples/typescript/xy-draggable-range/package.json +1 -1
  236. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  237. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  238. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  239. package/examples/typescript/xy-line/package.json +1 -1
  240. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  241. package/examples/typescript/xy-live-data/package.json +1 -1
  242. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  243. package/examples/typescript/xy-ohlc/package.json +1 -1
  244. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  245. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  246. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  247. package/examples/typescript/xy-stacked-column/package.json +1 -1
  248. package/examples/typescript/xy-stacked-step/package.json +1 -1
  249. package/examples/typescript/xy-stock/package.json +1 -1
  250. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  251. package/locales/nb_NO.js +6 -6
  252. package/locales/nb_NO.js.map +1 -1
  253. package/package.json +1 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Language.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAmC,MAAM,UAAU,CAAA;AAClE,OAAO,KAAK,MAAM,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA8QuB,CAAC;AAc7D;IAA8B,4BAAM;IAApC;;IAgGA,CAAC;;;;;eA5FA;YACC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACrC,iBAAM,YAAY,WAAE,CAAC;QACtB,CAAC;;;;;;eAED,UAAoD,MAAW,EAAE,MAAgB;YAAE,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,6BAAsB;;YAExG,eAAe;YACf,IAAI,CAAC,MAAM,EAAE;gBACZ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;aAC/D;YAED,mBAAmB;YACnB,IAAI,WAAW,GAAW,MAAM,CAAC;YACjC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAE3B,kCAAkC;YAClC,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnB,WAAW,GAAG,EAAE,CAAC;aACjB;iBACI,IAAI,KAAK,IAAI,IAAI,EAAE;gBACvB,8BAA8B;gBAC9B,IAAI,KAAK,EAAE;oBACV,WAAW,GAAW,KAAM,CAAC;iBAC7B;aACD;iBACI,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACrD,kCAAkC;gBAClC,OAAO,IAAI,CAAC,SAAS,OAAd,IAAI,iBAAW,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,UAAK,IAAI,IAAE;aACzE;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE;gBAChB,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;oBAChD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7D;aACD;YAED,yBAAyB;YACzB,OAAO,WAAW,CAAC;QACpB,CAAC;;;;;;eAED,UAAoB,MAAc,EAAE,MAAgB;YAAE,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,6BAAsB;;YAC3E,OAAO,IAAI,CAAC,SAAS,OAAd,IAAI,iBAAgB,MAAM,EAAE,MAAM,UAAK,IAAI,IAAE;QACrD,CAAC;;;;;;eAED,UAAyB,MAAc,EAAE,WAAmB,EAAE,MAAgB;YAC7E,IAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3C,YAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;QAC3C,CAAC;;;;;;eAED,UAAyD,MAAW,EAAE,MAAgB;YAAE,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,6BAAsB;;YAC7G,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,OAAd,IAAI,iBAAW,MAAM,EAAE,MAAM,UAAK,IAAI,GAAC,CAAC;YAC1D,OAAO,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACjD,CAAC;;;;;;eAED,UAAyD,MAAW,EAAE,MAAgB;YAErF,IAAU,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,MAAM,CAAC,EAAE;gBACrC,OAAa,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC;aACxC;YAED,kCAAkC;YAClC,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBAChD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;aACpE;YAED,+BAA+B;YAC/B,OAAO;gBACN,OAAO,EAAE,CAAC;YACX,CAAC,CAAC;QACH,CAAC;;;;;;eAED,UAAuD,IAAgB,EAAE,MAAgB;YAAzF,iBAQC;YAPA,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACtB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,EAAzB,CAAyB,CAAC,CAAC;aAE1D;iBAAM;gBACN,OAAO,IAAI,CAAC;aACZ;QACF,CAAC;;IAED;;;;OAIG;;;;;eACH;YACC,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/D,CAAC;;IAEF,eAAC;AAAD,CAAC,AAhGD,CAA8B,MAAM,GAgGnC","sourcesContent":["import { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport * as $array from \"./Array\"\nimport en from \"../../../locales/en\";\n\n/**\n * Defines properties that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleSettings {\n\t\"firstDayOfWeek\"?: number,\n\n\t// number formatter related\n\t\"_decimalSeparator\"?: string;\n\t\"_thousandSeparator\"?: string;\n\n\t\"_big_number_suffix_3\"?: string;\n\t\"_big_number_suffix_6\"?: string;\n\t\"_big_number_suffix_9\"?: string;\n\t\"_big_number_suffix_12\"?: string;\n\t\"_big_number_suffix_15\"?: string;\n\t\"_big_number_suffix_18\"?: string;\n\t\"_big_number_suffix_21\"?: string;\n\t\"_big_number_suffix_24\"?: string;\n\n\t\"_small_number_suffix_24\"?: string;\n\t\"_small_number_suffix_21\"?: string;\n\t\"_small_number_suffix_18\"?: string;\n\t\"_small_number_suffix_15\"?: string;\n\t\"_small_number_suffix_12\"?: string;\n\t\"_small_number_suffix_9\"?: string;\n\t\"_small_number_suffix_6\"?: string;\n\t\"_small_number_suffix_3\"?: string;\n\n\t\"_byte_suffix_B\"?: string;\n\t\"_byte_suffix_KB\"?: string;\n\t\"_byte_suffix_MB\"?: string;\n\t\"_byte_suffix_GB\"?: string;\n\t\"_byte_suffix_TB\"?: string;\n\t\"_byte_suffix_PB\"?: string;\n\n\t// Default date formats for various periods\n\t\"_date\"?: string;\n\t\"_date_millisecond\"?: string;\n\t\"_date_millisecond_full\"?: string;\n\t\"_date_second\"?: string;\n\t\"_date_second_full\"?: string;\n\t\"_date_minute\"?: string;\n\t\"_date_minute_full\"?: string;\n\t\"_date_hour\"?: string;\n\t\"_date_hour_full\"?: string;\n\t\"_date_day\"?: string;\n\t\"_date_day_full\"?: string;\n\t\"_date_week\"?: string;\n\t\"_date_week_full\"?: string;\n\t\"_date_month\"?: string;\n\t\"_date_month_full\"?: string;\n\t\"_date_year\"?: string;\n\n\t// Default duration formats for various base units\n\t\"_duration_millisecond\"?: string;\n\t\"_duration_millisecond_second\"?: string;\n\t\"_duration_millisecond_minute\"?: string;\n\t\"_duration_millisecond_hour\"?: string;\n\t\"_duration_millisecond_day\"?: string;\n\t\"_duration_millisecond_week\"?: string;\n\t\"_duration_millisecond_month\"?: string;\n\t\"_duration_millisecond_year\"?: string;\n\n\t\"_duration_second\"?: string;\n\t\"_duration_second_minute\"?: string;\n\t\"_duration_second_hour\"?: string;\n\t\"_duration_second_day\"?: string;\n\t\"_duration_second_week\"?: string;\n\t\"_duration_second_month\"?: string;\n\t\"_duration_second_year\"?: string;\n\n\t\"_duration_minute\"?: string;\n\t\"_duration_minute_hour\"?: string;\n\t\"_duration_minute_day\"?: string;\n\t\"_duration_minute_week\"?: string;\n\t\"_duration_minute_month\"?: string;\n\t\"_duration_minute_year\"?: string;\n\n\t\"_duration_hour\"?: string;\n\t\"_duration_hour_day\"?: string;\n\t\"_duration_hour_week\"?: string;\n\t\"_duration_hour_month\"?: string;\n\t\"_duration_hour_year\"?: string;\n\n\t\"_duration_day\"?: string;\n\t\"_duration_day_week\"?: string;\n\t\"_duration_day_month\"?: string;\n\t\"_duration_day_year\"?: string;\n\n\t\"_duration_week\"?: string;\n\t\"_duration_week_month\"?: string;\n\t\"_duration_week_year\"?: string;\n\n\t\"_duration_month\"?: string;\n\t\"_duration_month_year\"?: string;\n\n\t\"_duration_year\"?: string;\n\n\t// Era\n\t\"_era_ad\"?: string;\n\t\"_era_bc\"?: string;\n\n\t// Period\n\t\"A\"?: string;\n\t\"P\"?: string;\n\t\"AM\"?: string;\n\t\"PM\"?: string;\n\t\"A.M.\"?: string;\n\t\"P.M.\"?: string;\n\n\t// Dates\n\t\"January\"?: string;\n\t\"February\"?: string;\n\t\"March\"?: string;\n\t\"April\"?: string;\n\t\"May\"?: string;\n\t\"June\"?: string;\n\t\"July\"?: string;\n\t\"August\"?: string;\n\t\"September\"?: string;\n\t\"October\"?: string;\n\t\"November\"?: string;\n\t\"December\"?: string;\n\t\"Jan\"?: string;\n\t\"Feb\"?: string;\n\t\"Mar\"?: string;\n\t\"Apr\"?: string;\n\t\"May(short)\"?: string;\n\t\"Jun\"?: string;\n\t\"Jul\"?: string;\n\t\"Aug\"?: string;\n\t\"Sep\"?: string;\n\t\"Oct\"?: string;\n\t\"Nov\"?: string;\n\t\"Dec\"?: string;\n\t\"Sunday\"?: string;\n\t\"Monday\"?: string;\n\t\"Tuesday\"?: string;\n\t\"Wednesday\"?: string;\n\t\"Thursday\"?: string;\n\t\"Friday\"?: string;\n\t\"Saturday\"?: string;\n\t\"Sun\"?: string;\n\t\"Mon\"?: string;\n\t\"Tue\"?: string;\n\t\"Wed\"?: string;\n\t\"Thu\"?: string;\n\t\"Fri\"?: string;\n\t\"Sat\"?: string;\n\n\t// Chart elements\n\t\"Zoom Out\"?: string;\n\t\"Play\"?: string;\n\t\"Stop\"?: string;\n\t\"Legend\"?: string;\n\t\"Press ENTER to toggle\"?: string;\n\t\"Loading\"?: string;\n\t\"%1 shown\"?: string;\n\t\"%1 hidden\"?: string;\n\n\t// Chart types\n\t\"Chart\"?: string;\n\t\"Serial chart\"?: string;\n\t\"X/Y chart\"?: string;\n\t\"Pie chart\"?: string;\n\t\"Sunburst chart\"?: string;\n\t\"Gauge chart\"?: string;\n\t\"Radar chart\"?: string;\n\t\"Sankey diagram\"?: string;\n\t\"Flow diagram\"?: string;\n\t\"Chord diagram\"?: string;\n\t\"TreeMap chart\"?: string;\n\t\"Force directed tree\"?: string;\n\t\"Sliced chart\"?: string;\n\n\t// Series types\n\t\"Series\"?: string;\n\t\"Candlestick Series\"?: string;\n\t\"OHLC Series\"?: string;\n\t\"Column Series\"?: string;\n\t\"Line Series\"?: string;\n\t\"Pie Slice Series\"?: string;\n\t\"Funnel Series\"?: string;\n\t\"Pyramid Series\"?: string;\n\t\"X/Y Series\"?: string;\n\n\t// Map-related\n\t\"Map\"?: string;\n\t\"Press ENTER to zoom in\"?: string;\n\t\"Press ENTER to zoom out\"?: string;\n\t\"Use arrow keys to zoom in and out\"?: string;\n\t\"Use plus and minus keys on your keyboard to zoom in and out\"?: string;\n\t\"Home\"?: string;\n\t\"Zoom level changed to %1\"?: string;\n\n\t// Export-related\n\t\"Export\"?: string;\n\t\"Image\"?: string;\n\t\"Data\"?: string;\n\t\"Print\"?: string;\n\t\"Press ENTER or use arrow keys to navigate\"?: string;\n\t\"Press ENTER to open\"?: string;\n\t\"Press ENTER to print.\"?: string;\n\t\"Press ENTER to export as %1.\"?: string;\n\t\"(Press ESC to close this message)\"?: string;\n\t\"Image Export Complete\"?: string;\n\t\"Export operation took longer than expected. Something might have gone wrong.\"?: string;\n\t\"Saved from\"?: string;\n\t\"PNG\"?: string;\n\t\"JPG\"?: string;\n\t\"GIF\"?: string;\n\t\"SVG\"?: string;\n\t\"PDF\"?: string;\n\t\"JSON\"?: string;\n\t\"CSV\"?: string;\n\t\"XLSX\"?: string;\n\t\"HTML\"?: string;\n\n\t// Scrollbar-related\n\t\"Use TAB to select grip buttons or left and right arrows to change selection\"?: string;\n\t\"Use left and right arrows to move selection\"?: string;\n\t\"Use left and right arrows to move left selection\"?: string;\n\t\"Use left and right arrows to move right selection\"?: string;\n\t\"Use TAB select grip buttons or up and down arrows to change selection\"?: string;\n\t\"Use up and down arrows to move selection\"?: string;\n\t\"Use up and down arrows to move lower selection\"?: string;\n\t\"Use up and down arrows to move upper selection\"?: string;\n\t\"From %1 to %2\"?: string;\n\t\"From %1\"?: string;\n\t\"To %1\"?: string;\n\n\t// Data loader-related\n\t\"No parser available for file: %1\"?: string;\n\t\"Error parsing file: %1\"?: string;\n\t\"Unable to load file: %1\"?: string;\n\t\"Invalid date\"?: string;\n\n\t// Common actions\n\t\"Close\"?: string;\n\t\"Minimize\"?: string;\n\n\t\"Venn Series\"?: string;\n\t\"Venn Diagram\"?: string;\n}\n\n/**\n * Defines functions that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleFunctions {\n\t// ordinal function\n\t\"_dateOrd\": (day: number) => string;\n}\n\n/**\n * Defines all of the defaults for locale properties.\n * @ignore\n */\nexport interface ILocaleDefault extends ILocaleSettings, ILocaleFunctions { }\n\n/**\n * Defines locale interface.\n *\n * @ignore\n */\nexport interface ILocale extends Partial<ILocaleDefault> { };\n\nexport interface ILanguageSettings extends IEntitySettings {\n}\n\nexport interface ILanguagePrivate extends IEntityPrivate {\n\n\t/**\n\t * A locale for International English (default).\n\t */\n\tdefaultLocale: ILocale;\n\n}\n\nexport class Language extends Entity {\n\tdeclare public _settings: ILanguageSettings;\n\tdeclare public _privateSettings: ILanguagePrivate;\n\n\tprotected _setDefaults() {\n\t\tthis.setPrivate(\"defaultLocale\", en);\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic translate<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\n\t\t// Get langauge\n\t\tif (!locale) {\n\t\t\tlocale = this._root.locale || this.getPrivate(\"defaultLocale\");\n\t\t}\n\n\t\t// Init translation\n\t\tlet translation: string = prompt;\n\t\tlet value = locale[prompt];\n\n\t\t// Try to look for the translation\n\t\tif (value === null) {\n\t\t\ttranslation = \"\";\n\t\t}\n\t\telse if (value != null) {\n\t\t\t// It might be an empty string\n\t\t\tif (value) {\n\t\t\t\ttranslation = <string>value!;\n\t\t\t}\n\t\t}\n\t\telse if (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\t// Try to look in default language\n\t\t\treturn this.translate(prompt, this.getPrivate(\"defaultLocale\"), ...rest);\n\t\t}\n\n\t\t// Replace %1, %2, etc params\n\t\tif (rest.length) {\n\t\t\tfor (let len = rest.length, i = 0; i < len; ++i) {\n\t\t\t\ttranslation = translation.split(\"%\" + (i + 1)).join(rest[i]);\n\t\t\t}\n\t\t}\n\n\t\t// Return the translation\n\t\treturn translation;\n\t}\n\n\tpublic translateAny(prompt: string, locale?: ILocale, ...rest: Array<string>): string {\n\t\treturn this.translate(<any>prompt, locale, ...rest);\n\t}\n\n\tpublic setTranslationAny(prompt: string, translation: string, locale?: ILocale): void {\n\t\tconst localeTarget = locale || this._root.locale;\n\t\t(<any>localeTarget)[prompt] = translation;\n\t}\n\n\tpublic translateEmpty<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\t\tlet translation = this.translate(prompt, locale, ...rest);\n\t\treturn translation == prompt ? \"\" : translation;\n\t}\n\n\tpublic translateFunc<Key extends keyof ILocaleFunctions>(prompt: Key, locale?: ILocale): ILocaleFunctions[Key] {\n\n\t\tif ((<any>this._root.locale)[prompt]) {\n\t\t\treturn (<any>this._root.locale)[prompt];\n\t\t}\n\n\t\t// Try to look in default language\n\t\tif (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\treturn this.translateFunc(prompt, this.getPrivate(\"defaultLocale\"));\n\t\t}\n\n\t\t// Fail - return empty function\n\t\treturn (): string => {\n\t\t\treturn \"\";\n\t\t};\n\t}\n\n\tpublic translateAll<Key extends keyof ILocaleSettings>(list: Array<Key>, locale?: ILocale): Array<string> {\n\t\t// Translate all items in the list\n\t\tif (!this.isDefault()) {\n\t\t\treturn $array.map(list, (x) => this.translate(x, locale));\n\n\t\t} else {\n\t\t\treturn list;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the currently selected locale is a default locale.\n\t *\n\t * @return `true` if locale is default; `false` if it is not.\n\t */\n\tpublic isDefault(): boolean {\n\t\treturn this.getPrivate(\"defaultLocale\") === this._root.locale;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Language.ts"],"names":[],"mappings":"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","sourcesContent":["import { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport * as $array from \"./Array\"\nimport en from \"../../../locales/en\";\n\n/**\n * Defines properties that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleSettings {\n\t\"firstDayOfWeek\"?: number,\n\n\t// number formatter related\n\t\"_decimalSeparator\"?: string;\n\t\"_thousandSeparator\"?: string;\n\n\t\"_big_number_suffix_3\"?: string;\n\t\"_big_number_suffix_6\"?: string;\n\t\"_big_number_suffix_9\"?: string;\n\t\"_big_number_suffix_12\"?: string;\n\t\"_big_number_suffix_15\"?: string;\n\t\"_big_number_suffix_18\"?: string;\n\t\"_big_number_suffix_21\"?: string;\n\t\"_big_number_suffix_24\"?: string;\n\n\t\"_small_number_suffix_24\"?: string;\n\t\"_small_number_suffix_21\"?: string;\n\t\"_small_number_suffix_18\"?: string;\n\t\"_small_number_suffix_15\"?: string;\n\t\"_small_number_suffix_12\"?: string;\n\t\"_small_number_suffix_9\"?: string;\n\t\"_small_number_suffix_6\"?: string;\n\t\"_small_number_suffix_3\"?: string;\n\n\t\"_byte_suffix_B\"?: string;\n\t\"_byte_suffix_KB\"?: string;\n\t\"_byte_suffix_MB\"?: string;\n\t\"_byte_suffix_GB\"?: string;\n\t\"_byte_suffix_TB\"?: string;\n\t\"_byte_suffix_PB\"?: string;\n\n\t// Default date formats for various periods\n\t\"_date\"?: string;\n\t\"_date_millisecond\"?: string;\n\t\"_date_millisecond_full\"?: string;\n\t\"_date_second\"?: string;\n\t\"_date_second_full\"?: string;\n\t\"_date_minute\"?: string;\n\t\"_date_minute_full\"?: string;\n\t\"_date_hour\"?: string;\n\t\"_date_hour_full\"?: string;\n\t\"_date_day\"?: string;\n\t\"_date_day_full\"?: string;\n\t\"_date_week\"?: string;\n\t\"_date_week_full\"?: string;\n\t\"_date_month\"?: string;\n\t\"_date_month_full\"?: string;\n\t\"_date_year\"?: string;\n\n\t// Default duration formats for various base units\n\t\"_duration_millisecond\"?: string;\n\t\"_duration_millisecond_second\"?: string;\n\t\"_duration_millisecond_minute\"?: string;\n\t\"_duration_millisecond_hour\"?: string;\n\t\"_duration_millisecond_day\"?: string;\n\t\"_duration_millisecond_week\"?: string;\n\t\"_duration_millisecond_month\"?: string;\n\t\"_duration_millisecond_year\"?: string;\n\n\t\"_duration_second\"?: string;\n\t\"_duration_second_minute\"?: string;\n\t\"_duration_second_hour\"?: string;\n\t\"_duration_second_day\"?: string;\n\t\"_duration_second_week\"?: string;\n\t\"_duration_second_month\"?: string;\n\t\"_duration_second_year\"?: string;\n\n\t\"_duration_minute\"?: string;\n\t\"_duration_minute_hour\"?: string;\n\t\"_duration_minute_day\"?: string;\n\t\"_duration_minute_week\"?: string;\n\t\"_duration_minute_month\"?: string;\n\t\"_duration_minute_year\"?: string;\n\n\t\"_duration_hour\"?: string;\n\t\"_duration_hour_day\"?: string;\n\t\"_duration_hour_week\"?: string;\n\t\"_duration_hour_month\"?: string;\n\t\"_duration_hour_year\"?: string;\n\n\t\"_duration_day\"?: string;\n\t\"_duration_day_week\"?: string;\n\t\"_duration_day_month\"?: string;\n\t\"_duration_day_year\"?: string;\n\n\t\"_duration_week\"?: string;\n\t\"_duration_week_month\"?: string;\n\t\"_duration_week_year\"?: string;\n\n\t\"_duration_month\"?: string;\n\t\"_duration_month_year\"?: string;\n\n\t\"_duration_year\"?: string;\n\n\t// Era\n\t\"_era_ad\"?: string;\n\t\"_era_bc\"?: string;\n\n\t// Period\n\t\"A\"?: string;\n\t\"P\"?: string;\n\t\"AM\"?: string;\n\t\"PM\"?: string;\n\t\"A.M.\"?: string;\n\t\"P.M.\"?: string;\n\n\t// Dates\n\t\"January\"?: string;\n\t\"February\"?: string;\n\t\"March\"?: string;\n\t\"April\"?: string;\n\t\"May\"?: string;\n\t\"June\"?: string;\n\t\"July\"?: string;\n\t\"August\"?: string;\n\t\"September\"?: string;\n\t\"October\"?: string;\n\t\"November\"?: string;\n\t\"December\"?: string;\n\t\"Jan\"?: string;\n\t\"Feb\"?: string;\n\t\"Mar\"?: string;\n\t\"Apr\"?: string;\n\t\"May(short)\"?: string;\n\t\"Jun\"?: string;\n\t\"Jul\"?: string;\n\t\"Aug\"?: string;\n\t\"Sep\"?: string;\n\t\"Oct\"?: string;\n\t\"Nov\"?: string;\n\t\"Dec\"?: string;\n\t\"Sunday\"?: string;\n\t\"Monday\"?: string;\n\t\"Tuesday\"?: string;\n\t\"Wednesday\"?: string;\n\t\"Thursday\"?: string;\n\t\"Friday\"?: string;\n\t\"Saturday\"?: string;\n\t\"Sun\"?: string;\n\t\"Mon\"?: string;\n\t\"Tue\"?: string;\n\t\"Wed\"?: string;\n\t\"Thu\"?: string;\n\t\"Fri\"?: string;\n\t\"Sat\"?: string;\n\n\t// Chart elements\n\t\"Zoom Out\"?: string;\n\t\"Play\"?: string;\n\t\"Stop\"?: string;\n\t\"Legend\"?: string;\n\t\"Press ENTER to toggle\"?: string;\n\t\"Loading\"?: string;\n\t\"%1 shown\"?: string;\n\t\"%1 hidden\"?: string;\n\n\t// Chart types\n\t\"Chart\"?: string;\n\t\"Serial chart\"?: string;\n\t\"X/Y chart\"?: string;\n\t\"Pie chart\"?: string;\n\t\"Sunburst chart\"?: string;\n\t\"Gauge chart\"?: string;\n\t\"Radar chart\"?: string;\n\t\"Sankey diagram\"?: string;\n\t\"Flow diagram\"?: string;\n\t\"Chord diagram\"?: string;\n\t\"TreeMap chart\"?: string;\n\t\"Force directed tree\"?: string;\n\t\"Sliced chart\"?: string;\n\n\t// Series types\n\t\"Series\"?: string;\n\t\"Candlestick Series\"?: string;\n\t\"OHLC Series\"?: string;\n\t\"Column Series\"?: string;\n\t\"Line Series\"?: string;\n\t\"Pie Slice Series\"?: string;\n\t\"Funnel Series\"?: string;\n\t\"Pyramid Series\"?: string;\n\t\"X/Y Series\"?: string;\n\n\t// Map-related\n\t\"Map\"?: string;\n\t\"Press ENTER to zoom in\"?: string;\n\t\"Press ENTER to zoom out\"?: string;\n\t\"Use arrow keys to zoom in and out\"?: string;\n\t\"Use plus and minus keys on your keyboard to zoom in and out\"?: string;\n\t\"Home\"?: string;\n\t\"Zoom level changed to %1\"?: string;\n\n\t// Export-related\n\t\"Export\"?: string;\n\t\"Image\"?: string;\n\t\"Data\"?: string;\n\t\"Print\"?: string;\n\t\"Press ENTER or use arrow keys to navigate\"?: string;\n\t\"Press ENTER to open\"?: string;\n\t\"Press ENTER to print.\"?: string;\n\t\"Press ENTER to export as %1.\"?: string;\n\t\"(Press ESC to close this message)\"?: string;\n\t\"Image Export Complete\"?: string;\n\t\"Export operation took longer than expected. Something might have gone wrong.\"?: string;\n\t\"Saved from\"?: string;\n\t\"PNG\"?: string;\n\t\"JPG\"?: string;\n\t\"GIF\"?: string;\n\t\"SVG\"?: string;\n\t\"PDF\"?: string;\n\t\"JSON\"?: string;\n\t\"CSV\"?: string;\n\t\"XLSX\"?: string;\n\t\"HTML\"?: string;\n\n\t// Scrollbar-related\n\t\"Use TAB to select grip buttons or left and right arrows to change selection\"?: string;\n\t\"Use left and right arrows to move selection\"?: string;\n\t\"Use left and right arrows to move left selection\"?: string;\n\t\"Use left and right arrows to move right selection\"?: string;\n\t\"Use TAB select grip buttons or up and down arrows to change selection\"?: string;\n\t\"Use up and down arrows to move selection\"?: string;\n\t\"Use up and down arrows to move lower selection\"?: string;\n\t\"Use up and down arrows to move upper selection\"?: string;\n\t\"From %1 to %2\"?: string;\n\t\"From %1\"?: string;\n\t\"To %1\"?: string;\n\n\t// Data loader-related\n\t\"No parser available for file: %1\"?: string;\n\t\"Error parsing file: %1\"?: string;\n\t\"Unable to load file: %1\"?: string;\n\t\"Invalid date\"?: string;\n\n\t// Common actions\n\t\"Close\"?: string;\n\t\"Minimize\"?: string;\n\n\t\"Venn Series\"?: string;\n\t\"Venn Diagram\"?: string;\n}\n\n/**\n * Defines functions that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleFunctions {\n\t// ordinal function\n\t\"_dateOrd\": (day: number) => string;\n}\n\n/**\n * Defines all of the defaults for locale properties.\n * @ignore\n */\nexport interface ILocaleDefault extends ILocaleSettings, ILocaleFunctions { }\n\n/**\n * Defines locale interface.\n *\n * @ignore\n */\nexport interface ILocale extends Partial<ILocaleDefault> { };\n\nexport interface ILanguageSettings extends IEntitySettings {\n}\n\nexport interface ILanguagePrivate extends IEntityPrivate {\n\n\t/**\n\t * A locale for International English (default).\n\t */\n\tdefaultLocale: ILocale;\n\n}\n\nexport class Language extends Entity {\n\tdeclare public _settings: ILanguageSettings;\n\tdeclare public _privateSettings: ILanguagePrivate;\n\n\tprotected _setDefaults() {\n\t\tthis.setPrivate(\"defaultLocale\", en);\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic translate<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\n\t\t// Get langauge\n\t\tif (!locale) {\n\t\t\tlocale = this._root.locale || this.getPrivate(\"defaultLocale\");\n\t\t}\n\n\t\t// Init translation\n\t\tlet translation: string = prompt;\n\t\tlet value = locale[prompt];\n\n\t\t// Try to look for the translation\n\t\tif (value === null) {\n\t\t\ttranslation = \"\";\n\t\t}\n\t\telse if (value != null) {\n\t\t\t// It might be an empty string\n\t\t\tif (value) {\n\t\t\t\ttranslation = <string>value!;\n\t\t\t}\n\t\t}\n\t\telse if (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\t// Try to look in default language\n\t\t\treturn this.translate(prompt, this.getPrivate(\"defaultLocale\"), ...rest);\n\t\t}\n\n\t\t// Replace %1, %2, etc params\n\t\tif (rest.length) {\n\t\t\tfor (let len = rest.length, i = 0; i < len; ++i) {\n\t\t\t\ttranslation = translation.split(\"%\" + (i + 1)).join(rest[i]);\n\t\t\t}\n\t\t}\n\n\t\t// Return the translation\n\t\treturn translation;\n\t}\n\n\tpublic translateAny(prompt: string, locale?: ILocale, ...rest: Array<string>): string {\n\t\treturn this.translate(<any>prompt, locale, ...rest);\n\t}\n\n\tpublic setTranslationAny(prompt: string, translation: string, locale?: ILocale): void {\n\t\tconst localeTarget = locale || this._root.locale;\n\t\t(<any>localeTarget)[prompt] = translation;\n\t}\n\n\tpublic translateEmpty<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\t\tlet translation = this.translate(prompt, locale, ...rest);\n\t\treturn translation == prompt ? \"\" : translation;\n\t}\n\n\tpublic translateFunc<Key extends keyof ILocaleFunctions>(prompt: Key, locale?: ILocale): ILocaleFunctions[Key] {\n\n\t\tif ((<any>this._root.locale)[prompt]) {\n\t\t\treturn (<any>this._root.locale)[prompt];\n\t\t}\n\n\t\t// Try to look in default language\n\t\tif (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\treturn this.translateFunc(prompt, this.getPrivate(\"defaultLocale\"));\n\t\t}\n\n\t\t// Fail - return empty function\n\t\treturn (): string => {\n\t\t\treturn \"\";\n\t\t};\n\t}\n\n\tpublic translateAll<Key extends keyof ILocaleSettings>(list: Array<Key>, locale?: ILocale): Array<string> {\n\t\t// Translate all items in the list\n\t\tif (!this.isDefault()) {\n\t\t\treturn $array.map(list, (x) => this.translate(x, locale));\n\n\t\t} else {\n\t\t\treturn list;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the currently selected locale is a default locale.\n\t *\n\t * @return `true` if locale is default; `false` if it is not.\n\t */\n\tpublic isDefault(): boolean {\n\t\treturn this.getPrivate(\"defaultLocale\") === this._root.locale;\n\t}\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ResizeSensor.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/ResizeSensor.ts"],"names":[],"mappings":"AAAA,cAAc,CAAA,MAAM;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C;;GAEG;AACH,UAAU,MAAM;IACf,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AA0HD;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI;IAM3C,UAAU;IAIV,OAAO;IAOd,IAAW,MAAM,IAAI,MAAM,CAE1B;CACD"}
1
+ {"version":3,"file":"ResizeSensor.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/ResizeSensor.ts"],"names":[],"mappings":"AAAA,cAAc,CAAA,MAAM;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C;;GAEG;AACH,UAAU,MAAM;IACf,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AAwID;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI;IAM3C,UAAU;IAIV,OAAO;IAOd,IAAW,MAAM,IAAI,MAAM,CAE1B;CACD"}
@@ -98,8 +98,7 @@ var Raf = /** @class */ (function () {
98
98
  this._timer = requestAnimationFrame(loop_1);
99
99
  }
100
100
  // We start off with fake bounds so that sensor always kicks in
101
- //let size = target.getBoundingClientRect();
102
- var size = { width: 0, height: 0, left: 0, right: 0, top: 0, bottom: 0 };
101
+ var size = { width: 0, height: 0, left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };
103
102
  this._targets.push({ target: target, callback: callback, size: size });
104
103
  }
105
104
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ResizeSensor.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/ResizeSensor.ts"],"names":[],"mappings":"AAAA,cAAc,CAAA,MAAM;AAGpB,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAelC;;GAEG;AACH;IAIC;QAAA,iBAUC;QAbD;;;;;WAAuB;QACvB;;;;mBAAqE,EAAE;WAAC;QAGvE,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,UAAC,OAAmB;YACvD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,KAAK;gBAC1B,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;oBAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;wBAC9B,CAAC,CAAC,QAAQ,EAAE,CAAC;qBACb;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;;;;;eAED,UAAU,MAAe,EAAE,QAAoB;YAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAC1C,CAAC;;;;;;eAED,UAAa,MAAe;YAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;gBAC9B,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,CAAC;;IACF,aAAC;AAAD,CAAC,AA5BD,IA4BC;AAED;;GAEG;AACH;IAAA;QAGC;;;;mBAAgC,IAAI;WAAC;QACrC;;;;mBAAiG,EAAE;WAAC;IAmDrG,CAAC;;;;;eAjDA,UAAU,MAAe,EAAE,QAAoB;YAA/C,iBAmCC;YAlCA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB,IAAI,UAAQ,GAAkB,IAAI,CAAC;gBAEnC,IAAM,MAAI,GAAG;oBACZ,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE/B,IAAI,UAAQ,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC,UAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC9D,UAAQ,GAAG,WAAW,CAAC;wBAEvB,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;4BAC5B,IAAI,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;4BAE/C,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;gCACvE,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;gCACjB,CAAC,CAAC,QAAQ,EAAE,CAAC;6BACb;wBACF,CAAC,CAAC,CAAC;qBACH;oBAED,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/B,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC;qBAEnB;yBAAM;wBACN,KAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAI,CAAC,CAAC;qBAC1C;gBACF,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAI,CAAC,CAAC;aAC1C;YAED,+DAA+D;YAC/D,4CAA4C;YAC5C,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;QAChD,CAAC;;;;;;eAED,UAAa,MAAe;YAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;gBAC9B,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;oBACzB,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACnB;aACD;QACF,CAAC;;IArDD;;;;eAA8B,GAAG;OAAC;IAsDnC,UAAC;CAAA,AAvDD,IAuDC;AAGD;;GAEG;AACH,IAAI,QAAQ,GAAkB,IAAI,CAAC;AAEnC;;GAEG;AACH,SAAS,UAAU;IAClB,IAAI,QAAQ,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YAC1C,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;SAExB;aAAM;YACN,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;SACrB;KACD;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;GAEG;AACH;IAKC,sBAAY,OAAgB,EAAE,QAAoB;QAJlD;;;;;WAAwB;QACxB;;;;;WAA0B;QAC1B;;;;mBAA6B,KAAK;WAAC;QAGlC,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;;;;;eAED;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;;;;;;eAED;YACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACzC;QACF,CAAC;;IAED,sBAAW,gCAAM;aAAjB;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IACF,mBAAC;AAAD,CAAC,AAzBD,IAyBC","sourcesContent":["/** @ignore *//** */\n\nimport type { IDisposer } from \"./Disposer\";\nimport * as $array from \"./Array\";\n\n/**\n * @ignore\n */\ninterface Sensor {\n\taddTarget(target: Element, callback: () => void): void;\n\tremoveTarget(target: Element): void;\n}\n\n/**\n * @ignore\n */\ndeclare const ResizeObserver: any;\n\n/**\n * @ignore\n */\nclass Native implements Sensor {\n\tprivate _observer: any;\n\tprivate _targets: Array<{ target: Element, callback: () => void }> = [];\n\n\tconstructor() {\n\t\tthis._observer = new ResizeObserver((entries: Array<any>) => {\n\t\t\t$array.each(entries, (entry) => {\n\t\t\t\t$array.each(this._targets, (x) => {\n\t\t\t\t\tif (x.target === entry.target) {\n\t\t\t\t\t\tx.callback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\taddTarget(target: Element, callback: () => void) {\n\t\tthis._observer.observe(target, { box: \"content-box\" });\n\t\tthis._targets.push({ target, callback });\n\t}\n\n\tremoveTarget(target: Element) {\n\t\tthis._observer.unobserve(target);\n\n\t\t$array.keepIf(this._targets, (x) => {\n\t\t\treturn x.target !== target;\n\t\t});\n\t}\n}\n\n/**\n * @ignore\n */\nclass Raf implements Sensor {\n\tpublic static delay: number = 200;\n\n\tprivate _timer: number | null = null;\n\tprivate _targets: Array<{ target: Element, callback: () => void, size: ClientRect | DOMRect }> = [];\n\n\taddTarget(target: Element, callback: () => void) {\n\t\tif (this._timer === null) {\n\t\t\tlet lastTime: number | null = null;\n\n\t\t\tconst loop = () => {\n\t\t\t\tconst currentTime = Date.now();\n\n\t\t\t\tif (lastTime === null || currentTime > (lastTime + Raf.delay)) {\n\t\t\t\t\tlastTime = currentTime;\n\n\t\t\t\t\t$array.each(this._targets, (x) => {\n\t\t\t\t\t\tlet newSize = x.target.getBoundingClientRect();\n\n\t\t\t\t\t\tif (newSize.width !== x.size.width || newSize.height !== x.size.height) {\n\t\t\t\t\t\t\tx.size = newSize;\n\t\t\t\t\t\t\tx.callback();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (this._targets.length === 0) {\n\t\t\t\t\tthis._timer = null;\n\n\t\t\t\t} else {\n\t\t\t\t\tthis._timer = requestAnimationFrame(loop);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._timer = requestAnimationFrame(loop);\n\t\t}\n\n\t\t// We start off with fake bounds so that sensor always kicks in\n\t\t//let size = target.getBoundingClientRect();\n\t\tlet size = { width: 0, height: 0, left: 0, right: 0, top: 0, bottom: 0 };\n\t\tthis._targets.push({ target, callback, size });\n\t}\n\n\tremoveTarget(target: Element) {\n\t\t$array.keepIf(this._targets, (x) => {\n\t\t\treturn x.target !== target;\n\t\t});\n\n\t\tif (this._targets.length === 0) {\n\t\t\tif (this._timer !== null) {\n\t\t\t\tcancelAnimationFrame(this._timer);\n\t\t\t\tthis._timer = null;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/**\n * @ignore\n */\nlet observer: Sensor | null = null;\n\n/**\n * @ignore\n */\nfunction makeSensor(): Sensor {\n\tif (observer === null) {\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tobserver = new Native();\n\n\t\t} else {\n\t\t\tobserver = new Raf();\n\t\t}\n\t}\n\n\treturn observer;\n}\n\n/**\n * @ignore\n */\nexport class ResizeSensor implements IDisposer {\n\tprivate _sensor: Sensor;\n\tprivate _element: Element;\n\tprivate _disposed: boolean = false;\n\n\tconstructor(element: Element, callback: () => void) {\n\t\tthis._sensor = makeSensor();\n\t\tthis._element = element;\n\t\tthis._sensor.addTarget(element, callback);\n\t}\n\n\tpublic isDisposed() {\n\t\treturn this._disposed;\n\t}\n\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._sensor.removeTarget(this._element);\n\t\t}\n\t}\n\n\tpublic get sensor(): Sensor {\n\t\treturn this._sensor;\n\t}\n}\n"]}
1
+ {"version":3,"file":"ResizeSensor.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/ResizeSensor.ts"],"names":[],"mappings":"AAAA,cAAc,CAAA,MAAM;AAGpB,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAelC;;GAEG;AACH;IAIC;QAAA,iBAUC;QAbD;;;;;WAAuB;QACvB;;;;mBAAqE,EAAE;WAAC;QAGvE,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,UAAC,OAAmB;YACvD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,KAAK;gBAC1B,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;oBAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;wBAC9B,CAAC,CAAC,QAAQ,EAAE,CAAC;qBACb;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;;;;;eAED,UAAU,MAAe,EAAE,QAAoB;YAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAC1C,CAAC;;;;;;eAED,UAAa,MAAe;YAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;gBAC9B,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,CAAC;;IACF,aAAC;AAAD,CAAC,AA5BD,IA4BC;AAiBD;;GAEG;AACH;IAAA;QAGC;;;;mBAAgC,IAAI;WAAC;QACrC;;;;mBAAgH,EAAE;WAAC;IAkDpH,CAAC;;;;;eAhDA,UAAU,MAAe,EAAE,QAAoB;YAA/C,iBAkCC;YAjCA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB,IAAI,UAAQ,GAAkB,IAAI,CAAC;gBAEnC,IAAM,MAAI,GAAG;oBACZ,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE/B,IAAI,UAAQ,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC,UAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC9D,UAAQ,GAAG,WAAW,CAAC;wBAEvB,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;4BAC5B,IAAI,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;4BAE/C,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;gCACvE,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;gCACjB,CAAC,CAAC,QAAQ,EAAE,CAAC;6BACb;wBACF,CAAC,CAAC,CAAC;qBACH;oBAED,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/B,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC;qBAEnB;yBAAM;wBACN,KAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAI,CAAC,CAAC;qBAC1C;gBACF,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAI,CAAC,CAAC;aAC1C;YAED,+DAA+D;YAC/D,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACrF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;QAChD,CAAC;;;;;;eAED,UAAa,MAAe;YAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;gBAC9B,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;oBACzB,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACnB;aACD;QACF,CAAC;;IApDD;;;;eAA8B,GAAG;OAAC;IAqDnC,UAAC;CAAA,AAtDD,IAsDC;AAGD;;GAEG;AACH,IAAI,QAAQ,GAAkB,IAAI,CAAC;AAEnC;;GAEG;AACH,SAAS,UAAU;IAClB,IAAI,QAAQ,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YAC1C,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;SAExB;aAAM;YACN,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;SACrB;KACD;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;GAEG;AACH;IAKC,sBAAY,OAAgB,EAAE,QAAoB;QAJlD;;;;;WAAwB;QACxB;;;;;WAA0B;QAC1B;;;;mBAA6B,KAAK;WAAC;QAGlC,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;;;;;eAED;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;;;;;;eAED;YACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACzC;QACF,CAAC;;IAED,sBAAW,gCAAM;aAAjB;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IACF,mBAAC;AAAD,CAAC,AAzBD,IAyBC","sourcesContent":["/** @ignore *//** */\n\nimport type { IDisposer } from \"./Disposer\";\nimport * as $array from \"./Array\";\n\n/**\n * @ignore\n */\ninterface Sensor {\n\taddTarget(target: Element, callback: () => void): void;\n\tremoveTarget(target: Element): void;\n}\n\n/**\n * @ignore\n */\ndeclare const ResizeObserver: any;\n\n/**\n * @ignore\n */\nclass Native implements Sensor {\n\tprivate _observer: any;\n\tprivate _targets: Array<{ target: Element, callback: () => void }> = [];\n\n\tconstructor() {\n\t\tthis._observer = new ResizeObserver((entries: Array<any>) => {\n\t\t\t$array.each(entries, (entry) => {\n\t\t\t\t$array.each(this._targets, (x) => {\n\t\t\t\t\tif (x.target === entry.target) {\n\t\t\t\t\t\tx.callback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\taddTarget(target: Element, callback: () => void) {\n\t\tthis._observer.observe(target, { box: \"content-box\" });\n\t\tthis._targets.push({ target, callback });\n\t}\n\n\tremoveTarget(target: Element) {\n\t\tthis._observer.unobserve(target);\n\n\t\t$array.keepIf(this._targets, (x) => {\n\t\t\treturn x.target !== target;\n\t\t});\n\t}\n}\n\n/**\n * @ignore\n */\ninterface ClientBounds {\n\twidth: number,\n\theight: number,\n\tleft: number,\n\tright: number,\n\ttop: number,\n\tbottom: number,\n\tx: number,\n\ty: number\n}\n\n\n/**\n * @ignore\n */\nclass Raf implements Sensor {\n\tpublic static delay: number = 200;\n\n\tprivate _timer: number | null = null;\n\tprivate _targets: Array<{ target: Element, callback: () => void, size: ClientRect | DOMRect | ClientBounds }> = [];\n\n\taddTarget(target: Element, callback: () => void) {\n\t\tif (this._timer === null) {\n\t\t\tlet lastTime: number | null = null;\n\n\t\t\tconst loop = () => {\n\t\t\t\tconst currentTime = Date.now();\n\n\t\t\t\tif (lastTime === null || currentTime > (lastTime + Raf.delay)) {\n\t\t\t\t\tlastTime = currentTime;\n\n\t\t\t\t\t$array.each(this._targets, (x) => {\n\t\t\t\t\t\tlet newSize = x.target.getBoundingClientRect();\n\n\t\t\t\t\t\tif (newSize.width !== x.size.width || newSize.height !== x.size.height) {\n\t\t\t\t\t\t\tx.size = newSize;\n\t\t\t\t\t\t\tx.callback();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (this._targets.length === 0) {\n\t\t\t\t\tthis._timer = null;\n\n\t\t\t\t} else {\n\t\t\t\t\tthis._timer = requestAnimationFrame(loop);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._timer = requestAnimationFrame(loop);\n\t\t}\n\n\t\t// We start off with fake bounds so that sensor always kicks in\n\t\tlet size = { width: 0, height: 0, left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n\t\tthis._targets.push({ target, callback, size });\n\t}\n\n\tremoveTarget(target: Element) {\n\t\t$array.keepIf(this._targets, (x) => {\n\t\t\treturn x.target !== target;\n\t\t});\n\n\t\tif (this._targets.length === 0) {\n\t\t\tif (this._timer !== null) {\n\t\t\t\tcancelAnimationFrame(this._timer);\n\t\t\t\tthis._timer = null;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/**\n * @ignore\n */\nlet observer: Sensor | null = null;\n\n/**\n * @ignore\n */\nfunction makeSensor(): Sensor {\n\tif (observer === null) {\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tobserver = new Native();\n\n\t\t} else {\n\t\t\tobserver = new Raf();\n\t\t}\n\t}\n\n\treturn observer;\n}\n\n/**\n * @ignore\n */\nexport class ResizeSensor implements IDisposer {\n\tprivate _sensor: Sensor;\n\tprivate _element: Element;\n\tprivate _disposed: boolean = false;\n\n\tconstructor(element: Element, callback: () => void) {\n\t\tthis._sensor = makeSensor();\n\t\tthis._element = element;\n\t\tthis._sensor.addTarget(element, callback);\n\t}\n\n\tpublic isDisposed() {\n\t\treturn this._disposed;\n\t}\n\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._sensor.removeTarget(this._element);\n\t\t}\n\t}\n\n\tpublic get sensor(): Sensor {\n\t\treturn this._sensor;\n\t}\n}\n"]}
@@ -25,7 +25,7 @@ export declare class TemplateStates<E extends Entity> {
25
25
  }
26
26
  export declare class TemplateAdapters<E extends Entity> {
27
27
  private _callbacks;
28
- add<Key extends keyof E["_settings"]>(key: Key, callback: <O extends E["_settings"]>(value: O[Key], target?: O, key?: Key) => O[Key]): IDisposer;
28
+ add<Key extends keyof E["_settings"]>(key: Key, callback: (value: E["_settings"][Key], target: E, key: Key) => E["_settings"][Key]): IDisposer;
29
29
  remove<Key extends keyof E["_settings"]>(key: Key): void;
30
30
  _apply(entity: E): IDisposer;
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Template.ts"],"names":[],"mappings":"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"}
@@ -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\";\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 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 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[\"_settings\"]>(value: O[K], target?: O, key?: K) => O[K]> } = {};\n\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\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> {\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\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\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._settings[key] = value;\n\t}\n\n\tpublic set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\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\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\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\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._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\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\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\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\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\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\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._entities.push(entity);\n\t}\n\n\tpublic _removeObjectTemplate(entity: E) {\n\t\t$array.remove(this._entities, entity);\n\t}\n\n\tpublic _stateChanged(name: string): void {\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":"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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\";\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 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 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> {\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\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\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._settings[key] = value;\n\t}\n\n\tpublic set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\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\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\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\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._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\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\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\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\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\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\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._entities.push(entity);\n\t}\n\n\tpublic _removeObjectTemplate(entity: E) {\n\t\t$array.remove(this._entities, entity);\n\t}\n\n\tpublic _stateChanged(name: string): void {\n\t\tthis._entities.forEach((entity) => {\n\t\t\tentity._applyStateByKey(name);\n\t\t});\n\t}\n}\n"]}
@@ -1046,7 +1046,7 @@ export function mergeTags(tags1, tags2) {
1046
1046
  if (!tags1) {
1047
1047
  tags1 = [];
1048
1048
  }
1049
- return __spreadArray(__spreadArray([], __read(tags1)), __read(tags2)).filter(function (value, index, self) {
1049
+ return __spreadArray(__spreadArray([], __read(tags1), false), __read(tags2), false).filter(function (value, index, self) {
1050
1050
  return self.indexOf(value) === index;
1051
1051
  });
1052
1052
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Percent } from \"./Percent\";\nimport type { IPointerEvent } from \"../render/backend/Renderer\";\n\nimport * as $type from \"./Type\";\nimport * as $array from \"./Array\";\nimport * as $object from \"./Object\";\nimport type { IBounds } from \"./IBounds\";\n\nimport { Disposer, DisposerClass, IDisposer } from \"./Disposer\";\n\n/**\n * ============================================================================\n * DOM FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Execute a function when DOM is ready.\n *\n * @since 5.0.2\n * @param f Callback\n */\nexport function ready(f: () => void): void {\n\tif (document.readyState !== \"loading\") {\n\t\tf();\n\n\t} else {\n\t\tconst listener = () => {\n\t\t\tif (document.readyState !== \"loading\") {\n\t\t\t\tdocument.removeEventListener(\"readystatechange\", listener);\n\t\t\t\tf();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"readystatechange\", listener);\n\t}\n}\n\n/**\n * Removes a DOM element.\n * @param el Target element\n */\nexport function removeElement(el: HTMLElement): void {\n\tif (el.parentNode) {\n\t\tel.parentNode.removeChild(el);\n\t}\n}\n\n/**\n * Function that adds a disposable event listener directly to a DOM element.\n *\n * @ignore Exclude from docs\n * @param dom A DOM element to add event to\n * @param type Event type\n * @param listener Event listener\n * @returns Disposable event\n */\nexport function addEventListener<E extends Event>(dom: EventTarget, type: string, listener: (event: E) => void, options?: any): IDisposer {\n\t//@todo proper type check for options: EventListenerOptions | boolean (TS for some reason gives error on passive parameter)\n\t//console.log(type, dom);\n\tdom.addEventListener(type, <EventListener>listener, options || false);\n\n\treturn new Disposer(() => {\n\t\tdom.removeEventListener(type, <EventListener>listener, options || false);\n\t});\n}\n\n/**\n * @ignore\n */\nexport function supports(cap: \"touchevents\" | \"pointerevents\" | \"mouseevents\" | \"wheelevents\" | \"keyboardevents\"): boolean {\n\tswitch (cap) {\n\t\tcase \"touchevents\":\n\t\t\t//return \"ontouchstart\" in document.documentElement;\n\t\t\treturn window.hasOwnProperty(\"TouchEvent\");\n\n\t\tcase \"pointerevents\":\n\t\t\treturn window.hasOwnProperty(\"PointerEvent\");\n\n\t\tcase \"mouseevents\":\n\t\t\treturn window.hasOwnProperty(\"MouseEvent\");\n\n\t\tcase \"wheelevents\":\n\t\t\treturn window.hasOwnProperty(\"WheelEvent\");\n\n\t\tcase \"keyboardevents\":\n\t\t\treturn window.hasOwnProperty(\"KeyboardEvent\");\n\t}\n\treturn false;\n}\n\n/**\n * @ignore\n */\nexport function getPointerId(event: IPointerEvent) {\n\tlet id = (<any>event).pointerId || 0;\n\t//console.log(event);\n\treturn id;\n}\n\n/**\n * Removes focus from any element by shifting focus to body.\n *\n * @ignore\n */\nexport function blur(): void {\n\tif (document.activeElement && document.activeElement != document.body) {\n\t\tif ((<any>document.activeElement).blur) {\n\t\t\t(<any>document.activeElement).blur();\n\t\t}\n\t\telse {\n\t\t\tlet input = document.createElement(\"button\");\n\t\t\tinput.style.position = \"fixed\";\n\t\t\tinput.style.top = \"0px\";\n\t\t\tinput.style.left = \"-10000px\";\n\t\t\tdocument.body.appendChild(input);\n\t\t\tinput.focus();\n\t\t\tinput.blur();\n\t\t\tdocument.body.removeChild(input);\n\t\t}\n\t}\n}\n\n/**\n * Focuses element.\n *\n * @ignore\n */\nexport function focus(el: HTMLElement): void {\n\tif (el) {\n\t\tel.focus();\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getRendererEvent(key: string): string {\n\tif (supports(\"pointerevents\")) {\n\t\treturn key;\n\t}\n\telse if (supports(\"touchevents\")) {\n\t\tswitch (key) {\n\t\t\tcase \"pointerover\": return \"touchstart\";\n\t\t\tcase \"pointerout\": return \"touchend\";\n\t\t\tcase \"pointerdown\": return \"touchstart\";\n\t\t\tcase \"pointermove\": return \"touchmove\";\n\t\t\tcase \"pointerup\": return \"touchend\";\n\t\t\tcase \"click\": return \"click\";\n\t\t\tcase \"dblclick\": return \"dblclick\";\n\n\t\t}\n\t}\n\telse if (supports(\"mouseevents\")) {\n\t\tswitch (key) {\n\t\t\tcase \"pointerover\": return \"mouseover\";\n\t\t\tcase \"pointerout\": return \"mouseout\";\n\t\t\tcase \"pointerdown\": return \"mousedown\";\n\t\t\tcase \"pointermove\": return \"mousemove\";\n\t\t\tcase \"pointerup\": return \"mouseup\";\n\t\t\tcase \"click\": return \"click\";\n\t\t\tcase \"dblclick\": return \"dblclick\";\n\n\t\t}\n\t}\n\treturn key;\n}\n\n/**\n * Determines if pointer event originated from a touch pointer or mouse.\n *\n * @param ev Original event\n * @return Touch pointer?\n */\nexport function isTouchEvent(ev: MouseEvent | Touch): boolean {\n\tif (typeof Touch !== \"undefined\" && ev instanceof Touch) {\n\t\treturn true;\n\t}\n\telse if (typeof PointerEvent !== \"undefined\" && ev instanceof PointerEvent && (<any>ev).pointerType != null) {\n\t\tswitch ((<any>ev).pointerType) {\n\t\t\tcase \"touch\":\n\t\t\tcase \"pen\":\n\t\t\tcase 2:\n\t\t\t\treturn true;\n\t\t\tcase \"mouse\":\n\t\t\tcase 4:\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn !(ev instanceof MouseEvent);\n\t\t}\n\t}\n\telse if ((<any>ev).type != null) {\n\t\tif ((<any>ev).type.match(/^mouse/)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * Sets style property on DOM element.\n *\n * @ignore Exclude from docs\n */\nexport function setStyle(dom: HTMLElement, property: string, value: string | undefined): void {\n\t(<any>dom.style)[property] = value;\n}\n\nexport function getStyle(dom: HTMLElement, property: string): string | undefined {\n\treturn (<any>dom.style)[property];\n}\n\n/**\n * Checks of element `a` contains element `b`.\n *\n * @param a Aleged ascendant\n * @param b Aleged descendant\n * @return Contains?\n */\nexport function contains(a: Element, b: Element): boolean {\n\tlet cursor: Node = b;\n\n\twhile (true) {\n\t\tif (a === cursor) {\n\t\t\treturn true;\n\n\t\t} else if (cursor.parentNode === null) {\n\t\t\t// TODO better ShadowRoot detection\n\t\t\tif ((<ShadowRoot>cursor).host == null) {\n\t\t\t\treturn false;\n\n\t\t\t} else {\n\t\t\t\tcursor = (<ShadowRoot>cursor).host;\n\t\t\t}\n\n\t\t} else {\n\t\t\tcursor = cursor.parentNode;\n\t\t}\n\t}\n}\n\n/**\n * Disables or enables interactivity of a DOM element.\n *\n * @param target Target element\n * @param interactive Interactive?\n */\nexport function setInteractive(target: HTMLElement, interactive: boolean): void {\n\tif (interactive) {\n\t\ttarget.style.pointerEvents = \"\";\n\t}\n\telse {\n\t\ttarget.style.pointerEvents = \"none\";\n\t}\n}\n\n/**\n * Returns the shadow root of the element or null\n *\n * @param a Node\n * @return Root\n */\nexport function getShadowRoot(a: Node): ShadowRoot | null {\n\tlet cursor: Node = a;\n\n\twhile (true) {\n\t\tif (cursor.parentNode === null) {\n\t\t\t// TODO better ShadowRoot detection\n\t\t\tif ((<ShadowRoot>cursor).host != null) {\n\t\t\t\treturn <ShadowRoot>cursor;\n\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t} else {\n\t\t\tcursor = cursor.parentNode;\n\t\t}\n\t}\n}\n\n/**\n * [rootStylesheet description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nlet rootStylesheet: $type.Optional<CSSStyleSheet>;\n\n/**\n * @ignore Exclude from docs\n */\nfunction createStylesheet(element: ShadowRoot | null, text: string, nonce: string = \"\"): HTMLStyleElement {\n\t// TODO use createElementNS ?\n\tconst e = document.createElement(\"style\");\n\te.type = \"text/css\";\n\tif (nonce != \"\") {\n\t\te.setAttribute(\"nonce\", nonce)\n\t}\n\te.textContent = text;\n\n\tif (element === null) {\n\t\tdocument.head.appendChild(e);\n\t} else {\n\t\telement.appendChild(e);\n\t}\n\n\treturn e;\n}\n\n/**\n * [getStylesheet description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @return [description]\n */\nfunction getStylesheet(element: ShadowRoot | null, nonce: string = \"\"): CSSStyleSheet {\n\tif (element === null) {\n\t\tif (rootStylesheet == null) {\n\t\t\t// TODO use createElementNS ?\n\t\t\tconst e = document.createElement(\"style\");\n\t\t\te.type = \"text/css\";\n\t\t\tif (nonce != \"\") {\n\t\t\t\te.setAttribute(\"nonce\", nonce)\n\t\t\t}\n\t\t\tdocument.head.appendChild(e);\n\t\t\trootStylesheet = e.sheet as CSSStyleSheet;\n\t\t}\n\n\t\treturn rootStylesheet;\n\n\t} else {\n\t\t// TODO use createElementNS ?\n\t\tconst e = document.createElement(\"style\");\n\t\te.type = \"text/css\";\n\t\tif (nonce != \"\") {\n\t\t\te.setAttribute(\"nonce\", nonce)\n\t\t}\n\t\telement.appendChild(e);\n\t\treturn e.sheet as CSSStyleSheet;\n\t}\n}\n\n/**\n * [makeStylesheet description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param selector [description]\n * @return [description]\n */\nfunction appendStylesheet(root: CSSStyleSheet, selector: string): CSSStyleRule {\n\tconst index = root.cssRules.length;\n\n\troot.insertRule(selector + \"{}\", index);\n\n\treturn root.cssRules[index] as CSSStyleRule;\n}\n\n/**\n * Defines a class for a CSS rule.\n *\n * Can be used to dynamically add CSS to the document.\n */\nexport class StyleRule extends DisposerClass {\n\tprivate _root: CSSStyleSheet;\n\n\t/**\n\t * CSS rule.\n\t */\n\tprivate _rule: CSSStyleRule;\n\n\t/**\n\t * A CSS selector text.\n\t *\n\t * E.g.: `.myClass p`\n\t *\n\t * @param selector CSS selector\n\t */\n\tpublic set selector(selector: string) {\n\t\tthis._rule.selectorText = selector;\n\t}\n\n\t/**\n\t * @return CSS selector\n\t */\n\tpublic get selector(): string {\n\t\treturn this._rule.selectorText;\n\t}\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param selector CSS selector\n\t * @param styles An object of style attribute - value pairs\n\t */\n\tconstructor(element: ShadowRoot | null, selector: string, styles: { [name: string]: string }, nonce: string = \"\") {\n\t\tsuper();\n\n\t\tthis._root = getStylesheet(element, nonce);\n\n\t\tthis._rule = appendStylesheet(this._root, selector);\n\n\t\t$object.each(styles, (key, value) => {\n\t\t\tthis.setStyle(<string>key, value);\n\t\t});\n\t}\n\n\t// TODO test this\n\tprotected _dispose(): void {\n\t\t// TODO a bit hacky\n\t\tconst index = $array.indexOf(this._root.cssRules, this._rule);\n\n\t\tif (index === -1) {\n\t\t\tthrow new Error(\"Could not dispose StyleRule\");\n\n\t\t} else {\n\t\t\t// TODO if it's empty remove it from the DOM ?\n\t\t\tthis._root.deleteRule(index);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the same style properties with browser-specific prefixes.\n\t *\n\t * @param name Attribute name\n\t * @param value Attribute value\n\t */\n\tprivate _setVendorPrefixName(name: string, value: string): void {\n\t\tconst style = this._rule.style;\n\t\tstyle.setProperty(\"-webkit-\" + name, value, \"\");\n\t\tstyle.setProperty(\"-moz-\" + name, value, \"\");\n\t\tstyle.setProperty(\"-ms-\" + name, value, \"\");\n\t\tstyle.setProperty(\"-o-\" + name, value, \"\");\n\t\tstyle.setProperty(name, value, \"\");\n\t}\n\n\t/**\n\t * Sets a value for specific style attribute.\n\t *\n\t * @param name Attribute\n\t * @param value Value\n\t */\n\tpublic setStyle(name: string, value: string): void {\n\t\tif (name === \"transition\") {\n\t\t\tthis._setVendorPrefixName(name, value);\n\n\t\t} else {\n\t\t\tthis._rule.style.setProperty(name, value, \"\");\n\t\t}\n\t}\n}\n\n/**\n * Defines a class for an entire CSS style sheet.\n *\n * Can be used to dynamically add CSS to the document.\n */\nexport class StyleSheet extends DisposerClass {\n\tprivate _element: HTMLStyleElement;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param text CSS stylesheet\n\t */\n\tconstructor(element: ShadowRoot | null, text: string, nonce: string = \"\") {\n\t\tsuper();\n\t\tthis._element = createStylesheet(element, text, nonce);\n\t}\n\n\tprotected _dispose(): void {\n\t\tif (this._element.parentNode) {\n\t\t\tthis._element.parentNode.removeChild(this._element);\n\t\t}\n\t}\n}\n\n// /**\n// * Applies a set of styles to an element. Stores the original styles so they\n// * can be restored later.\n// *\n// * @ignore\n// * @param io Element\n// */\n// export function prepElementForDrag(dom: HTMLElement): void {\n\n// \t// @todo: save current values\n\n// \t// Define possible props\n// \tlet props = [\n// \t\t\"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\n// \t\t\"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\n// \t\t\"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\n// \t\t\"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\n// \t\t\"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\n// \t\t\"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\n// \t];\n// \tfor (let i = 0; i < props.length; i++) {\n// \t\tif (props[i] in dom.style) {\n// \t\t\tsetStyle(dom, props[i], \"none\");\n// \t\t}\n// \t}\n\n// \t// Remove iOS-specific selection;\n// \tsetStyle(dom, \"tapHighlightColor\", \"rgba(0, 0, 0, 0)\");\n\n// }\n\n// /**\n// * Restores replaced styles\n// *\n// * @ignore\n// * @param io Element\n// */\n// export function unprepElementForDrag(dom: HTMLElement): void {\n\n// \t// Define possible props\n// \tlet props = [\n// \t\t\"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\n// \t\t\"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\n// \t\t\"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\n// \t\t\"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\n// \t\t\"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\n// \t\t\"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\n// \t];\n// \tfor (let i = 0; i < props.length; i++) {\n// \t\tif (props[i] in dom.style) {\n// \t\t\tsetStyle(dom, props[i], \"\");\n// \t\t}\n// \t}\n\n// \t// Remove iOS-specific selection;\n// \tsetStyle(dom, \"tapHighlightColor\", \"\");\n\n// }\n\nexport function iOS(): boolean {\n\treturn /apple/i.test(navigator.vendor) && \"ontouchend\" in document;\n}\n\nexport function getSafeResolution(): number | undefined {\n\treturn iOS() ? 1 : undefined;\n}\n\nexport function relativeToValue(percent: number | Percent | undefined | null, full: number): number {\n\tif ($type.isNumber(percent)) {\n\t\treturn percent;\n\t} else if (percent != null && $type.isNumber(percent.value) && $type.isNumber(full)) {\n\t\treturn full * percent.value;\n\n\t} else {\n\t\treturn 0;\n\t}\n}\n\n\n\n/**\n * Returns number of decimals\n *\n * @ignore Exclude from docs\n * @param number Input number\n * @return Number of decimals\n */\nexport function decimalPlaces(number: number): number {\n\tlet match = ('' + number).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\tif (!match) { return 0; }\n\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\n}\n\n\n/**\n * ============================================================================\n * STRING FORMATTING FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Pads a string with additional characters to certain length.\n *\n * @param value A numeric value\n * @param len Result string length in characters\n * @param char A character to use for padding\n * @return Padded value as string\n */\nexport function padString(value: any, len: number = 0, char: string = \"0\"): string {\n\tif (typeof value !== \"string\") {\n\t\tvalue = value.toString();\n\t}\n\n\treturn len > value.length ? Array(len - value.length + 1).join(char) + value : value;\n}\n\nexport function trimLeft(text: string): string {\n\treturn text.replace(/^[\\s]*/, \"\");\n}\n\nexport function trimRight(text: string): string {\n\treturn text.replace(/[\\s]*$/, \"\");\n}\n\nexport function trim(text: string): string {\n\treturn trimLeft(trimRight(text));\n}\n\n/**\n * Tries to determine format type.\n *\n * @ignore Exclude from docs\n * @param format Format string\n * @return Format type (\"string\" | \"number\" | \"date\" | \"duration\")\n */\nexport function getFormat(format: string): string {\n\n\t// Undefined?\n\tif (typeof format === \"undefined\") {\n\t\treturn \"string\";\n\t}\n\n\t// Cleanup and lowercase format\n\tformat = format.toLowerCase().replace(/^\\[[^\\]]*\\]/, \"\");\n\n\t// Remove style tags\n\tformat = format.replace(/\\[[^\\]]+\\]/, \"\");\n\n\t// Trim\n\tformat = format.trim();\n\n\t// Check for any explicit format hints (i.e. /Date)\n\tlet hints: RegExpMatchArray | null = format.match(/\\/(date|number|duration)$/);\n\n\tif (hints) {\n\t\treturn hints[1];\n\t}\n\n\t// Check for explicit hints\n\tif (format === \"number\") {\n\t\treturn \"number\";\n\t}\n\n\tif (format === \"date\") {\n\t\treturn \"date\";\n\t}\n\n\tif (format === \"duration\") {\n\t\treturn \"duration\";\n\t}\n\n\t// Detect number formatting symbols\n\tif (format.match(/[#0]/)) {\n\t\treturn \"number\";\n\t}\n\n\t// Detect date formatting symbols\n\tif (format.match(/[ymwdhnsqaxkzgtei]/)) {\n\t\treturn \"date\";\n\t}\n\n\t// Nothing? Let's display as string\n\treturn \"string\";\n}\n\n/**\n * Cleans up format:\n * * Strips out formatter hints\n *\n * @ignore Exclude from docs\n * @param format Format\n * @return Cleaned format\n */\nexport function cleanFormat(format: string): string {\n\treturn format.replace(/\\/(date|number|duration)$/i, \"\");\n}\n\n/**\n * Strips all tags from the string.\n *\n * @param text Source string\n * @return String without tags\n */\nexport function stripTags(text: string): string {\n\treturn text ? text.replace(/<[^>]*>/g, \"\") : text;\n}\n\n/**\n * Removes new lines and tags from a string.\n *\n * @param text String to conver\n * @return Converted string\n */\nexport function plainText(text: string): string {\n\treturn text ? stripTags((\"\" + text).replace(/[\\n\\r]+/g, \". \")) : text;\n}\n\n/**\n * Escapes string so it can safely be used in a Regex.\n *\n * @param value Unsescaped string\n * @return Escaped string\n */\nexport function escapeForRgex(value: string): string {\n\treturn value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * ============================================================================\n * DATE-RELATED FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Returns a year day.\n *\n * @param date Date\n * @param utc Assume UTC dates?\n * @return Year day\n * @todo Account for UTC\n */\nexport function getYearDay(date: Date, utc: boolean = false): number {\n\t// TODO: utc needed?\n\tutc;\n\tconst start = new Date(date.getFullYear(), 0, 0);\n\tconst diff = (date.getTime() - start.getTime()) + ((start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000);\n\tconst oneDay = 1000 * 60 * 60 * 24;\n\treturn Math.floor(diff / oneDay);\n}\n\n/**\n * Returns week number for a given date.\n *\n * @param date Date\n * @param utc Assume UTC dates?\n * @return Week number\n * @todo Account for UTC\n */\nexport function getWeek(date: Date, utc: boolean = false): number {\n\tconst day = getYearDay(date, utc) - 1;\n\tlet week = Math.floor((day - (date.getDay() || 7) + 10) / 7);\n\tif (week === 0) {\n\t\tweek = 53;\n\t}\n\telse if (week === 53) {\n\t\tweek = 1;\n\t}\n\treturn week;\n}\n\n/**\n * Returns a week number in the month.\n *\n * @param date Source Date\n * @param utc Assume UTC dates?\n * @return Week number in month\n */\nexport function getMonthWeek(date: Date, utc: boolean = false): number {\n\tconst firstWeek = getWeek(new Date(date.getFullYear(), date.getMonth(), 1), utc);\n\tlet currentWeek = getWeek(date, utc);\n\tif (currentWeek == 1) {\n\t\tcurrentWeek = 53;\n\t}\n\treturn currentWeek - firstWeek + 1;\n}\n\n/**\n * Returns a year day out of the given week number.\n *\n * @param week Week\n * @param year Year\n * @param weekday Weekday\n * @param utc Assume UTC dates\n * @return Day in a year\n */\nexport function getDayFromWeek(week: number, year: number, weekday: number = 1, utc: boolean = false): number {\n\tlet date = new Date(year, 0, 4, 0, 0, 0, 0);\n\tif (utc) {\n\t\tdate.setUTCFullYear(year);\n\t}\n\tlet day = week * 7 + weekday - ((date.getDay() || 7) + 3);\n\treturn day;\n}\n\n/**\n * Returns 12-hour representation out of the 24-hour hours.\n *\n * @param hours 24-hour number\n * @return 12-hour number\n */\nexport function get12Hours(hours: number, base?: number): number {\n\tif (hours > 12) {\n\t\thours -= 12;\n\t}\n\telse if (hours === 0) {\n\t\thours = 12;\n\t}\n\treturn base != null ? hours + (base - 1) : hours;\n}\n\n/**\n * Returns a string name of the time zone.\n *\n * @param date Date object\n * @param long Should return long (\"Pacific Standard Time\") or short abbreviation (\"PST\")\n * @param savings Include information if it's in daylight savings mode\n * @param utc Assume UTC dates\n * @return Time zone name\n */\nexport function getTimeZone(date: Date, long: boolean = false, savings: boolean = false, utc: boolean = false): string {\n\tif (utc) {\n\t\treturn long ? \"Coordinated Universal Time\" : \"UTC\";\n\t}\n\tlet wotz = date.toLocaleString(\"UTC\");\n\tlet wtz = date.toLocaleString(\"UTC\", { timeZoneName: long ? \"long\" : \"short\" }).substr(wotz.length);\n\t//wtz = wtz.replace(/[+-]+[0-9]+$/, \"\");\n\tif (savings === false) {\n\t\twtz = wtz.replace(/ (standard|daylight|summer|winter) /i, \" \");\n\t}\n\treturn wtz;\n}\n\n\nexport function capitalizeFirst(text: string): string {\n\treturn text.charAt(0).toUpperCase() + text.slice(1);\n}\n\n\n/**\n * ============================================================================\n * COLOR UTILS\n * ============================================================================\n */\n\n\n/**\n * Represents an interface for an object that represents an RGB color.\n */\nexport interface iRGB {\n\tr: number;\n\tg: number;\n\tb: number;\n\ta?: number;\n}\n\n/**\n * Represents an interface for an object that represents an HSL color.\n */\nexport interface iHSL {\n\th: number;\n\ts: number;\n\tl: number;\n\ta?: number;\n}\n\n/**\n * The functions below are taken and adapted from Garry Tan's blog post:\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n *\n * The further attributions go mjijackson.com, which now seems to be defunct.\n */\n\n\n/**\n * Converts an HSL color value to RGB. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes h, s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n *\n * Function adapted from:\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n *\n * @ignore Exclude from docs\n * @param h The hue\n * @param s The saturation\n * @param l The lightness\n * @return The RGB representation\n */\nexport function hslToRgb(color: iHSL): iRGB {\n\tlet r, g, b;\n\tlet h = color.h;\n\tlet s = color.s;\n\tlet l = color.l;\n\n\tif (s == 0) {\n\t\tr = g = b = l; // achromatic\n\t} else {\n\t\tlet hue2rgb = function hue2rgb(p: number, q: number, t: number) {\n\t\t\tif (t < 0) { t += 1; }\n\t\t\tif (t > 1) { t -= 1; }\n\t\t\tif (t < 1 / 6) { return p + (q - p) * 6 * t; }\n\t\t\tif (t < 1 / 2) { return q; }\n\t\t\tif (t < 2 / 3) { return p + (q - p) * (2 / 3 - t) * 6; }\n\t\t\treturn p;\n\t\t}\n\n\t\tlet q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\tlet p = 2 * l - q;\n\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\tg = hue2rgb(p, q, h);\n\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t}\n\n\treturn {\n\t\tr: Math.round(r * 255),\n\t\tg: Math.round(g * 255),\n\t\tb: Math.round(b * 255)\n\t};\n}\n\n/**\n * Converts an RGB color value to HSL. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h, s, and l in the set [0, 1].\n *\n * Function adapted from:\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n *\n * @ignore Exclude from docs\n * @param r The red color value\n * @param g The green color value\n * @param b The blue color value\n * @return The HSL representation\n */\nexport function rgbToHsl(color: iRGB): iHSL {\n\tlet r = color.r / 255;\n\tlet g = color.g / 255;\n\tlet b = color.b / 255;\n\tlet max = Math.max(r, g, b);\n\tlet min = Math.min(r, g, b);\n\tlet h = 0;\n\tlet s = 0;\n\tlet l = (max + min) / 2;\n\n\tif (max === min) {\n\t\th = s = 0; // achromatic\n\n\t} else {\n\t\tlet d = max - min;\n\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n\t\tswitch (max) {\n\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\tcase b: h = (r - g) / d + 4; break;\n\t\t}\n\n\t\th /= 6;\n\t}\n\n\treturn {\n\t\th: h,\n\t\ts: s,\n\t\tl: l\n\t};\n}\n\n/**\n * Returns a color that is `percent` brighter than the reference color.\n *\n * @ignore Exclude from docs\n * @param color Reference color\n * @param percent Brightness percent\n * @return Hex code of the new color\n */\nexport function lighten(rgb: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\n\tif (rgb) {\n\t\treturn {\n\t\t\tr: Math.max(0, Math.min(255, rgb.r + getLightnessStep(rgb.r, percent))),\n\t\t\tg: Math.max(0, Math.min(255, rgb.g + getLightnessStep(rgb.g, percent))),\n\t\t\tb: Math.max(0, Math.min(255, rgb.b + getLightnessStep(rgb.b, percent))),\n\t\t\ta: rgb.a\n\t\t};\n\n\t} else {\n\t\t// TODO is this correct ?\n\t\treturn rgb;\n\t}\n};\n\n/**\n * Gets lightness step.\n *\n * @ignore Exclude from docs\n * @param value Value\n * @param percent Percent\n * @return Step\n */\nexport function getLightnessStep(value: number, percent: number): number {\n\tlet base = percent > 0 ? 255 - value : value;\n\treturn Math.round(base * percent);\n}\n\n/**\n * Returns a color that is `percent` brighter than the source `color`.\n *\n * @ignore Exclude from docs\n * @param color Source color\n * @param percent Brightness percent\n * @return New color\n */\nexport function brighten(rgb: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\n\tif (rgb) {\n\t\tlet base = Math.min(Math.max(rgb.r, rgb.g, rgb.b), 230);\n\t\t//let base = Math.max(rgb.r, rgb.g, rgb.b);\n\t\tlet step = getLightnessStep(base, percent);\n\t\treturn {\n\t\t\tr: Math.max(0, Math.min(255, Math.round(rgb.r + step))),\n\t\t\tg: Math.max(0, Math.min(255, Math.round(rgb.g + step))),\n\t\t\tb: Math.max(0, Math.min(255, Math.round(rgb.b + step))),\n\t\t\ta: rgb.a\n\t\t};\n\n\t} else {\n\t\t// TODO is this correct ?\n\t\treturn rgb;\n\t}\n};\n\n/**\n * Returns brightness step.\n *\n * @ignore Exclude from docs\n * @param value Value\n * @param percent Percent\n * @return Step\n */\nexport function getBrightnessStep(_value: number, percent: number): number {\n\tlet base = 255; //percent > 0 ? 255 - value : value;\n\treturn Math.round(base * percent);\n}\n\n/**\n * Returns `true` if color is \"light\". Useful indetermining which contrasting\n * color to use for elements over this color. E.g.: you would want to use\n * black text over light background, and vice versa.\n *\n * @ignore Exclude from docs\n * @param color Source color\n * @return Light?\n */\nexport function isLight(color: iRGB): boolean {\n\treturn ((color.r * 299) + (color.g * 587) + (color.b * 114)) / 1000 >= 128;\n}\n\n/**\n * Returns a new [[iRGB]] object based on `rgb` parameter with specific\n * saturation applied.\n *\n * `saturation` can be in the range of 0 (fully desaturated) to 1 (fully\n * saturated).\n *\n * @ignore Exclude from docs\n * @param color Base color\n * @param saturation Saturation (0-1)\n * @return New color\n */\nexport function saturate(rgb: $type.Optional<iRGB>, saturation: number): $type.Optional<iRGB> {\n\tif (rgb === undefined || saturation == 1) {\n\t\treturn rgb;\n\t}\n\n\tlet hsl = rgbToHsl(rgb);\n\thsl.s = saturation;\n\treturn hslToRgb(hsl);\n}\n\nexport function alternativeColor(color: iRGB, lightAlternative: iRGB = { r: 255, g: 255, b: 255 }, darkAlternative: iRGB = { r: 255, g: 255, b: 255 }): iRGB {\n\tlet light = lightAlternative;\n\tlet dark = darkAlternative;\n\tif (isLight(darkAlternative)) {\n\t\tlight = darkAlternative;\n\t\tdark = lightAlternative;\n\t}\n\treturn isLight(color) ? dark : light;\n}\n\n/**\n * @ignore\n * @deprecated\n */\n// export function unshiftThemeClass(settings: any, themeClass: string) {\n// \tlet themeClasses = settings.themeClasses;\n// \tif (!themeClasses) {\n// \t\tthemeClasses = [];\n// \t}\n// \tthemeClasses.unshift(themeClass);\n// \tsettings.themeClasses = themeClasses;\n// }\n\n/**\n * @ignore\n * @deprecated\n */\n// export function pushThemeClass(settings: any, themeClass: string) {\n// \tlet themeClasses = settings.themeClasses;\n// \tif (!themeClasses) {\n// \t\tthemeClasses = [];\n// \t}\n// \tthemeClasses.push(themeClass);\n// \tsettings.themeClasses = themeClasses;\n// }\n\n/**\n * @ignore\n */\nexport function mergeTags(tags1: string[] | undefined, tags2: string[]): string[] {\n\tif (!tags1) {\n\t\ttags1 = [];\n\t}\n\treturn [...tags1, ...tags2].filter((value, index, self) => {\n\t\treturn self.indexOf(value) === index;\n\t});\n}\n\n/**\n * @ignore\n */\nexport function sameBounds(a: IBounds, b?: IBounds): boolean {\n\tif (!b) {\n\t\treturn false;\n\t}\n\tif (a.left != b.left) {\n\t\treturn false\n\t}\n\tif (a.right != b.right) {\n\t\treturn false\n\t}\n\tif (a.top != b.top) {\n\t\treturn false\n\t}\n\tif (a.bottom != b.bottom) {\n\t\treturn false\n\t}\n\treturn true;\n}\n"]}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Percent } from \"./Percent\";\nimport type { IPointerEvent } from \"../render/backend/Renderer\";\n\nimport * as $type from \"./Type\";\nimport * as $array from \"./Array\";\nimport * as $object from \"./Object\";\nimport type { IBounds } from \"./IBounds\";\n\nimport { Disposer, DisposerClass, IDisposer } from \"./Disposer\";\n\n/**\n * ============================================================================\n * DOM FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Execute a function when DOM is ready.\n *\n * @since 5.0.2\n * @param f Callback\n */\nexport function ready(f: () => void): void {\n\tif (document.readyState !== \"loading\") {\n\t\tf();\n\n\t} else {\n\t\tconst listener = () => {\n\t\t\tif (document.readyState !== \"loading\") {\n\t\t\t\tdocument.removeEventListener(\"readystatechange\", listener);\n\t\t\t\tf();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"readystatechange\", listener);\n\t}\n}\n\n/**\n * Removes a DOM element.\n * @param el Target element\n */\nexport function removeElement(el: HTMLElement): void {\n\tif (el.parentNode) {\n\t\tel.parentNode.removeChild(el);\n\t}\n}\n\n/**\n * Function that adds a disposable event listener directly to a DOM element.\n *\n * @ignore Exclude from docs\n * @param dom A DOM element to add event to\n * @param type Event type\n * @param listener Event listener\n * @returns Disposable event\n */\nexport function addEventListener<E extends Event>(dom: EventTarget, type: string, listener: (event: E) => void, options?: any): IDisposer {\n\t//@todo proper type check for options: EventListenerOptions | boolean (TS for some reason gives error on passive parameter)\n\t//console.log(type, dom);\n\tdom.addEventListener(type, <EventListener>listener, options || false);\n\n\treturn new Disposer(() => {\n\t\tdom.removeEventListener(type, <EventListener>listener, options || false);\n\t});\n}\n\n/**\n * @ignore\n */\nexport function supports(cap: \"touchevents\" | \"pointerevents\" | \"mouseevents\" | \"wheelevents\" | \"keyboardevents\"): boolean {\n\tswitch (cap) {\n\t\tcase \"touchevents\":\n\t\t\t//return \"ontouchstart\" in document.documentElement;\n\t\t\treturn window.hasOwnProperty(\"TouchEvent\");\n\n\t\tcase \"pointerevents\":\n\t\t\treturn window.hasOwnProperty(\"PointerEvent\");\n\n\t\tcase \"mouseevents\":\n\t\t\treturn window.hasOwnProperty(\"MouseEvent\");\n\n\t\tcase \"wheelevents\":\n\t\t\treturn window.hasOwnProperty(\"WheelEvent\");\n\n\t\tcase \"keyboardevents\":\n\t\t\treturn window.hasOwnProperty(\"KeyboardEvent\");\n\t}\n\treturn false;\n}\n\n/**\n * @ignore\n */\nexport function getPointerId(event: IPointerEvent) {\n\tlet id = (<any>event).pointerId || 0;\n\t//console.log(event);\n\treturn id;\n}\n\n/**\n * Removes focus from any element by shifting focus to body.\n *\n * @ignore\n */\nexport function blur(): void {\n\tif (document.activeElement && document.activeElement != document.body) {\n\t\tif ((<any>document.activeElement).blur) {\n\t\t\t(<any>document.activeElement).blur();\n\t\t}\n\t\telse {\n\t\t\tlet input = document.createElement(\"button\");\n\t\t\tinput.style.position = \"fixed\";\n\t\t\tinput.style.top = \"0px\";\n\t\t\tinput.style.left = \"-10000px\";\n\t\t\tdocument.body.appendChild(input);\n\t\t\tinput.focus();\n\t\t\tinput.blur();\n\t\t\tdocument.body.removeChild(input);\n\t\t}\n\t}\n}\n\n/**\n * Focuses element.\n *\n * @ignore\n */\nexport function focus(el: HTMLElement): void {\n\tif (el) {\n\t\tel.focus();\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getRendererEvent(key: string): string {\n\tif (supports(\"pointerevents\")) {\n\t\treturn key;\n\t}\n\telse if (supports(\"touchevents\")) {\n\t\tswitch (key) {\n\t\t\tcase \"pointerover\": return \"touchstart\";\n\t\t\tcase \"pointerout\": return \"touchend\";\n\t\t\tcase \"pointerdown\": return \"touchstart\";\n\t\t\tcase \"pointermove\": return \"touchmove\";\n\t\t\tcase \"pointerup\": return \"touchend\";\n\t\t\tcase \"click\": return \"click\";\n\t\t\tcase \"dblclick\": return \"dblclick\";\n\n\t\t}\n\t}\n\telse if (supports(\"mouseevents\")) {\n\t\tswitch (key) {\n\t\t\tcase \"pointerover\": return \"mouseover\";\n\t\t\tcase \"pointerout\": return \"mouseout\";\n\t\t\tcase \"pointerdown\": return \"mousedown\";\n\t\t\tcase \"pointermove\": return \"mousemove\";\n\t\t\tcase \"pointerup\": return \"mouseup\";\n\t\t\tcase \"click\": return \"click\";\n\t\t\tcase \"dblclick\": return \"dblclick\";\n\n\t\t}\n\t}\n\treturn key;\n}\n\n/**\n * Determines if pointer event originated from a touch pointer or mouse.\n *\n * @param ev Original event\n * @return Touch pointer?\n */\nexport function isTouchEvent(ev: MouseEvent | Touch): boolean {\n\tif (typeof Touch !== \"undefined\" && ev instanceof Touch) {\n\t\treturn true;\n\t}\n\telse if (typeof PointerEvent !== \"undefined\" && ev instanceof PointerEvent && (<any>ev).pointerType != null) {\n\t\tswitch ((<any>ev).pointerType) {\n\t\t\tcase \"touch\":\n\t\t\tcase \"pen\":\n\t\t\tcase 2:\n\t\t\t\treturn true;\n\t\t\tcase \"mouse\":\n\t\t\tcase 4:\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn !(ev instanceof MouseEvent);\n\t\t}\n\t}\n\telse if ((<any>ev).type != null) {\n\t\tif ((<any>ev).type.match(/^mouse/)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * Sets style property on DOM element.\n *\n * @ignore Exclude from docs\n */\nexport function setStyle(dom: HTMLElement, property: string, value: string | undefined): void {\n\t(<any>dom.style)[property] = value;\n}\n\nexport function getStyle(dom: HTMLElement, property: string): string | undefined {\n\treturn (<any>dom.style)[property];\n}\n\n/**\n * Checks of element `a` contains element `b`.\n *\n * @param a Aleged ascendant\n * @param b Aleged descendant\n * @return Contains?\n */\nexport function contains(a: Element, b: Element): boolean {\n\tlet cursor: Node = b;\n\n\twhile (true) {\n\t\tif (a === cursor) {\n\t\t\treturn true;\n\n\t\t} else if (cursor.parentNode === null) {\n\t\t\t// TODO better ShadowRoot detection\n\t\t\tif ((<ShadowRoot>cursor).host == null) {\n\t\t\t\treturn false;\n\n\t\t\t} else {\n\t\t\t\tcursor = (<ShadowRoot>cursor).host;\n\t\t\t}\n\n\t\t} else {\n\t\t\tcursor = cursor.parentNode;\n\t\t}\n\t}\n}\n\n/**\n * Disables or enables interactivity of a DOM element.\n *\n * @param target Target element\n * @param interactive Interactive?\n */\nexport function setInteractive(target: HTMLElement, interactive: boolean): void {\n\tif (interactive) {\n\t\ttarget.style.pointerEvents = \"\";\n\t}\n\telse {\n\t\ttarget.style.pointerEvents = \"none\";\n\t}\n}\n\n/**\n * Returns the shadow root of the element or null\n *\n * @param a Node\n * @return Root\n */\nexport function getShadowRoot(a: Node): ShadowRoot | null {\n\tlet cursor: Node = a;\n\n\twhile (true) {\n\t\tif (cursor.parentNode === null) {\n\t\t\t// TODO better ShadowRoot detection\n\t\t\tif ((<ShadowRoot>cursor).host != null) {\n\t\t\t\treturn <ShadowRoot>cursor;\n\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t} else {\n\t\t\tcursor = cursor.parentNode;\n\t\t}\n\t}\n}\n\n/**\n * [rootStylesheet description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nlet rootStylesheet: $type.Optional<CSSStyleSheet>;\n\n/**\n * @ignore Exclude from docs\n */\nfunction createStylesheet(element: ShadowRoot | null, text: string, nonce: string = \"\"): HTMLStyleElement {\n\t// TODO use createElementNS ?\n\tconst e = document.createElement(\"style\");\n\te.type = \"text/css\";\n\tif (nonce != \"\") {\n\t\te.setAttribute(\"nonce\", nonce)\n\t}\n\te.textContent = text;\n\n\tif (element === null) {\n\t\tdocument.head.appendChild(e);\n\t} else {\n\t\telement.appendChild(e);\n\t}\n\n\treturn e;\n}\n\n/**\n * [getStylesheet description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @return [description]\n */\nfunction getStylesheet(element: ShadowRoot | null, nonce: string = \"\"): CSSStyleSheet {\n\tif (element === null) {\n\t\tif (rootStylesheet == null) {\n\t\t\t// TODO use createElementNS ?\n\t\t\tconst e = document.createElement(\"style\");\n\t\t\te.type = \"text/css\";\n\t\t\tif (nonce != \"\") {\n\t\t\t\te.setAttribute(\"nonce\", nonce)\n\t\t\t}\n\t\t\tdocument.head.appendChild(e);\n\t\t\trootStylesheet = e.sheet as CSSStyleSheet;\n\t\t}\n\n\t\treturn rootStylesheet;\n\n\t} else {\n\t\t// TODO use createElementNS ?\n\t\tconst e = document.createElement(\"style\");\n\t\te.type = \"text/css\";\n\t\tif (nonce != \"\") {\n\t\t\te.setAttribute(\"nonce\", nonce)\n\t\t}\n\t\telement.appendChild(e);\n\t\treturn e.sheet as CSSStyleSheet;\n\t}\n}\n\n/**\n * [makeStylesheet description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param selector [description]\n * @return [description]\n */\nfunction appendStylesheet(root: CSSStyleSheet, selector: string): CSSStyleRule {\n\tconst index = root.cssRules.length;\n\n\troot.insertRule(selector + \"{}\", index);\n\n\treturn root.cssRules[index] as CSSStyleRule;\n}\n\n/**\n * Defines a class for a CSS rule.\n *\n * Can be used to dynamically add CSS to the document.\n */\nexport class StyleRule extends DisposerClass {\n\tprivate _root: CSSStyleSheet;\n\n\t/**\n\t * CSS rule.\n\t */\n\tprivate _rule: CSSStyleRule;\n\n\t/**\n\t * A CSS selector text.\n\t *\n\t * E.g.: `.myClass p`\n\t *\n\t * @param selector CSS selector\n\t */\n\tpublic set selector(selector: string) {\n\t\tthis._rule.selectorText = selector;\n\t}\n\n\t/**\n\t * @return CSS selector\n\t */\n\tpublic get selector(): string {\n\t\treturn this._rule.selectorText;\n\t}\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param selector CSS selector\n\t * @param styles An object of style attribute - value pairs\n\t */\n\tconstructor(element: ShadowRoot | null, selector: string, styles: { [name: string]: string }, nonce: string = \"\") {\n\t\tsuper();\n\n\t\tthis._root = getStylesheet(element, nonce);\n\n\t\tthis._rule = appendStylesheet(this._root, selector);\n\n\t\t$object.each(styles, (key, value) => {\n\t\t\tthis.setStyle(<string>key, value);\n\t\t});\n\t}\n\n\t// TODO test this\n\tprotected _dispose(): void {\n\t\t// TODO a bit hacky\n\t\tconst index = $array.indexOf(this._root.cssRules, this._rule);\n\n\t\tif (index === -1) {\n\t\t\tthrow new Error(\"Could not dispose StyleRule\");\n\n\t\t} else {\n\t\t\t// TODO if it's empty remove it from the DOM ?\n\t\t\tthis._root.deleteRule(index);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the same style properties with browser-specific prefixes.\n\t *\n\t * @param name Attribute name\n\t * @param value Attribute value\n\t */\n\tprivate _setVendorPrefixName(name: string, value: string): void {\n\t\tconst style = this._rule.style;\n\t\tstyle.setProperty(\"-webkit-\" + name, value, \"\");\n\t\tstyle.setProperty(\"-moz-\" + name, value, \"\");\n\t\tstyle.setProperty(\"-ms-\" + name, value, \"\");\n\t\tstyle.setProperty(\"-o-\" + name, value, \"\");\n\t\tstyle.setProperty(name, value, \"\");\n\t}\n\n\t/**\n\t * Sets a value for specific style attribute.\n\t *\n\t * @param name Attribute\n\t * @param value Value\n\t */\n\tpublic setStyle(name: string, value: string): void {\n\t\tif (name === \"transition\") {\n\t\t\tthis._setVendorPrefixName(name, value);\n\n\t\t} else {\n\t\t\tthis._rule.style.setProperty(name, value, \"\");\n\t\t}\n\t}\n}\n\n/**\n * Defines a class for an entire CSS style sheet.\n *\n * Can be used to dynamically add CSS to the document.\n */\nexport class StyleSheet extends DisposerClass {\n\tprivate _element: HTMLStyleElement;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param text CSS stylesheet\n\t */\n\tconstructor(element: ShadowRoot | null, text: string, nonce: string = \"\") {\n\t\tsuper();\n\t\tthis._element = createStylesheet(element, text, nonce);\n\t}\n\n\tprotected _dispose(): void {\n\t\tif (this._element.parentNode) {\n\t\t\tthis._element.parentNode.removeChild(this._element);\n\t\t}\n\t}\n}\n\n// /**\n// * Applies a set of styles to an element. Stores the original styles so they\n// * can be restored later.\n// *\n// * @ignore\n// * @param io Element\n// */\n// export function prepElementForDrag(dom: HTMLElement): void {\n\n// \t// @todo: save current values\n\n// \t// Define possible props\n// \tlet props = [\n// \t\t\"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\n// \t\t\"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\n// \t\t\"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\n// \t\t\"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\n// \t\t\"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\n// \t\t\"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\n// \t];\n// \tfor (let i = 0; i < props.length; i++) {\n// \t\tif (props[i] in dom.style) {\n// \t\t\tsetStyle(dom, props[i], \"none\");\n// \t\t}\n// \t}\n\n// \t// Remove iOS-specific selection;\n// \tsetStyle(dom, \"tapHighlightColor\", \"rgba(0, 0, 0, 0)\");\n\n// }\n\n// /**\n// * Restores replaced styles\n// *\n// * @ignore\n// * @param io Element\n// */\n// export function unprepElementForDrag(dom: HTMLElement): void {\n\n// \t// Define possible props\n// \tlet props = [\n// \t\t\"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\n// \t\t\"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\n// \t\t\"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\n// \t\t\"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\n// \t\t\"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\n// \t\t\"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\n// \t];\n// \tfor (let i = 0; i < props.length; i++) {\n// \t\tif (props[i] in dom.style) {\n// \t\t\tsetStyle(dom, props[i], \"\");\n// \t\t}\n// \t}\n\n// \t// Remove iOS-specific selection;\n// \tsetStyle(dom, \"tapHighlightColor\", \"\");\n\n// }\n\nexport function iOS(): boolean {\n\treturn /apple/i.test(navigator.vendor) && \"ontouchend\" in document;\n}\n\nexport function getSafeResolution(): number | undefined {\n\treturn iOS() ? 1 : undefined;\n}\n\nexport function relativeToValue(percent: number | Percent | undefined | null, full: number): number {\n\tif ($type.isNumber(percent)) {\n\t\treturn percent;\n\t} else if (percent != null && $type.isNumber(percent.value) && $type.isNumber(full)) {\n\t\treturn full * percent.value;\n\n\t} else {\n\t\treturn 0;\n\t}\n}\n\n\n\n/**\n * Returns number of decimals\n *\n * @ignore Exclude from docs\n * @param number Input number\n * @return Number of decimals\n */\nexport function decimalPlaces(number: number): number {\n\tlet match = ('' + number).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\tif (!match) { return 0; }\n\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\n}\n\n\n/**\n * ============================================================================\n * STRING FORMATTING FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Pads a string with additional characters to certain length.\n *\n * @param value A numeric value\n * @param len Result string length in characters\n * @param char A character to use for padding\n * @return Padded value as string\n */\nexport function padString(value: any, len: number = 0, char: string = \"0\"): string {\n\tif (typeof value !== \"string\") {\n\t\tvalue = value.toString();\n\t}\n\n\treturn len > value.length ? Array(len - value.length + 1).join(char) + value : value;\n}\n\nexport function trimLeft(text: string): string {\n\treturn text.replace(/^[\\s]*/, \"\");\n}\n\nexport function trimRight(text: string): string {\n\treturn text.replace(/[\\s]*$/, \"\");\n}\n\nexport function trim(text: string): string {\n\treturn trimLeft(trimRight(text));\n}\n\n/**\n * Tries to determine format type.\n *\n * @ignore Exclude from docs\n * @param format Format string\n * @return Format type (\"string\" | \"number\" | \"date\" | \"duration\")\n */\nexport function getFormat(format: string): string {\n\n\t// Undefined?\n\tif (typeof format === \"undefined\") {\n\t\treturn \"string\";\n\t}\n\n\t// Cleanup and lowercase format\n\tformat = format.toLowerCase().replace(/^\\[[^\\]]*\\]/, \"\");\n\n\t// Remove style tags\n\tformat = format.replace(/\\[[^\\]]+\\]/, \"\");\n\n\t// Trim\n\tformat = format.trim();\n\n\t// Check for any explicit format hints (i.e. /Date)\n\tlet hints: RegExpMatchArray | null = format.match(/\\/(date|number|duration)$/);\n\n\tif (hints) {\n\t\treturn hints[1];\n\t}\n\n\t// Check for explicit hints\n\tif (format === \"number\") {\n\t\treturn \"number\";\n\t}\n\n\tif (format === \"date\") {\n\t\treturn \"date\";\n\t}\n\n\tif (format === \"duration\") {\n\t\treturn \"duration\";\n\t}\n\n\t// Detect number formatting symbols\n\tif (format.match(/[#0]/)) {\n\t\treturn \"number\";\n\t}\n\n\t// Detect date formatting symbols\n\tif (format.match(/[ymwdhnsqaxkzgtei]/)) {\n\t\treturn \"date\";\n\t}\n\n\t// Nothing? Let's display as string\n\treturn \"string\";\n}\n\n/**\n * Cleans up format:\n * * Strips out formatter hints\n *\n * @ignore Exclude from docs\n * @param format Format\n * @return Cleaned format\n */\nexport function cleanFormat(format: string): string {\n\treturn format.replace(/\\/(date|number|duration)$/i, \"\");\n}\n\n/**\n * Strips all tags from the string.\n *\n * @param text Source string\n * @return String without tags\n */\nexport function stripTags(text: string): string {\n\treturn text ? text.replace(/<[^>]*>/g, \"\") : text;\n}\n\n/**\n * Removes new lines and tags from a string.\n *\n * @param text String to conver\n * @return Converted string\n */\nexport function plainText(text: string): string {\n\treturn text ? stripTags((\"\" + text).replace(/[\\n\\r]+/g, \". \")) : text;\n}\n\n/**\n * Escapes string so it can safely be used in a Regex.\n *\n * @param value Unsescaped string\n * @return Escaped string\n */\nexport function escapeForRgex(value: string): string {\n\treturn value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * ============================================================================\n * DATE-RELATED FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Returns a year day.\n *\n * @param date Date\n * @param utc Assume UTC dates?\n * @return Year day\n * @todo Account for UTC\n */\nexport function getYearDay(date: Date, utc: boolean = false): number {\n\t// TODO: utc needed?\n\tutc;\n\tconst start = new Date(date.getFullYear(), 0, 0);\n\tconst diff = (date.getTime() - start.getTime()) + ((start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000);\n\tconst oneDay = 1000 * 60 * 60 * 24;\n\treturn Math.floor(diff / oneDay);\n}\n\n/**\n * Returns week number for a given date.\n *\n * @param date Date\n * @param utc Assume UTC dates?\n * @return Week number\n * @todo Account for UTC\n */\nexport function getWeek(date: Date, utc: boolean = false): number {\n\tconst day = getYearDay(date, utc) - 1;\n\tlet week = Math.floor((day - (date.getDay() || 7) + 10) / 7);\n\tif (week === 0) {\n\t\tweek = 53;\n\t}\n\telse if (week === 53) {\n\t\tweek = 1;\n\t}\n\treturn week;\n}\n\n/**\n * Returns a week number in the month.\n *\n * @param date Source Date\n * @param utc Assume UTC dates?\n * @return Week number in month\n */\nexport function getMonthWeek(date: Date, utc: boolean = false): number {\n\tconst firstWeek = getWeek(new Date(date.getFullYear(), date.getMonth(), 1), utc);\n\tlet currentWeek = getWeek(date, utc);\n\tif (currentWeek == 1) {\n\t\tcurrentWeek = 53;\n\t}\n\treturn currentWeek - firstWeek + 1;\n}\n\n/**\n * Returns a year day out of the given week number.\n *\n * @param week Week\n * @param year Year\n * @param weekday Weekday\n * @param utc Assume UTC dates\n * @return Day in a year\n */\nexport function getDayFromWeek(week: number, year: number, weekday: number = 1, utc: boolean = false): number {\n\tlet date = new Date(year, 0, 4, 0, 0, 0, 0);\n\tif (utc) {\n\t\tdate.setUTCFullYear(year);\n\t}\n\tlet day = week * 7 + weekday - ((date.getDay() || 7) + 3);\n\treturn day;\n}\n\n/**\n * Returns 12-hour representation out of the 24-hour hours.\n *\n * @param hours 24-hour number\n * @return 12-hour number\n */\nexport function get12Hours(hours: number, base?: number): number {\n\tif (hours > 12) {\n\t\thours -= 12;\n\t}\n\telse if (hours === 0) {\n\t\thours = 12;\n\t}\n\treturn base != null ? hours + (base - 1) : hours;\n}\n\n/**\n * Returns a string name of the time zone.\n *\n * @param date Date object\n * @param long Should return long (\"Pacific Standard Time\") or short abbreviation (\"PST\")\n * @param savings Include information if it's in daylight savings mode\n * @param utc Assume UTC dates\n * @return Time zone name\n */\nexport function getTimeZone(date: Date, long: boolean = false, savings: boolean = false, utc: boolean = false): string {\n\tif (utc) {\n\t\treturn long ? \"Coordinated Universal Time\" : \"UTC\";\n\t}\n\tlet wotz = date.toLocaleString(\"UTC\");\n\tlet wtz = date.toLocaleString(\"UTC\", { timeZoneName: long ? \"long\" : \"short\" }).substr(wotz.length);\n\t//wtz = wtz.replace(/[+-]+[0-9]+$/, \"\");\n\tif (savings === false) {\n\t\twtz = wtz.replace(/ (standard|daylight|summer|winter) /i, \" \");\n\t}\n\treturn wtz;\n}\n\n\nexport function capitalizeFirst(text: string): string {\n\treturn text.charAt(0).toUpperCase() + text.slice(1);\n}\n\n\n/**\n * ============================================================================\n * COLOR UTILS\n * ============================================================================\n */\n\n\n/**\n * Represents an interface for an object that represents an RGB color.\n */\nexport interface iRGB {\n\tr: number;\n\tg: number;\n\tb: number;\n\ta?: number;\n}\n\n/**\n * Represents an interface for an object that represents an HSL color.\n */\nexport interface iHSL {\n\th: number;\n\ts: number;\n\tl: number;\n\ta?: number;\n}\n\n/**\n * The functions below are taken and adapted from Garry Tan's blog post:\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n *\n * The further attributions go mjijackson.com, which now seems to be defunct.\n */\n\n\n/**\n * Converts an HSL color value to RGB. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes h, s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n *\n * Function adapted from:\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n *\n * @ignore Exclude from docs\n * @param h The hue\n * @param s The saturation\n * @param l The lightness\n * @return The RGB representation\n */\nexport function hslToRgb(color: iHSL): iRGB {\n\tlet r, g, b;\n\tlet h = color.h;\n\tlet s = color.s;\n\tlet l = color.l;\n\n\tif (s == 0) {\n\t\tr = g = b = l; // achromatic\n\t} else {\n\t\tlet hue2rgb = function hue2rgb(p: number, q: number, t: number) {\n\t\t\tif (t < 0) { t += 1; }\n\t\t\tif (t > 1) { t -= 1; }\n\t\t\tif (t < 1 / 6) { return p + (q - p) * 6 * t; }\n\t\t\tif (t < 1 / 2) { return q; }\n\t\t\tif (t < 2 / 3) { return p + (q - p) * (2 / 3 - t) * 6; }\n\t\t\treturn p;\n\t\t}\n\n\t\tlet q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\tlet p = 2 * l - q;\n\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\tg = hue2rgb(p, q, h);\n\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t}\n\n\treturn {\n\t\tr: Math.round(r * 255),\n\t\tg: Math.round(g * 255),\n\t\tb: Math.round(b * 255)\n\t};\n}\n\n/**\n * Converts an RGB color value to HSL. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h, s, and l in the set [0, 1].\n *\n * Function adapted from:\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n *\n * @ignore Exclude from docs\n * @param r The red color value\n * @param g The green color value\n * @param b The blue color value\n * @return The HSL representation\n */\nexport function rgbToHsl(color: iRGB): iHSL {\n\tlet r = color.r / 255;\n\tlet g = color.g / 255;\n\tlet b = color.b / 255;\n\tlet max = Math.max(r, g, b);\n\tlet min = Math.min(r, g, b);\n\tlet h = 0;\n\tlet s = 0;\n\tlet l = (max + min) / 2;\n\n\tif (max === min) {\n\t\th = s = 0; // achromatic\n\n\t} else {\n\t\tlet d = max - min;\n\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n\t\tswitch (max) {\n\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\tcase b: h = (r - g) / d + 4; break;\n\t\t}\n\n\t\th /= 6;\n\t}\n\n\treturn {\n\t\th: h,\n\t\ts: s,\n\t\tl: l\n\t};\n}\n\n/**\n * Returns a color that is `percent` brighter than the reference color.\n *\n * @ignore Exclude from docs\n * @param color Reference color\n * @param percent Brightness percent\n * @return Hex code of the new color\n */\nexport function lighten(rgb: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\n\tif (rgb) {\n\t\treturn {\n\t\t\tr: Math.max(0, Math.min(255, rgb.r + getLightnessStep(rgb.r, percent))),\n\t\t\tg: Math.max(0, Math.min(255, rgb.g + getLightnessStep(rgb.g, percent))),\n\t\t\tb: Math.max(0, Math.min(255, rgb.b + getLightnessStep(rgb.b, percent))),\n\t\t\ta: rgb.a\n\t\t};\n\n\t} else {\n\t\t// TODO is this correct ?\n\t\treturn rgb;\n\t}\n};\n\n/**\n * Gets lightness step.\n *\n * @ignore Exclude from docs\n * @param value Value\n * @param percent Percent\n * @return Step\n */\nexport function getLightnessStep(value: number, percent: number): number {\n\tlet base = percent > 0 ? 255 - value : value;\n\treturn Math.round(base * percent);\n}\n\n/**\n * Returns a color that is `percent` brighter than the source `color`.\n *\n * @ignore Exclude from docs\n * @param color Source color\n * @param percent Brightness percent\n * @return New color\n */\nexport function brighten(rgb: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\n\tif (rgb) {\n\t\tlet base = Math.min(Math.max(rgb.r, rgb.g, rgb.b), 230);\n\t\t//let base = Math.max(rgb.r, rgb.g, rgb.b);\n\t\tlet step = getLightnessStep(base, percent);\n\t\treturn {\n\t\t\tr: Math.max(0, Math.min(255, Math.round(rgb.r + step))),\n\t\t\tg: Math.max(0, Math.min(255, Math.round(rgb.g + step))),\n\t\t\tb: Math.max(0, Math.min(255, Math.round(rgb.b + step))),\n\t\t\ta: rgb.a\n\t\t};\n\n\t} else {\n\t\t// TODO is this correct ?\n\t\treturn rgb;\n\t}\n};\n\n/**\n * Returns brightness step.\n *\n * @ignore Exclude from docs\n * @param value Value\n * @param percent Percent\n * @return Step\n */\nexport function getBrightnessStep(_value: number, percent: number): number {\n\tlet base = 255; //percent > 0 ? 255 - value : value;\n\treturn Math.round(base * percent);\n}\n\n/**\n * Returns `true` if color is \"light\". Useful indetermining which contrasting\n * color to use for elements over this color. E.g.: you would want to use\n * black text over light background, and vice versa.\n *\n * @ignore Exclude from docs\n * @param color Source color\n * @return Light?\n */\nexport function isLight(color: iRGB): boolean {\n\treturn ((color.r * 299) + (color.g * 587) + (color.b * 114)) / 1000 >= 128;\n}\n\n/**\n * Returns a new [[iRGB]] object based on `rgb` parameter with specific\n * saturation applied.\n *\n * `saturation` can be in the range of 0 (fully desaturated) to 1 (fully\n * saturated).\n *\n * @ignore Exclude from docs\n * @param color Base color\n * @param saturation Saturation (0-1)\n * @return New color\n */\nexport function saturate(rgb: $type.Optional<iRGB>, saturation: number): $type.Optional<iRGB> {\n\tif (rgb === undefined || saturation == 1) {\n\t\treturn rgb;\n\t}\n\n\tlet hsl = rgbToHsl(rgb);\n\thsl.s = saturation;\n\treturn hslToRgb(hsl);\n}\n\nexport function alternativeColor(color: iRGB, lightAlternative: iRGB = { r: 255, g: 255, b: 255 }, darkAlternative: iRGB = { r: 255, g: 255, b: 255 }): iRGB {\n\tlet light = lightAlternative;\n\tlet dark = darkAlternative;\n\tif (isLight(darkAlternative)) {\n\t\tlight = darkAlternative;\n\t\tdark = lightAlternative;\n\t}\n\treturn isLight(color) ? dark : light;\n}\n\n/**\n * @ignore\n * @deprecated\n */\n// export function unshiftThemeClass(settings: any, themeClass: string) {\n// \tlet themeClasses = settings.themeClasses;\n// \tif (!themeClasses) {\n// \t\tthemeClasses = [];\n// \t}\n// \tthemeClasses.unshift(themeClass);\n// \tsettings.themeClasses = themeClasses;\n// }\n\n/**\n * @ignore\n * @deprecated\n */\n// export function pushThemeClass(settings: any, themeClass: string) {\n// \tlet themeClasses = settings.themeClasses;\n// \tif (!themeClasses) {\n// \t\tthemeClasses = [];\n// \t}\n// \tthemeClasses.push(themeClass);\n// \tsettings.themeClasses = themeClasses;\n// }\n\n/**\n * @ignore\n */\nexport function mergeTags(tags1: string[] | undefined, tags2: string[]): string[] {\n\tif (!tags1) {\n\t\ttags1 = [];\n\t}\n\treturn [...tags1, ...tags2].filter((value, index, self) => {\n\t\treturn self.indexOf(value) === index;\n\t});\n}\n\n/**\n * @ignore\n */\nexport function sameBounds(a: IBounds, b?: IBounds): boolean {\n\tif (!b) {\n\t\treturn false;\n\t}\n\tif (a.left != b.left) {\n\t\treturn false\n\t}\n\tif (a.right != b.right) {\n\t\treturn false\n\t}\n\tif (a.top != b.top) {\n\t\treturn false\n\t}\n\tif (a.bottom != b.bottom) {\n\t\treturn false\n\t}\n\treturn true;\n}\n"]}
@@ -755,10 +755,6 @@ export declare class Exporting extends Entity {
755
755
  * @ignore
756
756
  */
757
757
  blobDownloadSupport(): boolean;
758
- /**
759
- * @ignore
760
- */
761
- msBlobDownloadSupport(): boolean;
762
758
  /**
763
759
  * ==========================================================================
764
760
  * Print