@devexperts/dxcharts-lite 1.0.2 → 2.0.0

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 (255) hide show
  1. package/README.md +2 -2
  2. package/dist/chart/animation/canvas-animation.js +134 -1
  3. package/dist/chart/animation/types/animation.js +43 -1
  4. package/dist/chart/animation/types/color-alpha-animation.d.ts +1 -1
  5. package/dist/chart/animation/types/color-alpha-animation.js +60 -1
  6. package/dist/chart/animation/types/color-transition-animation.d.ts +1 -1
  7. package/dist/chart/animation/types/color-transition-animation.js +86 -1
  8. package/dist/chart/animation/types/viewport-movement-animation.js +63 -1
  9. package/dist/chart/animation/viewport-model-animation.js +20 -1
  10. package/dist/chart/bootstrap.d.ts +51 -48
  11. package/dist/chart/bootstrap.js +449 -1
  12. package/dist/chart/canvas/canvas-bounds-container.d.ts +0 -5
  13. package/dist/chart/canvas/canvas-bounds-container.js +815 -1
  14. package/dist/chart/canvas/canvas-chart-html.js +16 -18
  15. package/dist/chart/canvas/chart-elements.d.ts +1 -4
  16. package/dist/chart/canvas/chart-elements.js +22 -1
  17. package/dist/chart/canvas/cursor.handler.js +122 -1
  18. package/dist/chart/canvas/layout-creator.js +34 -1
  19. package/dist/chart/canvas/y-axis-bounds.container.d.ts +2 -2
  20. package/dist/chart/canvas/y-axis-bounds.container.js +67 -1
  21. package/dist/chart/chart-container.js +1 -1
  22. package/dist/chart/chart.config.d.ts +4 -5
  23. package/dist/chart/chart.config.js +645 -1
  24. package/dist/chart/chart.d.ts +62 -0
  25. package/dist/chart/chart.js +106 -0
  26. package/dist/chart/components/chart/basic-scale.d.ts +2 -2
  27. package/dist/chart/components/chart/basic-scale.js +31 -1
  28. package/dist/chart/components/chart/candle-transformer.functions.js +15 -1
  29. package/dist/chart/components/chart/candle-width-calculator.functions.js +2 -1
  30. package/dist/chart/components/chart/candle.functions.js +44 -1
  31. package/dist/chart/components/chart/chart-area-pan.handler.d.ts +3 -3
  32. package/dist/chart/components/chart/chart-area-pan.handler.js +197 -1
  33. package/dist/chart/components/chart/chart-base.model.js +66 -1
  34. package/dist/chart/components/chart/chart.component.d.ts +7 -3
  35. package/dist/chart/components/chart/chart.component.js +408 -1
  36. package/dist/chart/components/chart/chart.model.d.ts +4 -11
  37. package/dist/chart/components/chart/chart.model.js +954 -1
  38. package/dist/chart/components/chart/data-series.high-low-provider.js +34 -1
  39. package/dist/chart/components/chart/fake-candles.js +97 -1
  40. package/dist/chart/components/chart/price.formatter.js +35 -1
  41. package/dist/chart/components/chart/secondary-chart-colors-pool.js +68 -1
  42. package/dist/chart/components/cross_tool/cross-tool.component.js +85 -1
  43. package/dist/chart/components/cross_tool/cross-tool.drawer.js +32 -1
  44. package/dist/chart/components/cross_tool/cross-tool.model.js +107 -1
  45. package/dist/chart/components/cross_tool/types/cross-and-labels.drawer.js +137 -1
  46. package/dist/chart/components/cross_tool/types/none.drawer.js +3 -1
  47. package/dist/chart/components/dran-n-drop_helper/drag-n-drop-x.component.js +28 -1
  48. package/dist/chart/components/dran-n-drop_helper/drag-n-drop-y.component.js +24 -1
  49. package/dist/chart/components/dran-n-drop_helper/drag-n-drop.component.js +53 -1
  50. package/dist/chart/components/dynamic-objects/dynamic-objects.component.d.ts +13 -0
  51. package/dist/chart/components/dynamic-objects/dynamic-objects.component.js +20 -0
  52. package/dist/chart/components/dynamic-objects/dynamic-objects.drawer.d.ts +18 -0
  53. package/dist/chart/components/dynamic-objects/dynamic-objects.drawer.js +23 -0
  54. package/dist/chart/components/dynamic-objects/dynamic-objects.model.d.ts +63 -0
  55. package/dist/chart/components/dynamic-objects/dynamic-objects.model.js +136 -0
  56. package/dist/chart/components/events/events-hit-test.drawer.js +63 -1
  57. package/dist/chart/components/events/events.component.js +61 -1
  58. package/dist/chart/components/events/events.drawer.js +195 -1
  59. package/dist/chart/components/events/events.model.js +69 -1
  60. package/dist/chart/components/grid/grid.component.d.ts +2 -2
  61. package/dist/chart/components/grid/grid.component.js +31 -1
  62. package/dist/chart/components/grid/grid.drawer.d.ts +4 -3
  63. package/dist/chart/components/grid/grid.drawer.js +106 -1
  64. package/dist/chart/components/high_low/high-low.component.js +12 -1
  65. package/dist/chart/components/high_low/high-low.drawer.js +126 -1
  66. package/dist/chart/components/highlights/highlights.component.js +46 -1
  67. package/dist/chart/components/highlights/highlights.drawer.js +154 -1
  68. package/dist/chart/components/highlights/highlights.model.js +75 -1
  69. package/dist/chart/components/labels_generator/numeric-axis-labels.generator.d.ts +1 -1
  70. package/dist/chart/components/labels_generator/numeric-axis-labels.generator.js +199 -1
  71. package/dist/chart/components/navigation_map/navigation-map-move.handler.d.ts +2 -2
  72. package/dist/chart/components/navigation_map/navigation-map-move.handler.js +108 -1
  73. package/dist/chart/components/navigation_map/navigation-map.component.js +112 -1
  74. package/dist/chart/components/navigation_map/navigation-map.drawer.js +244 -1
  75. package/dist/chart/components/navigation_map/navigation-map.model.js +33 -2
  76. package/dist/chart/components/pan/chart-pan.component.d.ts +2 -2
  77. package/dist/chart/components/pan/chart-pan.component.js +51 -1
  78. package/dist/chart/components/pane/extent/y-extent-component.d.ts +12 -18
  79. package/dist/chart/components/pane/extent/y-extent-component.js +120 -1
  80. package/dist/chart/components/pane/pane-hit-test.controller.js +55 -1
  81. package/dist/chart/components/pane/pane-manager.component.d.ts +10 -5
  82. package/dist/chart/components/pane/pane-manager.component.js +148 -1
  83. package/dist/chart/components/pane/pane.component.d.ts +16 -32
  84. package/dist/chart/components/pane/pane.component.js +278 -1
  85. package/dist/chart/components/resizer/bar-resizer.component.js +139 -1
  86. package/dist/chart/components/resizer/bar-resizer.drawer.js +46 -1
  87. package/dist/chart/components/snapshot/snapshot.component.js +48 -1
  88. package/dist/chart/components/volumes/separate-volumes.component.d.ts +6 -10
  89. package/dist/chart/components/volumes/separate-volumes.component.js +63 -1
  90. package/dist/chart/components/volumes/volume-color-resolvers.functions.js +18 -1
  91. package/dist/chart/components/volumes/volumes.component.d.ts +6 -7
  92. package/dist/chart/components/volumes/volumes.component.js +94 -1
  93. package/dist/chart/components/volumes/volumes.drawer.d.ts +5 -12
  94. package/dist/chart/components/volumes/volumes.drawer.js +140 -1
  95. package/dist/chart/components/volumes/volumes.formatter.js +31 -1
  96. package/dist/chart/components/volumes/volumes.model.d.ts +2 -2
  97. package/dist/chart/components/volumes/volumes.model.js +43 -1
  98. package/dist/chart/components/watermark/water-mark.component.js +103 -1
  99. package/dist/chart/components/watermark/water-mark.drawer.js +187 -1
  100. package/dist/chart/components/x_axis/numeric-x-axis-labels.generator.js +27 -1
  101. package/dist/chart/components/x_axis/time/parser/time-formats-matchers.functions.js +187 -1
  102. package/dist/chart/components/x_axis/time/parser/time-formats-parser.functions.js +76 -1
  103. package/dist/chart/components/x_axis/time/parser/time-formats-validators.functions.js +79 -1
  104. package/dist/chart/components/x_axis/time/parser/time-formats.model.js +14 -1
  105. package/dist/chart/components/x_axis/time/x-axis-weights.functions.d.ts +1 -1
  106. package/dist/chart/components/x_axis/time/x-axis-weights.functions.js +143 -1
  107. package/dist/chart/components/x_axis/time/x-axis-weights.generator.js +73 -1
  108. package/dist/chart/components/x_axis/x-axis-draw.functions.js +49 -1
  109. package/dist/chart/components/x_axis/x-axis-labels.drawer.js +70 -1
  110. package/dist/chart/components/x_axis/x-axis-labels.generator.d.ts +2 -2
  111. package/dist/chart/components/x_axis/x-axis-labels.generator.js +332 -1
  112. package/dist/chart/components/x_axis/x-axis-labels.model.js +35 -1
  113. package/dist/chart/components/x_axis/x-axis-scale.handler.d.ts +2 -2
  114. package/dist/chart/components/x_axis/x-axis-scale.handler.js +60 -1
  115. package/dist/chart/components/x_axis/x-axis-time-labels.drawer.js +82 -1
  116. package/dist/chart/components/x_axis/x-axis.component.d.ts +2 -2
  117. package/dist/chart/components/x_axis/x-axis.component.js +119 -1
  118. package/dist/chart/components/y_axis/label-color.functions.js +53 -1
  119. package/dist/chart/components/y_axis/numeric-y-axis-labels.generator.d.ts +4 -4
  120. package/dist/chart/components/y_axis/numeric-y-axis-labels.generator.js +33 -1
  121. package/dist/chart/components/y_axis/price_labels/data-series-y-axis-labels.provider.d.ts +3 -3
  122. package/dist/chart/components/y_axis/price_labels/data-series-y-axis-labels.provider.js +67 -1
  123. package/dist/chart/components/y_axis/price_labels/labels-positions-calculator.js +56 -1
  124. package/dist/chart/components/y_axis/price_labels/last-candle-labels.provider.js +95 -1
  125. package/dist/chart/components/y_axis/price_labels/price-label.drawer.d.ts +2 -2
  126. package/dist/chart/components/y_axis/price_labels/price-label.drawer.js +119 -1
  127. package/dist/chart/components/y_axis/price_labels/y-axis-labels.model.d.ts +9 -8
  128. package/dist/chart/components/y_axis/price_labels/y-axis-labels.model.js +201 -1
  129. package/dist/chart/components/y_axis/price_labels/y-axis-price-labels.drawer.d.ts +6 -7
  130. package/dist/chart/components/y_axis/price_labels/y-axis-price-labels.drawer.js +58 -1
  131. package/dist/chart/components/y_axis/y-axis-base-labels.model.d.ts +6 -4
  132. package/dist/chart/components/y_axis/y-axis-base-labels.model.js +47 -1
  133. package/dist/chart/components/y_axis/y-axis-labels.drawer.d.ts +4 -4
  134. package/dist/chart/components/y_axis/y-axis-labels.drawer.js +161 -1
  135. package/dist/chart/components/y_axis/y-axis-scale.handler.d.ts +2 -2
  136. package/dist/chart/components/y_axis/y-axis-scale.handler.js +72 -1
  137. package/dist/chart/components/y_axis/y-axis.component.d.ts +32 -41
  138. package/dist/chart/components/y_axis/y-axis.component.js +220 -1
  139. package/dist/chart/components/y_axis/y-axis.drawer.d.ts +9 -12
  140. package/dist/chart/components/y_axis/y-axis.drawer.js +96 -1
  141. package/dist/chart/components/y_axis/y-axis.model.d.ts +9 -17
  142. package/dist/chart/components/y_axis/y-axis.model.js +33 -1
  143. package/dist/chart/drawers/chart-background.drawer.js +69 -1
  144. package/dist/chart/drawers/chart-type-drawers/area.drawer.js +69 -1
  145. package/dist/chart/drawers/chart-type-drawers/bar.drawer.js +57 -1
  146. package/dist/chart/drawers/chart-type-drawers/baseline.drawer.js +84 -1
  147. package/dist/chart/drawers/chart-type-drawers/candle.drawer.js +162 -1
  148. package/dist/chart/drawers/chart-type-drawers/histogram.drawer.js +57 -1
  149. package/dist/chart/drawers/chart-type-drawers/line.drawer.js +38 -1
  150. package/dist/chart/drawers/chart-type-drawers/scatter-plot.drawer.js +19 -1
  151. package/dist/chart/drawers/clear-canvas.drawer.js +14 -1
  152. package/dist/chart/drawers/composite.drawer.js +67 -1
  153. package/dist/chart/drawers/data-series-drawers/candle-series-wrapper.js +50 -1
  154. package/dist/chart/drawers/data-series-drawers/color-candle.drawer.js +35 -1
  155. package/dist/chart/drawers/data-series-drawers/data-series-drawers.utils.js +16 -1
  156. package/dist/chart/drawers/data-series-drawers/difference-cloud.drawer.js +106 -1
  157. package/dist/chart/drawers/data-series-drawers/histogram.drawer.js +23 -1
  158. package/dist/chart/drawers/data-series-drawers/linear.drawer.js +19 -1
  159. package/dist/chart/drawers/data-series-drawers/points.drawer.js +19 -1
  160. package/dist/chart/drawers/data-series-drawers/rectangular-tool.drawer.js +7 -1
  161. package/dist/chart/drawers/data-series-drawers/text.drawer.js +25 -1
  162. package/dist/chart/drawers/data-series-drawers/trend-histogram.drawer.js +35 -1
  163. package/dist/chart/drawers/data-series-drawers/triangle.drawer.js +22 -1
  164. package/dist/chart/drawers/data-series.drawer.d.ts +5 -7
  165. package/dist/chart/drawers/data-series.drawer.js +56 -1
  166. package/dist/chart/drawers/drawing-manager.d.ts +1 -1
  167. package/dist/chart/drawers/drawing-manager.js +177 -1
  168. package/dist/chart/drawers/ht-data-series.drawer.js +37 -1
  169. package/dist/chart/events/event-bus.js +73 -1
  170. package/dist/chart/events/events.js +3 -1
  171. package/dist/chart/inputhandlers/candle-tap.handler.js +46 -1
  172. package/dist/chart/inputhandlers/chart-resize.handler.js +98 -1
  173. package/dist/chart/inputhandlers/cross-event-producer.component.js +67 -1
  174. package/dist/chart/inputhandlers/hover-producer.component.d.ts +2 -2
  175. package/dist/chart/inputhandlers/hover-producer.component.js +228 -1
  176. package/dist/chart/inputhandlers/main-canvas-touch.handler.d.ts +2 -2
  177. package/dist/chart/inputhandlers/main-canvas-touch.handler.js +80 -1
  178. package/dist/chart/inputlisteners/canvas-input-listener.component.js +629 -1
  179. package/dist/chart/model/baseline.model.js +88 -1
  180. package/dist/chart/model/bounds.model.js +1 -1
  181. package/dist/chart/model/candle-hover.js +70 -1
  182. package/dist/chart/model/candle-series-high-low.provider.js +45 -1
  183. package/dist/chart/model/candle-series.model.d.ts +3 -3
  184. package/dist/chart/model/candle-series.model.js +245 -1
  185. package/dist/chart/model/candle.model.js +69 -1
  186. package/dist/chart/model/canvas.model.js +228 -1
  187. package/dist/chart/model/chart-base-element.js +129 -1
  188. package/dist/chart/model/compare-series-hover.js +25 -1
  189. package/dist/chart/model/data-series-view.d.ts +5 -5
  190. package/dist/chart/model/data-series-view.js +111 -1
  191. package/dist/chart/model/data-series.config.js +14 -1
  192. package/dist/chart/model/data-series.model.d.ts +4 -4
  193. package/dist/chart/model/data-series.model.js +281 -1
  194. package/dist/chart/model/date-time.formatter.js +151 -1
  195. package/dist/chart/model/hit-test-canvas.model.d.ts +1 -1
  196. package/dist/chart/model/hit-test-canvas.model.js +256 -1
  197. package/dist/chart/model/main-candle-series.model.d.ts +1 -1
  198. package/dist/chart/model/main-candle-series.model.js +29 -1
  199. package/dist/chart/model/scale.model.d.ts +2 -1
  200. package/dist/chart/model/scale.model.js +316 -1
  201. package/dist/chart/model/scaling/auto-scale.model.js +97 -1
  202. package/dist/chart/model/scaling/constrait.functions.js +61 -1
  203. package/dist/chart/model/scaling/lock-ratio.model.js +17 -1
  204. package/dist/chart/model/scaling/move-chart.functions.js +22 -1
  205. package/dist/chart/model/scaling/viewport.model.d.ts +2 -2
  206. package/dist/chart/model/scaling/viewport.model.js +279 -1
  207. package/dist/chart/model/scaling/x-zooming.functions.js +35 -1
  208. package/dist/chart/model/time-zone.model.js +109 -1
  209. package/dist/chart/model/visual-candle.js +134 -1
  210. package/dist/chart/utils/__tests__/array.utils.test.js +135 -1
  211. package/dist/chart/utils/__tests__/math.utils.test.js +14 -1
  212. package/dist/chart/utils/__tests__/object.utils.test.js +11 -1
  213. package/dist/chart/utils/__tests__/priceIncrementsUtils.test.js +29 -1
  214. package/dist/chart/utils/array.utils.d.ts +1 -1
  215. package/dist/chart/utils/array.utils.js +269 -1
  216. package/dist/chart/utils/auto-period-detector.utils.js +39 -1
  217. package/dist/chart/utils/candles-generator-ts.utils.js +20 -1
  218. package/dist/chart/utils/candles-generator.utils.js +161 -1
  219. package/dist/chart/utils/candles.utils.js +42 -1
  220. package/dist/chart/utils/canvas/canvas-drawing-functions.utils.js +144 -1
  221. package/dist/chart/utils/canvas/canvas-font-measure-tool.utils.js +51 -1
  222. package/dist/chart/utils/canvas/canvas-text-functions.utils.js +156 -1
  223. package/dist/chart/utils/color.utils.js +31 -1
  224. package/dist/chart/utils/device/browser.utils.js +10 -1
  225. package/dist/chart/utils/device/device-detector.utils.js +24 -1
  226. package/dist/chart/utils/device/device-pixel-ratio.utils.js +21 -1
  227. package/dist/chart/utils/device/touchpad.utils.js +91 -1
  228. package/dist/chart/utils/dom.utils.js +15 -1
  229. package/dist/chart/utils/function.utils.js +16 -1
  230. package/dist/chart/utils/linkedList.utils.d.ts +28 -0
  231. package/dist/chart/utils/linkedList.utils.js +138 -0
  232. package/dist/chart/utils/math.utils.js +115 -1
  233. package/dist/chart/utils/merge.utils.js +56 -1
  234. package/dist/chart/utils/object.utils.js +43 -1
  235. package/dist/chart/utils/performance/animation-frame-cache.utils.js +77 -0
  236. package/dist/chart/utils/{perfomance → performance}/debounce.utils.js +7 -1
  237. package/dist/chart/utils/performance/memoize.utils.js +74 -0
  238. package/dist/chart/utils/performance/request-animation-frame-throttle.utils.js +43 -0
  239. package/dist/chart/utils/performance/throttle.utils.js +26 -0
  240. package/dist/chart/utils/price-increments.utils.d.ts +1 -0
  241. package/dist/chart/utils/price-increments.utils.js +127 -1
  242. package/dist/chart/utils/uuid.utils.js +4 -1
  243. package/dist/dxchart.min.js +9 -12
  244. package/dist/index.d.ts +3 -3
  245. package/dist/index.js +20 -1
  246. package/package.json +4 -4
  247. package/dist/chart/utils/perfomance/animation-frame-cache.utils.js +0 -6
  248. package/dist/chart/utils/perfomance/memoize.utils.js +0 -6
  249. package/dist/chart/utils/perfomance/request-animation-frame-throttle.utils.js +0 -6
  250. package/dist/chart/utils/perfomance/throttle.utils.js +0 -6
  251. /package/dist/chart/utils/{perfomance → performance}/animation-frame-cache.utils.d.ts +0 -0
  252. /package/dist/chart/utils/{perfomance → performance}/debounce.utils.d.ts +0 -0
  253. /package/dist/chart/utils/{perfomance → performance}/memoize.utils.d.ts +0 -0
  254. /package/dist/chart/utils/{perfomance → performance}/request-animation-frame-throttle.utils.d.ts +0 -0
  255. /package/dist/chart/utils/{perfomance → performance}/throttle.utils.d.ts +0 -0
@@ -3,24 +3,21 @@
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
6
- (()=>{var rv;(()=>{var Ra={8168:(L,M,w)=>{var T=w(9092),I={};for(var H in T)T.hasOwnProperty(H)&&(I[T[H]]=H);var D=L.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var F in D)if(D.hasOwnProperty(F)){if(!("channels"in D[F]))throw new Error("missing channels property: "+F);if(!("labels"in D[F]))throw new Error("missing channel labels property: "+F);if(D[F].labels.length!==D[F].channels)throw new Error("channel and label counts mismatch: "+F);var A=D[F].channels,S=D[F].labels;delete D[F].channels,delete D[F].labels,Object.defineProperty(D[F],"channels",{value:A}),Object.defineProperty(D[F],"labels",{value:S})}D.rgb.hsl=function(d){var m=d[0]/255,C=d[1]/255,b=d[2]/255,P=Math.min(m,C,b),u=Math.max(m,C,b),f=u-P,g,x,_;return u===P?g=0:m===u?g=(C-b)/f:C===u?g=2+(b-m)/f:b===u&&(g=4+(m-C)/f),g=Math.min(g*60,360),g<0&&(g+=360),_=(P+u)/2,u===P?x=0:_<=.5?x=f/(u+P):x=f/(2-u-P),[g,x*100,_*100]},D.rgb.hsv=function(d){var m,C,b,P,u,f=d[0]/255,g=d[1]/255,x=d[2]/255,_=Math.max(f,g,x),B=_-Math.min(f,g,x),W=function(j){return(_-j)/6/B+1/2};return B===0?P=u=0:(u=B/_,m=W(f),C=W(g),b=W(x),f===_?P=b-C:g===_?P=.3333333333333333+m-b:x===_&&(P=.6666666666666666+C-m),P<0?P+=1:P>1&&(P-=1)),[P*360,u*100,_*100]},D.rgb.hwb=function(d){var m=d[0],C=d[1],b=d[2],P=D.rgb.hsl(d)[0],u=1/255*Math.min(m,Math.min(C,b));return b=1-.00392156862745098*Math.max(m,Math.max(C,b)),[P,u*100,b*100]},D.rgb.cmyk=function(d){var m=d[0]/255,C=d[1]/255,b=d[2]/255,P,u,f,g;return g=Math.min(1-m,1-C,1-b),P=(1-m-g)/(1-g)||0,u=(1-C-g)/(1-g)||0,f=(1-b-g)/(1-g)||0,[P*100,u*100,f*100,g*100]};function O(d,m){return Math.pow(d[0]-m[0],2)+Math.pow(d[1]-m[1],2)+Math.pow(d[2]-m[2],2)}D.rgb.keyword=function(d){var m=I[d];if(m)return m;var C=1/0,b;for(var P in T)if(T.hasOwnProperty(P)){var u=T[P],f=O(d,u);f<C&&(C=f,b=P)}return b},D.keyword.rgb=function(d){return T[d]},D.rgb.xyz=function(d){var m=d[0]/255,C=d[1]/255,b=d[2]/255;m=m>.04045?Math.pow((m+.055)/1.055,2.4):m/12.92,C=C>.04045?Math.pow((C+.055)/1.055,2.4):C/12.92,b=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92;var P=m*.4124+C*.3576+b*.1805,u=m*.2126+C*.7152+b*.0722,f=m*.0193+C*.1192+b*.9505;return[P*100,u*100,f*100]},D.rgb.lab=function(d){var m=D.rgb.xyz(d),C=m[0],b=m[1],P=m[2],u,f,g;return C/=95.047,b/=100,P/=108.883,C=C>.008856?Math.pow(C,.3333333333333333):7.787*C+.13793103448275862,b=b>.008856?Math.pow(b,.3333333333333333):7.787*b+.13793103448275862,P=P>.008856?Math.pow(P,.3333333333333333):7.787*P+.13793103448275862,u=116*b-16,f=500*(C-b),g=200*(b-P),[u,f,g]},D.hsl.rgb=function(d){var m=d[0]/360,C=d[1]/100,b=d[2]/100,P,u,f,g,x;if(C===0)return x=b*255,[x,x,x];b<.5?u=b*(1+C):u=b+C-b*C,P=2*b-u,g=[0,0,0];for(var _=0;_<3;_++)f=m+.3333333333333333*-(_-1),f<0&&f++,f>1&&f--,6*f<1?x=P+(u-P)*6*f:2*f<1?x=u:3*f<2?x=P+(u-P)*(.6666666666666666-f)*6:x=P,g[_]=x*255;return g},D.hsl.hsv=function(d){var m=d[0],C=d[1]/100,b=d[2]/100,P=C,u=Math.max(b,.01),f,g;return b*=2,C*=b<=1?b:2-b,P*=u<=1?u:2-u,g=(b+C)/2,f=b===0?2*P/(u+P):2*C/(b+C),[m,f*100,g*100]},D.hsv.rgb=function(d){var m=d[0]/60,C=d[1]/100,b=d[2]/100,P=Math.floor(m)%6,u=m-Math.floor(m),f=255*b*(1-C),g=255*b*(1-C*u),x=255*b*(1-C*(1-u));switch(b*=255,P){case 0:return[b,x,f];case 1:return[g,b,f];case 2:return[f,b,x];case 3:return[f,g,b];case 4:return[x,f,b];case 5:return[b,f,g]}},D.hsv.hsl=function(d){var m=d[0],C=d[1]/100,b=d[2]/100,P=Math.max(b,.01),u,f,g;return g=(2-C)*b,u=(2-C)*P,f=C*P,f/=u<=1?u:2-u,f=f||0,g/=2,[m,f*100,g*100]},D.hwb.rgb=function(d){var m=d[0]/360,C=d[1]/100,b=d[2]/100,P=C+b,u,f,g,x;P>1&&(C/=P,b/=P),u=Math.floor(6*m),f=1-b,g=6*m-u,u&1&&(g=1-g),x=C+g*(f-C);var _,B,W;switch(u){default:case 6:case 0:_=f,B=x,W=C;break;case 1:_=x,B=f,W=C;break;case 2:_=C,B=f,W=x;break;case 3:_=C,B=x,W=f;break;case 4:_=x,B=C,W=f;break;case 5:_=f,B=C,W=x;break}return[_*255,B*255,W*255]},D.cmyk.rgb=function(d){var m=d[0]/100,C=d[1]/100,b=d[2]/100,P=d[3]/100,u,f,g;return u=1-Math.min(1,m*(1-P)+P),f=1-Math.min(1,C*(1-P)+P),g=1-Math.min(1,b*(1-P)+P),[u*255,f*255,g*255]},D.xyz.rgb=function(d){var m=d[0]/100,C=d[1]/100,b=d[2]/100,P,u,f;return P=m*3.2406+C*-1.5372+b*-.4986,u=m*-.9689+C*1.8758+b*.0415,f=m*.0557+C*-.204+b*1.057,P=P>.0031308?1.055*Math.pow(P,.4166666666666667)-.055:P*12.92,u=u>.0031308?1.055*Math.pow(u,.4166666666666667)-.055:u*12.92,f=f>.0031308?1.055*Math.pow(f,.4166666666666667)-.055:f*12.92,P=Math.min(Math.max(0,P),1),u=Math.min(Math.max(0,u),1),f=Math.min(Math.max(0,f),1),[P*255,u*255,f*255]},D.xyz.lab=function(d){var m=d[0],C=d[1],b=d[2],P,u,f;return m/=95.047,C/=100,b/=108.883,m=m>.008856?Math.pow(m,.3333333333333333):7.787*m+.13793103448275862,C=C>.008856?Math.pow(C,.3333333333333333):7.787*C+.13793103448275862,b=b>.008856?Math.pow(b,.3333333333333333):7.787*b+.13793103448275862,P=116*C-16,u=500*(m-C),f=200*(C-b),[P,u,f]},D.lab.xyz=function(d){var m=d[0],C=d[1],b=d[2],P,u,f;u=(m+16)/116,P=C/500+u,f=u-b/200;var g=Math.pow(u,3),x=Math.pow(P,3),_=Math.pow(f,3);return u=g>.008856?g:(u-.13793103448275862)/7.787,P=x>.008856?x:(P-.13793103448275862)/7.787,f=_>.008856?_:(f-.13793103448275862)/7.787,P*=95.047,u*=100,f*=108.883,[P,u,f]},D.lab.lch=function(d){var m=d[0],C=d[1],b=d[2],P,u,f;return P=Math.atan2(b,C),u=P*360/2/Math.PI,u<0&&(u+=360),f=Math.sqrt(C*C+b*b),[m,f,u]},D.lch.lab=function(d){var m=d[0],C=d[1],b=d[2],P,u,f;return f=b/360*2*Math.PI,P=C*Math.cos(f),u=C*Math.sin(f),[m,P,u]},D.rgb.ansi16=function(d){var m=d[0],C=d[1],b=d[2],P=1 in arguments?arguments[1]:D.rgb.hsv(d)[2];if(P=Math.round(P/50),P===0)return 30;var u=30+(Math.round(b/255)<<2|Math.round(C/255)<<1|Math.round(m/255));return P===2&&(u+=60),u},D.hsv.ansi16=function(d){return D.rgb.ansi16(D.hsv.rgb(d),d[2])},D.rgb.ansi256=function(d){var m=d[0],C=d[1],b=d[2];if(m===C&&C===b)return m<8?16:m>248?231:Math.round((m-8)/247*24)+232;var P=16+36*Math.round(m/255*5)+6*Math.round(C/255*5)+Math.round(b/255*5);return P},D.ansi16.rgb=function(d){var m=d%10;if(m===0||m===7)return d>50&&(m+=3.5),m=m/10.5*255,[m,m,m];var C=(~~(d>50)+1)*.5,b=(m&1)*C*255,P=(m>>1&1)*C*255,u=(m>>2&1)*C*255;return[b,P,u]},D.ansi256.rgb=function(d){if(d>=232){var m=(d-232)*10+8;return[m,m,m]}d-=16;var C,b=Math.floor(d/36)/5*255,P=Math.floor((C=d%36)/6)/5*255,u=C%6/5*255;return[b,P,u]},D.rgb.hex=function(d){var m=((Math.round(d[0])&255)<<16)+((Math.round(d[1])&255)<<8)+(Math.round(d[2])&255),C=m.toString(16).toUpperCase();return"000000".substring(C.length)+C},D.hex.rgb=function(d){var m=d.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!m)return[0,0,0];var C=m[0];m[0].length===3&&(C=C.split("").map(function(g){return g+g}).join(""));var b=parseInt(C,16),P=b>>16&255,u=b>>8&255,f=b&255;return[P,u,f]},D.rgb.hcg=function(d){var m=d[0]/255,C=d[1]/255,b=d[2]/255,P=Math.max(Math.max(m,C),b),u=Math.min(Math.min(m,C),b),f=P-u,g,x;return f<1?g=u/(1-f):g=0,f<=0?x=0:P===m?x=(C-b)/f%6:P===C?x=2+(b-m)/f:x=4+(m-C)/f+4,x/=6,x%=1,[x*360,f*100,g*100]},D.hsl.hcg=function(d){var m=d[1]/100,C=d[2]/100,b=1,P=0;return C<.5?b=2*m*C:b=2*m*(1-C),b<1&&(P=(C-.5*b)/(1-b)),[d[0],b*100,P*100]},D.hsv.hcg=function(d){var m=d[1]/100,C=d[2]/100,b=m*C,P=0;return b<1&&(P=(C-b)/(1-b)),[d[0],b*100,P*100]},D.hcg.rgb=function(d){var m=d[0]/360,C=d[1]/100,b=d[2]/100;if(C===0)return[b*255,b*255,b*255];var P=[0,0,0],u=m%1*6,f=u%1,g=1-f,x=0;switch(Math.floor(u)){case 0:P[0]=1,P[1]=f,P[2]=0;break;case 1:P[0]=g,P[1]=1,P[2]=0;break;case 2:P[0]=0,P[1]=1,P[2]=f;break;case 3:P[0]=0,P[1]=g,P[2]=1;break;case 4:P[0]=f,P[1]=0,P[2]=1;break;default:P[0]=1,P[1]=0,P[2]=g}return x=(1-C)*b,[(C*P[0]+x)*255,(C*P[1]+x)*255,(C*P[2]+x)*255]},D.hcg.hsv=function(d){var m=d[1]/100,C=d[2]/100,b=m+C*(1-m),P=0;return b>0&&(P=m/b),[d[0],P*100,b*100]},D.hcg.hsl=function(d){var m=d[1]/100,C=d[2]/100,b=C*(1-m)+.5*m,P=0;return b>0&&b<.5?P=m/(2*b):b>=.5&&b<1&&(P=m/(2*(1-b))),[d[0],P*100,b*100]},D.hcg.hwb=function(d){var m=d[1]/100,C=d[2]/100,b=m+C*(1-m);return[d[0],(b-m)*100,(1-b)*100]},D.hwb.hcg=function(d){var m=d[1]/100,C=d[2]/100,b=1-C,P=b-m,u=0;return P<1&&(u=(b-P)/(1-P)),[d[0],P*100,u*100]},D.apple.rgb=function(d){return[d[0]/65535*255,d[1]/65535*255,d[2]/65535*255]},D.rgb.apple=function(d){return[d[0]/255*65535,d[1]/255*65535,d[2]/255*65535]},D.gray.rgb=function(d){return[d[0]/100*255,d[0]/100*255,d[0]/100*255]},D.gray.hsl=D.gray.hsv=function(d){return[0,0,d[0]]},D.gray.hwb=function(d){return[0,100,d[0]]},D.gray.cmyk=function(d){return[0,0,0,d[0]]},D.gray.lab=function(d){return[d[0],0,0]},D.gray.hex=function(d){var m=Math.round(d[0]/100*255)&255,C=(m<<16)+(m<<8)+m,b=C.toString(16).toUpperCase();return"000000".substring(b.length)+b},D.rgb.gray=function(d){var m=(d[0]+d[1]+d[2])/3;return[m/255*100]}},2085:(L,M,w)=>{var T=w(8168),I=w(4111),H={},D=Object.keys(T);function F(S){var O=function(d){return d==null?d:(arguments.length>1&&(d=Array.prototype.slice.call(arguments)),S(d))};return"conversion"in S&&(O.conversion=S.conversion),O}function A(S){var O=function(d){if(d==null)return d;arguments.length>1&&(d=Array.prototype.slice.call(arguments));var m=S(d);if(typeof m=="object")for(var C=m.length,b=0;b<C;b++)m[b]=Math.round(m[b]);return m};return"conversion"in S&&(O.conversion=S.conversion),O}D.forEach(function(S){H[S]={},Object.defineProperty(H[S],"channels",{value:T[S].channels}),Object.defineProperty(H[S],"labels",{value:T[S].labels});var O=I(S),d=Object.keys(O);d.forEach(function(m){var C=O[m];H[S][m]=A(C),H[S][m].raw=F(C)})}),L.exports=H},9092:L=>{"use strict";L.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},4111:(L,M,w)=>{var T=w(8168);function I(){for(var A={},S=Object.keys(T),O=S.length,d=0;d<O;d++)A[S[d]]={distance:-1,parent:null};return A}function H(A){var S=I(),O=[A];for(S[A].distance=0;O.length;)for(var d=O.pop(),m=Object.keys(T[d]),C=m.length,b=0;b<C;b++){var P=m[b],u=S[P];u.distance===-1&&(u.distance=S[d].distance+1,u.parent=d,O.unshift(P))}return S}function D(A,S){return function(O){return S(A(O))}}function F(A,S){for(var O=[S[A].parent,A],d=T[S[A].parent][A],m=S[A].parent;S[m].parent;)O.unshift(S[m].parent),d=D(T[S[m].parent][m],d),m=S[m].parent;return d.conversion=O,d}L.exports=function(A){for(var S=H(A),O={},d=Object.keys(S),m=d.length,C=0;C<m;C++){var b=d[C],P=S[b];P.parent!==null&&(O[b]=F(b,S))}return O}},8874:L=>{"use strict";L.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},9818:(L,M,w)=>{var T=w(8874),I=w(6851),H=Object.hasOwnProperty,D=Object.create(null);for(var F in T)H.call(T,F)&&(D[T[F]]=F);var A=L.exports={to:{},get:{}};A.get=function(d){var m=d.substring(0,3).toLowerCase(),C,b;switch(m){case"hsl":C=A.get.hsl(d),b="hsl";break;case"hwb":C=A.get.hwb(d),b="hwb";break;default:C=A.get.rgb(d),b="rgb";break}return C?{model:b,value:C}:null},A.get.rgb=function(d){if(!d)return null;var m=/^#([a-f0-9]{3,4})$/i,C=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,b=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,P=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,u=/^(\w+)$/,f=[0,0,0,1],g,x,_;if(g=d.match(C)){for(_=g[2],g=g[1],x=0;x<3;x++){var B=x*2;f[x]=parseInt(g.slice(B,B+2),16)}_&&(f[3]=parseInt(_,16)/255)}else if(g=d.match(m)){for(g=g[1],_=g[3],x=0;x<3;x++)f[x]=parseInt(g[x]+g[x],16);_&&(f[3]=parseInt(_+_,16)/255)}else if(g=d.match(b)){for(x=0;x<3;x++)f[x]=parseInt(g[x+1],0);g[4]&&(g[5]?f[3]=parseFloat(g[4])*.01:f[3]=parseFloat(g[4]))}else if(g=d.match(P)){for(x=0;x<3;x++)f[x]=Math.round(parseFloat(g[x+1])*2.55);g[4]&&(g[5]?f[3]=parseFloat(g[4])*.01:f[3]=parseFloat(g[4]))}else return(g=d.match(u))?g[1]==="transparent"?[0,0,0,0]:H.call(T,g[1])?(f=T[g[1]],f[3]=1,f):null:null;for(x=0;x<3;x++)f[x]=S(f[x],0,255);return f[3]=S(f[3],0,1),f},A.get.hsl=function(d){if(!d)return null;var m=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,C=d.match(m);if(C){var b=parseFloat(C[4]),P=(parseFloat(C[1])%360+360)%360,u=S(parseFloat(C[2]),0,100),f=S(parseFloat(C[3]),0,100),g=S(isNaN(b)?1:b,0,1);return[P,u,f,g]}return null},A.get.hwb=function(d){if(!d)return null;var m=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,C=d.match(m);if(C){var b=parseFloat(C[4]),P=(parseFloat(C[1])%360+360)%360,u=S(parseFloat(C[2]),0,100),f=S(parseFloat(C[3]),0,100),g=S(isNaN(b)?1:b,0,1);return[P,u,f,g]}return null},A.to.hex=function(){var d=I(arguments);return"#"+O(d[0])+O(d[1])+O(d[2])+(d[3]<1?O(Math.round(d[3]*255)):"")},A.to.rgb=function(){var d=I(arguments);return d.length<4||d[3]===1?"rgb("+Math.round(d[0])+", "+Math.round(d[1])+", "+Math.round(d[2])+")":"rgba("+Math.round(d[0])+", "+Math.round(d[1])+", "+Math.round(d[2])+", "+d[3]+")"},A.to.rgb.percent=function(){var d=I(arguments),m=Math.round(d[0]/255*100),C=Math.round(d[1]/255*100),b=Math.round(d[2]/255*100);return d.length<4||d[3]===1?"rgb("+m+"%, "+C+"%, "+b+"%)":"rgba("+m+"%, "+C+"%, "+b+"%, "+d[3]+")"},A.to.hsl=function(){var d=I(arguments);return d.length<4||d[3]===1?"hsl("+d[0]+", "+d[1]+"%, "+d[2]+"%)":"hsla("+d[0]+", "+d[1]+"%, "+d[2]+"%, "+d[3]+")"},A.to.hwb=function(){var d=I(arguments),m="";return d.length>=4&&d[3]!==1&&(m=", "+d[3]),"hwb("+d[0]+", "+d[1]+"%, "+d[2]+"%"+m+")"},A.to.keyword=function(d){return D[d.slice(0,3)]};function S(d,m,C){return Math.min(Math.max(m,d),C)}function O(d){var m=Math.round(d).toString(16).toUpperCase();return m.length<2?"0"+m:m}},6767:(L,M,w)=>{"use strict";var T=w(9818),I=w(2085),H=[].slice,D=["keyword","gray","hex"],F={};Object.keys(I).forEach(function(u){F[H.call(I[u].labels).sort().join("")]=u});var A={};function S(u,f){if(!(this instanceof S))return new S(u,f);if(f&&f in D&&(f=null),f&&!(f in I))throw new Error("Unknown model: "+f);var g,x;if(u==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(u instanceof S)this.model=u.model,this.color=u.color.slice(),this.valpha=u.valpha;else if(typeof u=="string"){var _=T.get(u);if(_===null)throw new Error("Unable to parse color from string: "+u);this.model=_.model,x=I[this.model].channels,this.color=_.value.slice(0,x),this.valpha=typeof _.value[x]=="number"?_.value[x]:1}else if(u.length){this.model=f||"rgb",x=I[this.model].channels;var B=H.call(u,0,x);this.color=P(B,x),this.valpha=typeof u[x]=="number"?u[x]:1}else if(typeof u=="number")u&=16777215,this.model="rgb",this.color=[u>>16&255,u>>8&255,u&255],this.valpha=1;else{this.valpha=1;var W=Object.keys(u);"alpha"in u&&(W.splice(W.indexOf("alpha"),1),this.valpha=typeof u.alpha=="number"?u.alpha:0);var j=W.sort().join("");if(!(j in F))throw new Error("Unable to parse color from object: "+JSON.stringify(u));this.model=F[j];var ee=I[this.model].labels,V=[];for(g=0;g<ee.length;g++)V.push(u[ee[g]]);this.color=P(V)}if(A[this.model])for(x=I[this.model].channels,g=0;g<x;g++){var z=A[this.model][g];z&&(this.color[g]=z(this.color[g]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}S.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(u){var f=this.model in T.to?this:this.rgb();f=f.round(typeof u=="number"?u:1);var g=f.valpha===1?f.color:f.color.concat(this.valpha);return T.to[f.model](g)},percentString:function(u){var f=this.rgb().round(typeof u=="number"?u:1),g=f.valpha===1?f.color:f.color.concat(this.valpha);return T.to.rgb.percent(g)},array:function(){return this.valpha===1?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var u={},f=I[this.model].channels,g=I[this.model].labels,x=0;x<f;x++)u[g[x]]=this.color[x];return this.valpha!==1&&(u.alpha=this.valpha),u},unitArray:function(){var u=this.rgb().color;return u[0]/=255,u[1]/=255,u[2]/=255,this.valpha!==1&&u.push(this.valpha),u},unitObject:function(){var u=this.rgb().object();return u.r/=255,u.g/=255,u.b/=255,this.valpha!==1&&(u.alpha=this.valpha),u},round:function(u){return u=Math.max(u||0,0),new S(this.color.map(d(u)).concat(this.valpha),this.model)},alpha:function(u){return arguments.length?new S(this.color.concat(Math.max(0,Math.min(1,u))),this.model):this.valpha},red:m("rgb",0,C(255)),green:m("rgb",1,C(255)),blue:m("rgb",2,C(255)),hue:m(["hsl","hsv","hsl","hwb","hcg"],0,function(u){return(u%360+360)%360}),saturationl:m("hsl",1,C(100)),lightness:m("hsl",2,C(100)),saturationv:m("hsv",1,C(100)),value:m("hsv",2,C(100)),chroma:m("hcg",1,C(100)),gray:m("hcg",2,C(100)),white:m("hwb",1,C(100)),wblack:m("hwb",2,C(100)),cyan:m("cmyk",0,C(100)),magenta:m("cmyk",1,C(100)),yellow:m("cmyk",2,C(100)),black:m("cmyk",3,C(100)),x:m("xyz",0,C(100)),y:m("xyz",1,C(100)),z:m("xyz",2,C(100)),l:m("lab",0,C(100)),a:m("lab",1),b:m("lab",2),keyword:function(u){return arguments.length?new S(u):I[this.model].keyword(this.color)},hex:function(u){return arguments.length?new S(u):T.to.hex(this.rgb().round().color)},rgbNumber:function(){var u=this.rgb().color;return(u[0]&255)<<16|(u[1]&255)<<8|u[2]&255},luminosity:function(){for(var u=this.rgb().color,f=[],g=0;g<u.length;g++){var x=u[g]/255;f[g]=x<=.03928?x/12.92:Math.pow((x+.055)/1.055,2.4)}return .2126*f[0]+.7152*f[1]+.0722*f[2]},contrast:function(u){var f=this.luminosity(),g=u.luminosity();return f>g?(f+.05)/(g+.05):(g+.05)/(f+.05)},level:function(u){var f=this.contrast(u);return f>=7.1?"AAA":f>=4.5?"AA":""},isDark:function(){var u=this.rgb().color,f=(u[0]*299+u[1]*587+u[2]*114)/1e3;return f<128},isLight:function(){return!this.isDark()},negate:function(){for(var u=this.rgb(),f=0;f<3;f++)u.color[f]=255-u.color[f];return u},lighten:function(u){var f=this.hsl();return f.color[2]+=f.color[2]*u,f},darken:function(u){var f=this.hsl();return f.color[2]-=f.color[2]*u,f},saturate:function(u){var f=this.hsl();return f.color[1]+=f.color[1]*u,f},desaturate:function(u){var f=this.hsl();return f.color[1]-=f.color[1]*u,f},whiten:function(u){var f=this.hwb();return f.color[1]+=f.color[1]*u,f},blacken:function(u){var f=this.hwb();return f.color[2]+=f.color[2]*u,f},grayscale:function(){var u=this.rgb().color,f=u[0]*.3+u[1]*.59+u[2]*.11;return S.rgb(f,f,f)},fade:function(u){return this.alpha(this.valpha-this.valpha*u)},opaquer:function(u){return this.alpha(this.valpha+this.valpha*u)},rotate:function(u){var f=this.hsl(),g=f.color[0];return g=(g+u)%360,g=g<0?360+g:g,f.color[0]=g,f},mix:function(u,f){if(!u||!u.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof u);var g=u.rgb(),x=this.rgb(),_=f===void 0?.5:f,B=2*_-1,W=g.alpha()-x.alpha(),j=((B*W===-1?B:(B+W)/(1+B*W))+1)/2,ee=1-j;return S.rgb(j*g.red()+ee*x.red(),j*g.green()+ee*x.green(),j*g.blue()+ee*x.blue(),g.alpha()*_+x.alpha()*(1-_))}},Object.keys(I).forEach(function(u){if(D.indexOf(u)===-1){var f=I[u].channels;S.prototype[u]=function(){if(this.model===u)return new S(this);if(arguments.length)return new S(arguments,u);var g=typeof arguments[f]=="number"?f:this.valpha;return new S(b(I[this.model][u].raw(this.color)).concat(g),u)},S[u]=function(g){return typeof g=="number"&&(g=P(H.call(arguments),f)),new S(g,u)}}});function O(u,f){return Number(u.toFixed(f))}function d(u){return function(f){return O(f,u)}}function m(u,f,g){return u=Array.isArray(u)?u:[u],u.forEach(function(x){(A[x]||(A[x]=[]))[f]=g}),u=u[0],function(x){var _;return arguments.length?(g&&(x=g(x)),_=this[u](),_.color[f]=x,_):(_=this[u]().color[f],g&&(_=g(_)),_)}}function C(u){return function(f){return Math.max(0,Math.min(u,f))}}function b(u){return Array.isArray(u)?u:[u]}function P(u,f){for(var g=0;g<f;g++)typeof u[g]!="number"&&(u[g]=0);return u}L.exports=S},7394:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T,I){for(var H=T<0?"-":"",D=Math.abs(T).toString();D.length<I;)D="0"+D;return H+D}L.exports=M.default},8609:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T,I){if(T==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var H in I)Object.prototype.hasOwnProperty.call(I,H)&&(T[H]=I[H]);return T}L.exports=M.default},6420:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=H;var I=T(w(8609));function H(D){return(0,I.default)({},D)}L.exports=M.default},7561:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(2512)),H=I.default;M.default=H,L.exports=M.default},8729:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.getDefaultOptions=T,M.setDefaultOptions=I;var w={};function T(){return w}function I(H){w=H}},7100:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(1603)),H=T(w(1354)),D=T(w(1370)),F=T(w(623)),A=T(w(6226)),S=T(w(7394)),O=T(w(2699)),d={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},m={G:function(g,x,_){var B=g.getUTCFullYear()>0?1:0;switch(x){case"G":case"GG":case"GGG":return _.era(B,{width:"abbreviated"});case"GGGGG":return _.era(B,{width:"narrow"});case"GGGG":default:return _.era(B,{width:"wide"})}},y:function(g,x,_){if(x==="yo"){var B=g.getUTCFullYear(),W=B>0?B:1-B;return _.ordinalNumber(W,{unit:"year"})}return O.default.y(g,x)},Y:function(g,x,_,B){var W=(0,A.default)(g,B),j=W>0?W:1-W;if(x==="YY"){var ee=j%100;return(0,S.default)(ee,2)}return x==="Yo"?_.ordinalNumber(j,{unit:"year"}):(0,S.default)(j,x.length)},R:function(g,x){var _=(0,D.default)(g);return(0,S.default)(_,x.length)},u:function(g,x){var _=g.getUTCFullYear();return(0,S.default)(_,x.length)},Q:function(g,x,_){var B=Math.ceil((g.getUTCMonth()+1)/3);switch(x){case"Q":return String(B);case"QQ":return(0,S.default)(B,2);case"Qo":return _.ordinalNumber(B,{unit:"quarter"});case"QQQ":return _.quarter(B,{width:"abbreviated",context:"formatting"});case"QQQQQ":return _.quarter(B,{width:"narrow",context:"formatting"});case"QQQQ":default:return _.quarter(B,{width:"wide",context:"formatting"})}},q:function(g,x,_){var B=Math.ceil((g.getUTCMonth()+1)/3);switch(x){case"q":return String(B);case"qq":return(0,S.default)(B,2);case"qo":return _.ordinalNumber(B,{unit:"quarter"});case"qqq":return _.quarter(B,{width:"abbreviated",context:"standalone"});case"qqqqq":return _.quarter(B,{width:"narrow",context:"standalone"});case"qqqq":default:return _.quarter(B,{width:"wide",context:"standalone"})}},M:function(g,x,_){var B=g.getUTCMonth();switch(x){case"M":case"MM":return O.default.M(g,x);case"Mo":return _.ordinalNumber(B+1,{unit:"month"});case"MMM":return _.month(B,{width:"abbreviated",context:"formatting"});case"MMMMM":return _.month(B,{width:"narrow",context:"formatting"});case"MMMM":default:return _.month(B,{width:"wide",context:"formatting"})}},L:function(g,x,_){var B=g.getUTCMonth();switch(x){case"L":return String(B+1);case"LL":return(0,S.default)(B+1,2);case"Lo":return _.ordinalNumber(B+1,{unit:"month"});case"LLL":return _.month(B,{width:"abbreviated",context:"standalone"});case"LLLLL":return _.month(B,{width:"narrow",context:"standalone"});case"LLLL":default:return _.month(B,{width:"wide",context:"standalone"})}},w:function(g,x,_,B){var W=(0,F.default)(g,B);return x==="wo"?_.ordinalNumber(W,{unit:"week"}):(0,S.default)(W,x.length)},I:function(g,x,_){var B=(0,H.default)(g);return x==="Io"?_.ordinalNumber(B,{unit:"week"}):(0,S.default)(B,x.length)},d:function(g,x,_){return x==="do"?_.ordinalNumber(g.getUTCDate(),{unit:"date"}):O.default.d(g,x)},D:function(g,x,_){var B=(0,I.default)(g);return x==="Do"?_.ordinalNumber(B,{unit:"dayOfYear"}):(0,S.default)(B,x.length)},E:function(g,x,_){var B=g.getUTCDay();switch(x){case"E":case"EE":case"EEE":return _.day(B,{width:"abbreviated",context:"formatting"});case"EEEEE":return _.day(B,{width:"narrow",context:"formatting"});case"EEEEEE":return _.day(B,{width:"short",context:"formatting"});case"EEEE":default:return _.day(B,{width:"wide",context:"formatting"})}},e:function(g,x,_,B){var W=g.getUTCDay(),j=(W-B.weekStartsOn+8)%7||7;switch(x){case"e":return String(j);case"ee":return(0,S.default)(j,2);case"eo":return _.ordinalNumber(j,{unit:"day"});case"eee":return _.day(W,{width:"abbreviated",context:"formatting"});case"eeeee":return _.day(W,{width:"narrow",context:"formatting"});case"eeeeee":return _.day(W,{width:"short",context:"formatting"});case"eeee":default:return _.day(W,{width:"wide",context:"formatting"})}},c:function(g,x,_,B){var W=g.getUTCDay(),j=(W-B.weekStartsOn+8)%7||7;switch(x){case"c":return String(j);case"cc":return(0,S.default)(j,x.length);case"co":return _.ordinalNumber(j,{unit:"day"});case"ccc":return _.day(W,{width:"abbreviated",context:"standalone"});case"ccccc":return _.day(W,{width:"narrow",context:"standalone"});case"cccccc":return _.day(W,{width:"short",context:"standalone"});case"cccc":default:return _.day(W,{width:"wide",context:"standalone"})}},i:function(g,x,_){var B=g.getUTCDay(),W=B===0?7:B;switch(x){case"i":return String(W);case"ii":return(0,S.default)(W,x.length);case"io":return _.ordinalNumber(W,{unit:"day"});case"iii":return _.day(B,{width:"abbreviated",context:"formatting"});case"iiiii":return _.day(B,{width:"narrow",context:"formatting"});case"iiiiii":return _.day(B,{width:"short",context:"formatting"});case"iiii":default:return _.day(B,{width:"wide",context:"formatting"})}},a:function(g,x,_){var B=g.getUTCHours(),W=B/12>=1?"pm":"am";switch(x){case"a":case"aa":return _.dayPeriod(W,{width:"abbreviated",context:"formatting"});case"aaa":return _.dayPeriod(W,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return _.dayPeriod(W,{width:"narrow",context:"formatting"});case"aaaa":default:return _.dayPeriod(W,{width:"wide",context:"formatting"})}},b:function(g,x,_){var B=g.getUTCHours(),W;switch(B===12?W=d.noon:B===0?W=d.midnight:W=B/12>=1?"pm":"am",x){case"b":case"bb":return _.dayPeriod(W,{width:"abbreviated",context:"formatting"});case"bbb":return _.dayPeriod(W,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return _.dayPeriod(W,{width:"narrow",context:"formatting"});case"bbbb":default:return _.dayPeriod(W,{width:"wide",context:"formatting"})}},B:function(g,x,_){var B=g.getUTCHours(),W;switch(B>=17?W=d.evening:B>=12?W=d.afternoon:B>=4?W=d.morning:W=d.night,x){case"B":case"BB":case"BBB":return _.dayPeriod(W,{width:"abbreviated",context:"formatting"});case"BBBBB":return _.dayPeriod(W,{width:"narrow",context:"formatting"});case"BBBB":default:return _.dayPeriod(W,{width:"wide",context:"formatting"})}},h:function(g,x,_){if(x==="ho"){var B=g.getUTCHours()%12;return B===0&&(B=12),_.ordinalNumber(B,{unit:"hour"})}return O.default.h(g,x)},H:function(g,x,_){return x==="Ho"?_.ordinalNumber(g.getUTCHours(),{unit:"hour"}):O.default.H(g,x)},K:function(g,x,_){var B=g.getUTCHours()%12;return x==="Ko"?_.ordinalNumber(B,{unit:"hour"}):(0,S.default)(B,x.length)},k:function(g,x,_){var B=g.getUTCHours();return B===0&&(B=24),x==="ko"?_.ordinalNumber(B,{unit:"hour"}):(0,S.default)(B,x.length)},m:function(g,x,_){return x==="mo"?_.ordinalNumber(g.getUTCMinutes(),{unit:"minute"}):O.default.m(g,x)},s:function(g,x,_){return x==="so"?_.ordinalNumber(g.getUTCSeconds(),{unit:"second"}):O.default.s(g,x)},S:function(g,x){return O.default.S(g,x)},X:function(g,x,_,B){var W=B._originalDate||g,j=W.getTimezoneOffset();if(j===0)return"Z";switch(x){case"X":return b(j);case"XXXX":case"XX":return P(j);case"XXXXX":case"XXX":default:return P(j,":")}},x:function(g,x,_,B){var W=B._originalDate||g,j=W.getTimezoneOffset();switch(x){case"x":return b(j);case"xxxx":case"xx":return P(j);case"xxxxx":case"xxx":default:return P(j,":")}},O:function(g,x,_,B){var W=B._originalDate||g,j=W.getTimezoneOffset();switch(x){case"O":case"OO":case"OOO":return"GMT"+C(j,":");case"OOOO":default:return"GMT"+P(j,":")}},z:function(g,x,_,B){var W=B._originalDate||g,j=W.getTimezoneOffset();switch(x){case"z":case"zz":case"zzz":return"GMT"+C(j,":");case"zzzz":default:return"GMT"+P(j,":")}},t:function(g,x,_,B){var W=B._originalDate||g,j=Math.floor(W.getTime()/1e3);return(0,S.default)(j,x.length)},T:function(g,x,_,B){var W=B._originalDate||g,j=W.getTime();return(0,S.default)(j,x.length)}};function C(f,g){var x=f>0?"-":"+",_=Math.abs(f),B=Math.floor(_/60),W=_%60;if(W===0)return x+String(B);var j=g||"";return x+String(B)+j+(0,S.default)(W,2)}function b(f,g){if(f%60===0){var x=f>0?"-":"+";return x+(0,S.default)(Math.abs(f)/60,2)}return P(f,g)}function P(f,g){var x=g||"",_=f>0?"-":"+",B=Math.abs(f),W=(0,S.default)(Math.floor(B/60),2),j=(0,S.default)(B%60,2);return _+W+x+j}var u=m;M.default=u,L.exports=M.default},2699:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(7394)),H={y:function(A,S){var O=A.getUTCFullYear(),d=O>0?O:1-O;return(0,I.default)(S==="yy"?d%100:d,S.length)},M:function(A,S){var O=A.getUTCMonth();return S==="M"?String(O+1):(0,I.default)(O+1,2)},d:function(A,S){return(0,I.default)(A.getUTCDate(),S.length)},a:function(A,S){var O=A.getUTCHours()/12>=1?"pm":"am";switch(S){case"a":case"aa":return O.toUpperCase();case"aaa":return O;case"aaaaa":return O[0];case"aaaa":default:return O==="am"?"a.m.":"p.m."}},h:function(A,S){return(0,I.default)(A.getUTCHours()%12||12,S.length)},H:function(A,S){return(0,I.default)(A.getUTCHours(),S.length)},m:function(A,S){return(0,I.default)(A.getUTCMinutes(),S.length)},s:function(A,S){return(0,I.default)(A.getUTCSeconds(),S.length)},S:function(A,S){var O=S.length,d=A.getUTCMilliseconds(),m=Math.floor(d*Math.pow(10,O-3));return(0,I.default)(m,S.length)}},D=H;M.default=D,L.exports=M.default},5209:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var w=function(A,S){switch(A){case"P":return S.date({width:"short"});case"PP":return S.date({width:"medium"});case"PPP":return S.date({width:"long"});case"PPPP":default:return S.date({width:"full"})}},T=function(A,S){switch(A){case"p":return S.time({width:"short"});case"pp":return S.time({width:"medium"});case"ppp":return S.time({width:"long"});case"pppp":default:return S.time({width:"full"})}},I=function(A,S){var O=A.match(/(P+)(p+)?/)||[],d=O[1],m=O[2];if(!m)return w(A,S);var C;switch(d){case"P":C=S.dateTime({width:"short"});break;case"PP":C=S.dateTime({width:"medium"});break;case"PPP":C=S.dateTime({width:"long"});break;case"PPPP":default:C=S.dateTime({width:"full"});break}return C.replace("{{date}}",w(d,S)).replace("{{time}}",T(m,S))},H={p:T,P:I},D=H;M.default=D,L.exports=M.default},3561:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T){var I=new Date(Date.UTC(T.getFullYear(),T.getMonth(),T.getDate(),T.getHours(),T.getMinutes(),T.getSeconds(),T.getMilliseconds()));return I.setUTCFullYear(T.getFullYear()),T.getTime()-I.getTime()}L.exports=M.default},1603:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var I=T(w(1171)),H=T(w(8734)),D=864e5;function F(A){(0,H.default)(1,arguments);var S=(0,I.default)(A),O=S.getTime();S.setUTCMonth(0,1),S.setUTCHours(0,0,0,0);var d=S.getTime(),m=O-d;return Math.floor(m/D)+1}L.exports=M.default},1354:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=S;var I=T(w(1171)),H=T(w(79)),D=T(w(4275)),F=T(w(8734)),A=6048e5;function S(O){(0,F.default)(1,arguments);var d=(0,I.default)(O),m=(0,H.default)(d).getTime()-(0,D.default)(d).getTime();return Math.round(m/A)+1}L.exports=M.default},1370:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var I=T(w(1171)),H=T(w(8734)),D=T(w(79));function F(A){(0,H.default)(1,arguments);var S=(0,I.default)(A),O=S.getUTCFullYear(),d=new Date(0);d.setUTCFullYear(O+1,0,4),d.setUTCHours(0,0,0,0);var m=(0,D.default)(d),C=new Date(0);C.setUTCFullYear(O,0,4),C.setUTCHours(0,0,0,0);var b=(0,D.default)(C);return S.getTime()>=m.getTime()?O+1:S.getTime()>=b.getTime()?O:O-1}L.exports=M.default},623:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=S;var I=T(w(1171)),H=T(w(9209)),D=T(w(4118)),F=T(w(8734)),A=6048e5;function S(O,d){(0,F.default)(1,arguments);var m=(0,I.default)(O),C=(0,H.default)(m,d).getTime()-(0,D.default)(m,d).getTime();return Math.round(C/A)+1}L.exports=M.default},6226:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=S;var I=T(w(1171)),H=T(w(8734)),D=T(w(9209)),F=T(w(2084)),A=w(8729);function S(O,d){var m,C,b,P,u,f,g,x;(0,H.default)(1,arguments);var _=(0,I.default)(O),B=_.getUTCFullYear(),W=(0,A.getDefaultOptions)(),j=(0,F.default)((m=(C=(b=(P=d==null?void 0:d.firstWeekContainsDate)!==null&&P!==void 0?P:d==null||(u=d.locale)===null||u===void 0||(f=u.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&b!==void 0?b:W.firstWeekContainsDate)!==null&&C!==void 0?C:(g=W.locale)===null||g===void 0||(x=g.options)===null||x===void 0?void 0:x.firstWeekContainsDate)!==null&&m!==void 0?m:1);if(!(j>=1&&j<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ee=new Date(0);ee.setUTCFullYear(B+1,0,j),ee.setUTCHours(0,0,0,0);var V=(0,D.default)(ee,d),z=new Date(0);z.setUTCFullYear(B,0,j),z.setUTCHours(0,0,0,0);var X=(0,D.default)(z,d);return _.getTime()>=V.getTime()?B+1:_.getTime()>=X.getTime()?B:B-1}L.exports=M.default},6736:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.isProtectedDayOfYearToken=I,M.isProtectedWeekYearToken=H,M.throwProtectedError=D;var w=["D","DD"],T=["YY","YYYY"];function I(F){return w.indexOf(F)!==-1}function H(F){return T.indexOf(F)!==-1}function D(F,A,S){if(F==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(A,"`) for formatting years to the input `").concat(S,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(F==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(A,"`) for formatting years to the input `").concat(S,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(F==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(A,"`) for formatting days of the month to the input `").concat(S,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(F==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(A,"`) for formatting days of the month to the input `").concat(S,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}},8734:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T,I){if(I.length<T)throw new TypeError(T+" argument"+(T>1?"s":"")+" required, but only "+I.length+" present")}L.exports=M.default},79:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=D;var I=T(w(1171)),H=T(w(8734));function D(F){(0,H.default)(1,arguments);var A=1,S=(0,I.default)(F),O=S.getUTCDay(),d=(O<A?7:0)+O-A;return S.setUTCDate(S.getUTCDate()-d),S.setUTCHours(0,0,0,0),S}L.exports=M.default},4275:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var I=T(w(1370)),H=T(w(79)),D=T(w(8734));function F(A){(0,D.default)(1,arguments);var S=(0,I.default)(A),O=new Date(0);O.setUTCFullYear(S,0,4),O.setUTCHours(0,0,0,0);var d=(0,H.default)(O);return d}L.exports=M.default},9209:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=A;var I=T(w(1171)),H=T(w(8734)),D=T(w(2084)),F=w(8729);function A(S,O){var d,m,C,b,P,u,f,g;(0,H.default)(1,arguments);var x=(0,F.getDefaultOptions)(),_=(0,D.default)((d=(m=(C=(b=O==null?void 0:O.weekStartsOn)!==null&&b!==void 0?b:O==null||(P=O.locale)===null||P===void 0||(u=P.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&C!==void 0?C:x.weekStartsOn)!==null&&m!==void 0?m:(f=x.locale)===null||f===void 0||(g=f.options)===null||g===void 0?void 0:g.weekStartsOn)!==null&&d!==void 0?d:0);if(!(_>=0&&_<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var B=(0,I.default)(S),W=B.getUTCDay(),j=(W<_?7:0)+W-_;return B.setUTCDate(B.getUTCDate()-j),B.setUTCHours(0,0,0,0),B}L.exports=M.default},4118:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=S;var I=T(w(6226)),H=T(w(8734)),D=T(w(9209)),F=T(w(2084)),A=w(8729);function S(O,d){var m,C,b,P,u,f,g,x;(0,H.default)(1,arguments);var _=(0,A.getDefaultOptions)(),B=(0,F.default)((m=(C=(b=(P=d==null?void 0:d.firstWeekContainsDate)!==null&&P!==void 0?P:d==null||(u=d.locale)===null||u===void 0||(f=u.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&b!==void 0?b:_.firstWeekContainsDate)!==null&&C!==void 0?C:(g=_.locale)===null||g===void 0||(x=g.options)===null||x===void 0?void 0:x.firstWeekContainsDate)!==null&&m!==void 0?m:1),W=(0,I.default)(O,d),j=new Date(0);j.setUTCFullYear(W,0,B),j.setUTCHours(0,0,0,0);var ee=(0,D.default)(j,d);return ee}L.exports=M.default},2084:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T){if(T===null||T===!0||T===!1)return NaN;var I=Number(T);return isNaN(I)?I:I<0?Math.ceil(I):Math.floor(I)}L.exports=M.default},5065:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var I=T(w(2084)),H=T(w(1171)),D=T(w(8734));function F(A,S){(0,D.default)(2,arguments);var O=(0,H.default)(A).getTime(),d=(0,I.default)(S);return new Date(O+d)}L.exports=M.default},5616:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=_;var I=T(w(9989)),H=T(w(3239)),D=T(w(1171)),F=T(w(7100)),A=T(w(5209)),S=T(w(3561)),O=w(6736),d=T(w(2084)),m=T(w(8734)),C=w(8729),b=T(w(7561)),P=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,u=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,f=/^'([^]*?)'?$/,g=/''/g,x=/[a-zA-Z]/;function _(W,j,ee){var V,z,X,Q,ie,ge,Se,Ae,Ce,Ne,De,Ee,ke,st,xt,Mt,It,Ot;(0,m.default)(2,arguments);var Tn=String(j),Ze=(0,C.getDefaultOptions)(),Le=(V=(z=ee==null?void 0:ee.locale)!==null&&z!==void 0?z:Ze.locale)!==null&&V!==void 0?V:b.default,it=(0,d.default)((X=(Q=(ie=(ge=ee==null?void 0:ee.firstWeekContainsDate)!==null&&ge!==void 0?ge:ee==null||(Se=ee.locale)===null||Se===void 0||(Ae=Se.options)===null||Ae===void 0?void 0:Ae.firstWeekContainsDate)!==null&&ie!==void 0?ie:Ze.firstWeekContainsDate)!==null&&Q!==void 0?Q:(Ce=Ze.locale)===null||Ce===void 0||(Ne=Ce.options)===null||Ne===void 0?void 0:Ne.firstWeekContainsDate)!==null&&X!==void 0?X:1);if(!(it>=1&&it<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var Bt=(0,d.default)((De=(Ee=(ke=(st=ee==null?void 0:ee.weekStartsOn)!==null&&st!==void 0?st:ee==null||(xt=ee.locale)===null||xt===void 0||(Mt=xt.options)===null||Mt===void 0?void 0:Mt.weekStartsOn)!==null&&ke!==void 0?ke:Ze.weekStartsOn)!==null&&Ee!==void 0?Ee:(It=Ze.locale)===null||It===void 0||(Ot=It.options)===null||Ot===void 0?void 0:Ot.weekStartsOn)!==null&&De!==void 0?De:0);if(!(Bt>=0&&Bt<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!Le.localize)throw new RangeError("locale must contain localize property");if(!Le.formatLong)throw new RangeError("locale must contain formatLong property");var at=(0,D.default)(W);if(!(0,I.default)(at))throw new RangeError("Invalid time value");var _n=(0,S.default)(at),Rt=(0,H.default)(at,_n),An={firstWeekContainsDate:it,weekStartsOn:Bt,locale:Le,_originalDate:at},vt=Tn.match(u).map(function(be){var je=be[0];if(je==="p"||je==="P"){var ot=A.default[je];return ot(be,Le.formatLong)}return be}).join("").match(P).map(function(be){if(be==="''")return"'";var je=be[0];if(je==="'")return B(be);var ot=F.default[je];if(ot)return!(ee!=null&&ee.useAdditionalWeekYearTokens)&&(0,O.isProtectedWeekYearToken)(be)&&(0,O.throwProtectedError)(be,j,String(W)),!(ee!=null&&ee.useAdditionalDayOfYearTokens)&&(0,O.isProtectedDayOfYearToken)(be)&&(0,O.throwProtectedError)(be,j,String(W)),ot(Rt,be,Le.localize,An);if(je.match(x))throw new RangeError("Format string contains an unescaped latin alphabet character `"+je+"`");return be}).join("");return vt}function B(W){var j=W.match(f);return j?j[1].replace(g,"'"):W}L.exports=M.default},2382:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=D;var I=T(w(8698)),H=T(w(8734));function D(F){return(0,H.default)(1,arguments),F instanceof Date||(0,I.default)(F)==="object"&&Object.prototype.toString.call(F)==="[object Date]"}L.exports=M.default},9989:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var I=T(w(2382)),H=T(w(1171)),D=T(w(8734));function F(A){if((0,D.default)(1,arguments),!(0,I.default)(A)&&typeof A!="number")return!1;var S=(0,H.default)(A);return!isNaN(Number(S))}L.exports=M.default},289:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T){return function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=I.width?String(I.width):T.defaultWidth,D=T.formats[H]||T.formats[T.defaultWidth];return D}}L.exports=M.default},6245:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T){return function(I,H){var D=H!=null&&H.context?String(H.context):"standalone",F;if(D==="formatting"&&T.formattingValues){var A=T.defaultFormattingWidth||T.defaultWidth,S=H!=null&&H.width?String(H.width):A;F=T.formattingValues[S]||T.formattingValues[A]}else{var O=T.defaultWidth,d=H!=null&&H.width?String(H.width):T.defaultWidth;F=T.values[d]||T.values[O]}var m=T.argumentCallback?T.argumentCallback(I):I;return F[m]}}L.exports=M.default},3421:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(H){return function(D){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=F.width,S=A&&H.matchPatterns[A]||H.matchPatterns[H.defaultMatchWidth],O=D.match(S);if(!O)return null;var d=O[0],m=A&&H.parsePatterns[A]||H.parsePatterns[H.defaultParseWidth],C=Array.isArray(m)?I(m,function(u){return u.test(d)}):T(m,function(u){return u.test(d)}),b;b=H.valueCallback?H.valueCallback(C):C,b=F.valueCallback?F.valueCallback(b):b;var P=D.slice(d.length);return{value:b,rest:P}}}function T(H,D){for(var F in H)if(H.hasOwnProperty(F)&&D(H[F]))return F}function I(H,D){for(var F=0;F<H.length;F++)if(D(H[F]))return F}L.exports=M.default},8926:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T){return function(I){var H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},D=I.match(T.matchPattern);if(!D)return null;var F=D[0],A=I.match(T.parsePattern);if(!A)return null;var S=T.valueCallback?T.valueCallback(A[0]):A[0];S=H.valueCallback?H.valueCallback(S):S;var O=I.slice(F.length);return{value:S,rest:O}}}L.exports=M.default},1924:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var w={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},T=function(D,F,A){var S,O=w[D];return typeof O=="string"?S=O:F===1?S=O.one:S=O.other.replace("{{count}}",F.toString()),A!=null&&A.addSuffix?A.comparison&&A.comparison>0?"in "+S:S+" ago":S},I=T;M.default=I,L.exports=M.default},5062:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(289)),H={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},D={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},F={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},A={date:(0,I.default)({formats:H,defaultWidth:"full"}),time:(0,I.default)({formats:D,defaultWidth:"full"}),dateTime:(0,I.default)({formats:F,defaultWidth:"full"})},S=A;M.default=S,L.exports=M.default},5102:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var w={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},T=function(D,F,A,S){return w[D]},I=T;M.default=I,L.exports=M.default},7839:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(6245)),H={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},D={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},F={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},A={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},S={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},O={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},d=function(P,u){var f=Number(P),g=f%100;if(g>20||g<10)switch(g%10){case 1:return f+"st";case 2:return f+"nd";case 3:return f+"rd"}return f+"th"},m={ordinalNumber:d,era:(0,I.default)({values:H,defaultWidth:"wide"}),quarter:(0,I.default)({values:D,defaultWidth:"wide",argumentCallback:function(P){return P-1}}),month:(0,I.default)({values:F,defaultWidth:"wide"}),day:(0,I.default)({values:A,defaultWidth:"wide"}),dayPeriod:(0,I.default)({values:S,defaultWidth:"wide",formattingValues:O,defaultFormattingWidth:"wide"})},C=m;M.default=C,L.exports=M.default},9796:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(3421)),H=T(w(8926)),D=/^(\d+)(th|st|nd|rd)?/i,F=/\d+/i,A={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},S={any:[/^b/i,/^(a|c)/i]},O={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},C={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},b={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},P={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},u={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},f={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},g={ordinalNumber:(0,H.default)({matchPattern:D,parsePattern:F,valueCallback:function(B){return parseInt(B,10)}}),era:(0,I.default)({matchPatterns:A,defaultMatchWidth:"wide",parsePatterns:S,defaultParseWidth:"any"}),quarter:(0,I.default)({matchPatterns:O,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(B){return B+1}}),month:(0,I.default)({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:C,defaultParseWidth:"any"}),day:(0,I.default)({matchPatterns:b,defaultMatchWidth:"wide",parsePatterns:P,defaultParseWidth:"any"}),dayPeriod:(0,I.default)({matchPatterns:u,defaultMatchWidth:"any",parsePatterns:f,defaultParseWidth:"any"})},x=g;M.default=x,L.exports=M.default},2512:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var I=T(w(1924)),H=T(w(5062)),D=T(w(5102)),F=T(w(7839)),A=T(w(9796)),S={code:"en-US",formatDistance:I.default,formatLong:H.default,formatRelative:D.default,localize:F.default,match:A.default,options:{weekStartsOn:0,firstWeekContainsDate:1}},O=S;M.default=O,L.exports=M.default},3239:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var I=T(w(5065)),H=T(w(8734)),D=T(w(2084));function F(A,S){(0,H.default)(2,arguments);var O=(0,D.default)(S);return(0,I.default)(A,-O)}L.exports=M.default},1171:(L,M,w)=>{"use strict";var T=w(4836).default;Object.defineProperty(M,"__esModule",{value:!0}),M.default=D;var I=T(w(8698)),H=T(w(8734));function D(F){(0,H.default)(1,arguments);var A=Object.prototype.toString.call(F);return F instanceof Date||(0,I.default)(F)==="object"&&A==="[object Date]"?new Date(F.getTime()):typeof F=="number"||A==="[object Number]"?new Date(F):((typeof F=="string"||A==="[object String]")&&typeof console!="undefined"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}L.exports=M.default},5171:L=>{L.exports=function(w){return!w||typeof w=="string"?!1:w instanceof Array||Array.isArray(w)||w.length>=0&&(w.splice instanceof Function||Object.getOwnPropertyDescriptor(w,w.length-1)&&w.constructor.name!=="String")}},6851:(L,M,w)=>{"use strict";var T=w(5171),I=Array.prototype.concat,H=Array.prototype.slice,D=L.exports=function(A){for(var S=[],O=0,d=A.length;O<d;O++){var m=A[O];T(m)?S=I.call(S,H.call(m)):S.push(m)}return S};D.wrap=function(F){return function(){return F(D(arguments))}}},4836:L=>{function M(w){return w&&w.__esModule?w:{default:w}}L.exports=M,L.exports.__esModule=!0,L.exports.default=L.exports},8698:L=>{function M(w){"@babel/helpers - typeof";return L.exports=M=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(T){return typeof T}:function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},L.exports.__esModule=!0,L.exports.default=L.exports,M(w)}L.exports=M,L.exports.__esModule=!0,L.exports.default=L.exports},5721:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(T,I,H,D,F,A,S){var O=new Date(0);return O.setUTCFullYear(T,I,H),O.setUTCHours(D,F,A,S),O}L.exports=M.default},5855:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(D,F,A){var S=H(D,A.timeZone,A.locale);return S.formatToParts?T(S,F):I(S,F)}function T(D,F){for(var A=D.formatToParts(F),S=A.length-1;S>=0;--S)if(A[S].type==="timeZoneName")return A[S].value}function I(D,F){var A=D.format(F).replace(/\u200E/g,""),S=/ [\w-+ ]+$/.exec(A);return S?S[0].substr(1):""}function H(D,F,A){if(A&&!A.code)throw new Error("date-fns-tz error: Please set a language code on the locale object imported from date-fns, e.g. `locale.code = 'en-US'`");return new Intl.DateTimeFormat(A?[A.code,"en-US"]:void 0,{timeZone:F,timeZoneName:D})}L.exports=M.default},2734:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=S;var T=H(w(2712)),I=H(w(5721));function H(u){return u&&u.__esModule?u:{default:u}}var D=36e5,F=6e4,A={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-]\d{2}):?(\d{2})$/};function S(u,f,g){var x,_;if(!u||(x=A.timezoneZ.exec(u),x))return 0;var B;if(x=A.timezoneHH.exec(u),x)return B=parseInt(x[1],10),C(B)?-(B*D):NaN;if(x=A.timezoneHHMM.exec(u),x){B=parseInt(x[1],10);var W=parseInt(x[2],10);return C(B,W)?(_=Math.abs(B)*D+W*F,B>0?-_:_):NaN}if(P(u)){f=new Date(f||Date.now());var j=g?f:O(f),ee=d(j,u),V=g?ee:m(f,ee,u);return-V}return NaN}function O(u){return(0,I.default)(u.getFullYear(),u.getMonth(),u.getDate(),u.getHours(),u.getMinutes(),u.getSeconds(),u.getMilliseconds())}function d(u,f){var g=(0,T.default)(u,f),x=(0,I.default)(g[0],g[1]-1,g[2],g[3]%24,g[4],g[5],0).getTime(),_=u.getTime(),B=_%1e3;return _-=B>=0?B:1e3+B,x-_}function m(u,f,g){var x=u.getTime(),_=x-f,B=d(new Date(_),g);if(f===B)return f;_-=B-f;var W=d(new Date(_),g);return B===W?B:Math.max(B,W)}function C(u,f){return-23<=u&&u<=23&&(f==null||0<=f&&f<=59)}var b={};function P(u){if(b[u])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:u}),b[u]=!0,!0}catch(f){return!1}}L.exports=M.default},7048:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var w=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,T=w;M.default=T,L.exports=M.default},2712:(L,M)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=w;function w(A,S){var O=F(S);return O.formatToParts?I(O,A):H(O,A)}var T={year:0,month:1,day:2,hour:3,minute:4,second:5};function I(A,S){try{for(var O=A.formatToParts(S),d=[],m=0;m<O.length;m++){var C=T[O[m].type];C>=0&&(d[C]=parseInt(O[m].value,10))}return d}catch(b){if(b instanceof RangeError)return[NaN];throw b}}function H(A,S){var O=A.format(S).replace(/\u200E/g,""),d=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(O);return[d[3],d[1],d[2],d[4],d[5],d[6]]}var D={};function F(A){if(!D[A]){var S=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:"America/New_York",year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),O=S==="06/25/2014, 00:00:00"||S==="\u200E06\u200E/\u200E25\u200E/\u200E2014\u200E \u200E00\u200E:\u200E00\u200E:\u200E00";D[A]=O?new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:A,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:A,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return D[A]}L.exports=M.default},3826:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=void 0;var T=H(w(5855)),I=H(w(2734));function H(b){return b&&b.__esModule?b:{default:b}}var D=60*1e3,F={X:function(b,P,u,f){var g=A(f.timeZone,f._originalDate||b);if(g===0)return"Z";switch(P){case"X":return d(g);case"XXXX":case"XX":return O(g);case"XXXXX":case"XXX":default:return O(g,":")}},x:function(b,P,u,f){var g=A(f.timeZone,f._originalDate||b);switch(P){case"x":return d(g);case"xxxx":case"xx":return O(g);case"xxxxx":case"xxx":default:return O(g,":")}},O:function(b,P,u,f){var g=A(f.timeZone,f._originalDate||b);switch(P){case"O":case"OO":case"OOO":return"GMT"+m(g,":");case"OOOO":default:return"GMT"+O(g,":")}},z:function(b,P,u,f){var g=f._originalDate||b;switch(P){case"z":case"zz":case"zzz":return(0,T.default)("short",g,f);case"zzzz":default:return(0,T.default)("long",g,f)}}};function A(b,P){var u=b?(0,I.default)(b,P,!0)/D:P.getTimezoneOffset();if(Number.isNaN(u))throw new RangeError("Invalid time zone specified: "+b);return u}function S(b,P){for(var u=b<0?"-":"",f=Math.abs(b).toString();f.length<P;)f="0"+f;return u+f}function O(b,P){var u=P||"",f=b>0?"-":"+",g=Math.abs(b),x=S(Math.floor(g/60),2),_=S(Math.floor(g%60),2);return f+x+u+_}function d(b,P){if(b%60===0){var u=b>0?"-":"+";return u+S(Math.abs(b)/60,2)}return O(b,P)}function m(b,P){var u=b>0?"-":"+",f=Math.abs(b),g=Math.floor(f/60),x=f%60;if(x===0)return u+String(g);var _=P||"";return u+String(g)+_+S(x,2)}var C=F;M.default=C,L.exports=M.default},6558:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=A;var T=D(w(5616)),I=D(w(3826)),H=D(w(1476));function D(S){return S&&S.__esModule?S:{default:S}}var F=/([xXOz]+)|''|'(''|[^'])+('|$)/g;function A(S,O,d){var m=String(O),C=d||{},b=m.match(F);if(b){var P=(0,H.default)(S,C);m=b.reduce(function(u,f){if(f[0]==="'")return u;var g=u.indexOf(f),x=u[g-1]==="'",_=u.replace(f,"'"+I.default[f[0]](P,f,null,C)+"'");return x?_.substring(0,g-1)+_.substring(g+1):_},m)}return(0,T.default)(S,m,C)}L.exports=M.default},6645:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=F;var T=D(w(6420)),I=D(w(6558)),H=D(w(1132));function D(A){return A&&A.__esModule?A:{default:A}}function F(A,S,O,d){var m=(0,T.default)(d);return m.timeZone=S,(0,I.default)((0,H.default)(A,S),O,m)}L.exports=M.default},4992:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=H;var T=I(w(2734));function I(D){return D&&D.__esModule?D:{default:D}}function H(D,F){return-(0,T.default)(D,F)}L.exports=M.default},722:(L,M,w)=>{"use strict";L.exports={format:w(6558),formatInTimeZone:w(6645),getTimezoneOffset:w(4992),toDate:w(1476),utcToZonedTime:w(1132),zonedTimeToUtc:w(8516)}},1476:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=m;var T=F(w(2084)),I=F(w(3561)),H=F(w(2734)),D=F(w(7048));function F(V){return V&&V.__esModule?V:{default:V}}var A=36e5,S=6e4,O=2,d={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:D.default};function m(V,z){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(V===null)return new Date(NaN);var X=z||{},Q=X.additionalDigits==null?O:(0,T.default)(X.additionalDigits);if(Q!==2&&Q!==1&&Q!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(V instanceof Date||typeof V=="object"&&Object.prototype.toString.call(V)==="[object Date]")return new Date(V.getTime());if(typeof V=="number"||Object.prototype.toString.call(V)==="[object Number]")return new Date(V);if(!(typeof V=="string"||Object.prototype.toString.call(V)==="[object String]"))return new Date(NaN);var ie=C(V),ge=b(ie.date,Q),Se=ge.year,Ae=ge.restDateString,Ce=P(Ae,Se);if(isNaN(Ce))return new Date(NaN);if(Ce){var Ne=Ce.getTime(),De=0,Ee;if(ie.time&&(De=u(ie.time),isNaN(De)))return new Date(NaN);if(ie.timeZone||X.timeZone){if(Ee=(0,H.default)(ie.timeZone||X.timeZone,new Date(Ne+De)),isNaN(Ee))return new Date(NaN)}else Ee=(0,I.default)(new Date(Ne+De)),Ee=(0,I.default)(new Date(Ne+De+Ee));return new Date(Ne+De+Ee)}else return new Date(NaN)}function C(V){var z={},X=d.dateTimePattern.exec(V),Q;if(X?(z.date=X[1],Q=X[3]):(X=d.datePattern.exec(V),X?(z.date=X[1],Q=X[2]):(z.date=null,Q=V)),Q){var ie=d.timeZone.exec(Q);ie?(z.time=Q.replace(ie[1],""),z.timeZone=ie[1].trim()):z.time=Q}return z}function b(V,z){var X=d.YYY[z],Q=d.YYYYY[z],ie;if(ie=d.YYYY.exec(V)||Q.exec(V),ie){var ge=ie[1];return{year:parseInt(ge,10),restDateString:V.slice(ge.length)}}if(ie=d.YY.exec(V)||X.exec(V),ie){var Se=ie[1];return{year:parseInt(Se,10)*100,restDateString:V.slice(Se.length)}}return{year:null}}function P(V,z){if(z===null)return null;var X,Q,ie,ge;if(V.length===0)return Q=new Date(0),Q.setUTCFullYear(z),Q;if(X=d.MM.exec(V),X)return Q=new Date(0),ie=parseInt(X[1],10)-1,B(z,ie)?(Q.setUTCFullYear(z,ie),Q):new Date(NaN);if(X=d.DDD.exec(V),X){Q=new Date(0);var Se=parseInt(X[1],10);return W(z,Se)?(Q.setUTCFullYear(z,0,Se),Q):new Date(NaN)}if(X=d.MMDD.exec(V),X){Q=new Date(0),ie=parseInt(X[1],10)-1;var Ae=parseInt(X[2],10);return B(z,ie,Ae)?(Q.setUTCFullYear(z,ie,Ae),Q):new Date(NaN)}if(X=d.Www.exec(V),X)return ge=parseInt(X[1],10)-1,j(z,ge)?f(z,ge):new Date(NaN);if(X=d.WwwD.exec(V),X){ge=parseInt(X[1],10)-1;var Ce=parseInt(X[2],10)-1;return j(z,ge,Ce)?f(z,ge,Ce):new Date(NaN)}return null}function u(V){var z,X,Q;if(z=d.HH.exec(V),z)return X=parseFloat(z[1].replace(",",".")),ee(X)?X%24*A:NaN;if(z=d.HHMM.exec(V),z)return X=parseInt(z[1],10),Q=parseFloat(z[2].replace(",",".")),ee(X,Q)?X%24*A+Q*S:NaN;if(z=d.HHMMSS.exec(V),z){X=parseInt(z[1],10),Q=parseInt(z[2],10);var ie=parseFloat(z[3].replace(",","."));return ee(X,Q,ie)?X%24*A+Q*S+ie*1e3:NaN}return null}function f(V,z,X){z=z||0,X=X||0;var Q=new Date(0);Q.setUTCFullYear(V,0,4);var ie=Q.getUTCDay()||7,ge=z*7+X+1-ie;return Q.setUTCDate(Q.getUTCDate()+ge),Q}var g=[31,28,31,30,31,30,31,31,30,31,30,31],x=[31,29,31,30,31,30,31,31,30,31,30,31];function _(V){return V%400===0||V%4===0&&V%100!==0}function B(V,z,X){if(z<0||z>11)return!1;if(X!=null){if(X<1)return!1;var Q=_(V);if(Q&&X>x[z]||!Q&&X>g[z])return!1}return!0}function W(V,z){if(z<1)return!1;var X=_(V);return!(X&&z>366||!X&&z>365)}function j(V,z,X){return!(z<0||z>52||X!=null&&(X<0||X>6))}function ee(V,z,X){return!(V!=null&&(V<0||V>=25)||z!=null&&(z<0||z>=60)||X!=null&&(X<0||X>=60))}L.exports=M.default},1132:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=D;var T=H(w(2734)),I=H(w(1476));function H(F){return F&&F.__esModule?F:{default:F}}function D(F,A,S){var O=(0,I.default)(F,S),d=(0,T.default)(A,O,!0),m=new Date(O.getTime()-d),C=new Date(0);return C.setFullYear(m.getUTCFullYear(),m.getUTCMonth(),m.getUTCDate()),C.setHours(m.getUTCHours(),m.getUTCMinutes(),m.getUTCSeconds(),m.getUTCMilliseconds()),C}L.exports=M.default},8516:(L,M,w)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0}),M.default=S;var T=A(w(6420)),I=A(w(1476)),H=A(w(7048)),D=A(w(2734)),F=A(w(5721));function A(O){return O&&O.__esModule?O:{default:O}}function S(O,d,m){if(typeof O=="string"&&!O.match(H.default)){var C=(0,T.default)(m);return C.timeZone=d,(0,I.default)(O,C)}var b=(0,I.default)(O,m),P=(0,F.default)(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds(),b.getMilliseconds()).getTime(),u=(0,D.default)(d,new Date(P));return new Date(P+u)}L.exports=M.default}},Sr={};function _e(L){var M=Sr[L];if(M!==void 0)return M.exports;var w=Sr[L]={exports:{}};return Ra[L](w,w.exports,_e),w.exports}_e.n=L=>{var M=L&&L.__esModule?()=>L.default:()=>L;return _e.d(M,{a:M}),M},_e.d=(L,M)=>{for(var w in M)_e.o(M,w)&&!_e.o(L,w)&&Object.defineProperty(L,w,{enumerable:!0,get:M[w]})},_e.o=(L,M)=>Object.prototype.hasOwnProperty.call(L,M),_e.r=L=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(L,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(L,"__esModule",{value:!0})};var Pn={};(()=>{"use strict";_e.r(Pn),_e.d(Pn,{ChartBootstrap:()=>Zt,createChart:()=>Ba});function L(n){return typeof n=="function"}function M(n){return L(n==null?void 0:n.lift)}function w(n){return function(e){if(M(e))return e.lift(function(t){try{return n(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}var T=function(n,e){return T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},T(n,e)};function I(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");T(n,e);function t(){this.constructor=n}n.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var H=function(){return H=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},H.apply(this,arguments)};function D(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(t[r[s]]=n[r[s]]);return t}function F(n,e,t,r){var s=arguments.length,i=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(n,e,t,r);else for(var o=n.length-1;o>=0;o--)(a=n[o])&&(i=(s<3?a(i):s>3?a(e,t,i):a(e,t))||i);return s>3&&i&&Object.defineProperty(e,t,i),i}function A(n,e){return function(t,r){e(t,r,n)}}function S(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)}function O(n,e,t,r){function s(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function o(h){try{c(r.next(h))}catch(v){a(v)}}function l(h){try{c(r.throw(h))}catch(v){a(v)}}function c(h){h.done?i(h.value):s(h.value).then(o,l)}c((r=r.apply(n,e||[])).next())})}function d(n,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,s,i,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(c){return function(h){return l([c,h])}}function l(c){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(t=0)),t;)try{if(r=1,s&&(i=c[0]&2?s.return:c[0]?s.throw||((i=s.return)&&i.call(s),0):s.next)&&!(i=i.call(s,c[1])).done)return i;switch(s=0,i&&(c=[c[0]&2,i.value]),c[0]){case 0:case 1:i=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,s=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]<i[3])){t.label=c[1];break}if(c[0]===6&&t.label<i[1]){t.label=i[1],i=c;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(c);break}i[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(n,t)}catch(h){c=[6,h],s=0}finally{r=i=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}var m=Object.create?function(n,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,s)}:function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]};function C(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&m(e,n,t)}function b(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],r=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function P(n,e){var t=typeof Symbol=="function"&&n[Symbol.iterator];if(!t)return n;var r=t.call(n),s,i=[],a;try{for(;(e===void 0||e-- >0)&&!(s=r.next()).done;)i.push(s.value)}catch(o){a={error:o}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(a)throw a.error}}return i}function u(){for(var n=[],e=0;e<arguments.length;e++)n=n.concat(P(arguments[e]));return n}function f(){for(var n=0,e=0,t=arguments.length;e<t;e++)n+=arguments[e].length;for(var r=Array(n),s=0,e=0;e<t;e++)for(var i=arguments[e],a=0,o=i.length;a<o;a++,s++)r[s]=i[a];return r}function g(n,e,t){if(t||arguments.length===2)for(var r=0,s=e.length,i;r<s;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return n.concat(i||Array.prototype.slice.call(e))}function x(n){return this instanceof x?(this.v=n,this):new x(n)}function _(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=t.apply(n,e||[]),s,i=[];return s={},a("next"),a("throw"),a("return"),s[Symbol.asyncIterator]=function(){return this},s;function a(p){r[p]&&(s[p]=function(y){return new Promise(function(E,R){i.push([p,y,E,R])>1||o(p,y)})})}function o(p,y){try{l(r[p](y))}catch(E){v(i[0][3],E)}}function l(p){p.value instanceof x?Promise.resolve(p.value.v).then(c,h):v(i[0][2],p)}function c(p){o("next",p)}function h(p){o("throw",p)}function v(p,y){p(y),i.shift(),i.length&&o(i[0][0],i[0][1])}}function B(n){var e,t;return e={},r("next"),r("throw",function(s){throw s}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(s,i){e[s]=n[s]?function(a){return(t=!t)?{value:x(n[s](a)),done:s==="return"}:i?i(a):a}:i}}function W(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof b=="function"?b(n):n[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=n[i]&&function(a){return new Promise(function(o,l){a=n[i](a),s(o,l,a.done,a.value)})}}function s(i,a,o,l){Promise.resolve(l).then(function(c){i({value:c,done:o})},a)}}function j(n,e){return Object.defineProperty?Object.defineProperty(n,"raw",{value:e}):n.raw=e,n}var ee=Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e};function V(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t in n)t!=="default"&&Object.prototype.hasOwnProperty.call(n,t)&&m(e,n,t);return ee(e,n),e}function z(n){return n&&n.__esModule?n:{default:n}}function X(n,e,t,r){if(t==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?n!==e||!r:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?r:t==="a"?r.call(n):r?r.value:e.get(n)}function Q(n,e,t,r,s){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?n!==e||!s:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?s.call(n,t):s?s.value=t:e.set(n,t),t}function ie(n,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?e===n:n.has(e)}function ge(n){var e=function(r){Error.call(r),r.stack=new Error().stack},t=n(e);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Se=ge(function(n){return function(t){n(this),this.message=t?t.length+` errors occurred during unsubscription:
7
- `+t.map(function(r,s){return s+1+") "+r.toString()}).join(`
8
- `):"",this.name="UnsubscriptionError",this.errors=t}});function Ae(n,e){if(n){var t=n.indexOf(e);0<=t&&n.splice(t,1)}}var Ce=function(){function n(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return n.prototype.unsubscribe=function(){var e,t,r,s,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var o=b(a),l=o.next();!l.done;l=o.next()){var c=l.value;c.remove(this)}}catch(R){e={error:R}}finally{try{l&&!l.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}else a.remove(this);var h=this.initialTeardown;if(L(h))try{h()}catch(R){i=R instanceof Se?R.errors:[R]}var v=this._finalizers;if(v){this._finalizers=null;try{for(var p=b(v),y=p.next();!y.done;y=p.next()){var E=y.value;try{Ee(E)}catch(R){i=i!=null?i:[],R instanceof Se?i=g(g([],P(i)),P(R.errors)):i.push(R)}}}catch(R){r={error:R}}finally{try{y&&!y.done&&(s=p.return)&&s.call(p)}finally{if(r)throw r.error}}}if(i)throw new Se(i)}},n.prototype.add=function(e){var t;if(e&&e!==this)if(this.closed)Ee(e);else{if(e instanceof n){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(e)}},n.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},n.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},n.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&Ae(t,e)},n.prototype.remove=function(e){var t=this._finalizers;t&&Ae(t,e),e instanceof n&&e._removeParent(this)},n.EMPTY=function(){var e=new n;return e.closed=!0,e}(),n}(),Ne=Ce.EMPTY;function De(n){return n instanceof Ce||n&&"closed"in n&&L(n.remove)&&L(n.add)&&L(n.unsubscribe)}function Ee(n){L(n)?n():n.unsubscribe()}var ke={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},st={setTimeout:function(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];var s=st.delegate;return s!=null&&s.setTimeout?s.setTimeout.apply(s,g([n,e],P(t))):setTimeout.apply(void 0,g([n,e],P(t)))},clearTimeout:function(n){var e=st.delegate;return((e==null?void 0:e.clearTimeout)||clearTimeout)(n)},delegate:void 0};function xt(n){st.setTimeout(function(){var e=ke.onUnhandledError;if(e)e(n);else throw n})}function Mt(){}var It=function(){return Ze("C",void 0,void 0)}();function Ot(n){return Ze("E",void 0,n)}function Tn(n){return Ze("N",n,void 0)}function Ze(n,e,t){return{kind:n,value:e,error:t}}var Le=null;function it(n){if(ke.useDeprecatedSynchronousErrorHandling){var e=!Le;if(e&&(Le={errorThrown:!1,error:null}),n(),e){var t=Le,r=t.errorThrown,s=t.error;if(Le=null,r)throw s}}else n()}function Bt(n){ke.useDeprecatedSynchronousErrorHandling&&Le&&(Le.errorThrown=!0,Le.error=n)}var at=function(n){I(e,n);function e(t){var r=n.call(this)||this;return r.isStopped=!1,t?(r.destination=t,De(t)&&t.add(r)):r.destination=Fa,r}return e.create=function(t,r,s){return new vt(t,r,s)},e.prototype.next=function(t){this.isStopped?ot(Tn(t),this):this._next(t)},e.prototype.error=function(t){this.isStopped?ot(Ot(t),this):(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped?ot(It,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,n.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(Ce),_n=Function.prototype.bind;function Rt(n,e){return _n.call(n,e)}var An=function(){function n(e){this.partialObserver=e}return n.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(r){be(r)}},n.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(r){be(r)}else be(e)},n.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(t){be(t)}},n}(),vt=function(n){I(e,n);function e(t,r,s){var i=n.call(this)||this,a;if(L(t)||!t)a={next:t!=null?t:void 0,error:r!=null?r:void 0,complete:s!=null?s:void 0};else{var o;i&&ke.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=function(){return i.unsubscribe()},a={next:t.next&&Rt(t.next,o),error:t.error&&Rt(t.error,o),complete:t.complete&&Rt(t.complete,o)}):a=t}return i.destination=new An(a),i}return e}(at);function be(n){ke.useDeprecatedSynchronousErrorHandling?Bt(n):xt(n)}function je(n){throw n}function ot(n,e){var t=ke.onStoppedNotification;t&&st.setTimeout(function(){return t(n,e)})}var Fa={closed:!0,next:Mt,error:je,complete:Mt};function We(n,e,t,r,s){return new Ya(n,e,t,r,s)}var Ya=function(n){I(e,n);function e(t,r,s,i,a,o){var l=n.call(this,t)||this;return l.onFinalize=a,l.shouldUnsubscribe=o,l._next=r?function(c){try{r(c)}catch(h){t.error(h)}}:n.prototype._next,l._error=i?function(c){try{i(c)}catch(h){t.error(h)}finally{this.unsubscribe()}}:n.prototype._error,l._complete=s?function(){try{s()}catch(c){t.error(c)}finally{this.unsubscribe()}}:n.prototype._complete,l}return e.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;n.prototype.unsubscribe.call(this),!r&&((t=this.onFinalize)===null||t===void 0||t.call(this))}},e}(at);function ye(n,e){return w(function(t,r){var s=0;t.subscribe(We(r,function(i){r.next(n.call(e,i,s++))}))})}var xr=function(n){return n&&typeof n.length=="number"&&typeof n!="function"};function Mr(n){return L(n==null?void 0:n.then)}var Dn=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Pt(n){return n}function sv(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return Pr(n)}function Pr(n){return n.length===0?Pt:n.length===1?n[0]:function(t){return n.reduce(function(r,s){return s(r)},t)}}var xe=function(){function n(e){e&&(this._subscribe=e)}return n.prototype.lift=function(e){var t=new n;return t.source=this,t.operator=e,t},n.prototype.subscribe=function(e,t,r){var s=this,i=Na(e)?e:new vt(e,t,r);return it(function(){var a=s,o=a.operator,l=a.source;i.add(o?o.call(i,l):l?s._subscribe(i):s._trySubscribe(i))}),i},n.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},n.prototype.forEach=function(e,t){var r=this;return t=Tr(t),new t(function(s,i){var a=new vt({next:function(o){try{e(o)}catch(l){i(l),a.unsubscribe()}},error:i,complete:s});r.subscribe(a)})},n.prototype._subscribe=function(e){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(e)},n.prototype[Dn]=function(){return this},n.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pr(e)(this)},n.prototype.toPromise=function(e){var t=this;return e=Tr(e),new e(function(r,s){var i;t.subscribe(function(a){return i=a},function(a){return s(a)},function(){return r(i)})})},n.create=function(e){return new n(e)},n}();function Tr(n){var e;return(e=n!=null?n:ke.Promise)!==null&&e!==void 0?e:Promise}function Ha(n){return n&&L(n.next)&&L(n.error)&&L(n.complete)}function Na(n){return n&&n instanceof at||Ha(n)&&De(n)}function _r(n){return L(n[Dn])}function Ar(n){return Symbol.asyncIterator&&L(n==null?void 0:n[Symbol.asyncIterator])}function Dr(n){return new TypeError("You provided "+(n!==null&&typeof n=="object"?"an invalid object":"'"+n+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function ka(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Er=ka();function Lr(n){return L(n==null?void 0:n[Er])}function Ir(n){return _(this,arguments,function(){var t,r,s,i;return d(this,function(a){switch(a.label){case 0:t=n.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,x(t.read())];case 3:return r=a.sent(),s=r.value,i=r.done,i?[4,x(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,x(s)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function Or(n){return L(n==null?void 0:n.getReader)}function Ke(n){if(n instanceof xe)return n;if(n!=null){if(_r(n))return Wa(n);if(xr(n))return Ua(n);if(Mr(n))return za(n);if(Ar(n))return Br(n);if(Lr(n))return Xa(n);if(Or(n))return ja(n)}throw Dr(n)}function Wa(n){return new xe(function(e){var t=n[Dn]();if(L(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Ua(n){return new xe(function(e){for(var t=0;t<n.length&&!e.closed;t++)e.next(n[t]);e.complete()})}function za(n){return new xe(function(e){n.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,xt)})}function Xa(n){return new xe(function(e){var t,r;try{for(var s=b(n),i=s.next();!i.done;i=s.next()){var a=i.value;if(e.next(a),e.closed)return}}catch(o){t={error:o}}finally{try{i&&!i.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}e.complete()})}function Br(n){return new xe(function(e){Va(n,e).catch(function(t){return e.error(t)})})}function ja(n){return Br(Ir(n))}function Va(n,e){var t,r,s,i;return O(this,void 0,void 0,function(){var a,o;return d(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),t=W(n),l.label=1;case 1:return[4,t.next()];case 2:if(r=l.sent(),!!r.done)return[3,4];if(a=r.value,e.next(a),e.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return o=l.sent(),s={error:o},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(i=t.return)?[4,i.call(t)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(s)throw s.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}})})}function qe(n,e,t,r,s){r===void 0&&(r=0),s===void 0&&(s=!1);var i=e.schedule(function(){t(),s?n.add(this.schedule(null,r)):this.unsubscribe()},r);if(n.add(i),!s)return i}function Ga(n,e,t,r,s,i,a,o){var l=[],c=0,h=0,v=!1,p=function(){v&&!l.length&&!c&&e.complete()},y=function(R){return c<r?E(R):l.push(R)},E=function(R){i&&e.next(R),c++;var N=!1;Ke(t(R,h++)).subscribe(We(e,function(k){s==null||s(k),i?y(k):e.next(k)},function(){N=!0},void 0,function(){if(N)try{c--;for(var k=function(){var U=l.shift();a?qe(e,a,function(){return E(U)}):E(U)};l.length&&c<r;)k();p()}catch(U){e.error(U)}}))};return n.subscribe(We(e,y,function(){v=!0,p()})),function(){o==null||o()}}function Rr(n,e,t){return t===void 0&&(t=1/0),L(e)?Rr(function(r,s){return ye(function(i,a){return e(r,i,s,a)})(Ke(n(r,s)))},t):(typeof e=="number"&&(t=e),w(function(r,s){return Ga(r,s,n,t)}))}function Fr(n){return n===void 0&&(n=1/0),Rr(Pt,n)}var Yr=new xe(function(n){return n.complete()});function iv(n){return n?$a(n):Yr}function $a(n){return new Observable(function(e){return n.schedule(function(){return e.complete()})})}function Hr(n){return n&&L(n.schedule)}function En(n){return n[n.length-1]}function Za(n){return L(En(n))?n.pop():void 0}function Kt(n){return Hr(En(n))?n.pop():void 0}function Ka(n,e){return typeof En(n)=="number"?n.pop():e}function Nr(n,e){return e===void 0&&(e=0),w(function(t,r){t.subscribe(We(r,function(s){return qe(r,n,function(){return r.next(s)},e)},function(){return qe(r,n,function(){return r.complete()},e)},function(s){return qe(r,n,function(){return r.error(s)},e)}))})}function kr(n,e){return e===void 0&&(e=0),w(function(t,r){r.add(n.schedule(function(){return t.subscribe(r)},e))})}function qa(n,e){return Ke(n).pipe(kr(e),Nr(e))}function Ja(n,e){return Ke(n).pipe(kr(e),Nr(e))}function Qa(n,e){return new xe(function(t){var r=0;return e.schedule(function(){r===n.length?t.complete():(t.next(n[r++]),t.closed||this.schedule())})})}function eo(n,e){return new xe(function(t){var r;return qe(t,e,function(){r=n[Er](),qe(t,e,function(){var s,i,a;try{s=r.next(),i=s.value,a=s.done}catch(o){t.error(o);return}a?t.complete():t.next(i)},0,!0)}),function(){return L(r==null?void 0:r.return)&&r.return()}})}function Wr(n,e){if(!n)throw new Error("Iterable cannot be null");return new xe(function(t){qe(t,e,function(){var r=n[Symbol.asyncIterator]();qe(t,e,function(){r.next().then(function(s){s.done?t.complete():t.next(s.value)})},0,!0)})})}function to(n,e){return Wr(Ir(n),e)}function no(n,e){if(n!=null){if(_r(n))return qa(n,e);if(xr(n))return Qa(n,e);if(Mr(n))return Ja(n,e);if(Ar(n))return Wr(n,e);if(Lr(n))return eo(n,e);if(Or(n))return to(n,e)}throw Dr(n)}function qt(n,e){return e?no(n,e):Ke(n)}function Me(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var t=Kt(n),r=Ka(n,1/0),s=n;return s.length?s.length===1?Ke(s[0]):Fr(r)(qt(s,t)):Yr}class Ln{constructor(e,t){this.onTickFunction=t,this.animationTimeLeft=0,this.animationInProgress=!1,this.animationTime=e.duration,this.animationTimeLeft=e.timeLeft===void 0?e.duration:e.timeLeft,this.animationInProgress=!0}tick(){this.animationTimeLeft<=0?this.animationInProgress=!1:this.animationTimeLeft--,this.onTickFunction&&this.onTickFunction()}getProgress(){return 1-this.animationTimeLeft/this.animationTime}finishAnimation(){this.animationInProgress=!1,this.animationTimeLeft=0}}var gt=_e(6767),Jt=_e.n(gt);class ro extends Ln{constructor(e,t,r=()=>{}){super(e,r),this.colorConfigs=t,t.forEach(s=>{s.rgbColor=gt.rgb(s.color),s.initialAlpha=s.rgbColor.valpha,s.currentAnimationColor=s.rgbColor})}tick(){super.tick(),this.animationInProgress&&this.colorConfigs.forEach(e=>{e.initialAlpha===void 0||e.rgbColor===void 0||(e.type==="fading"?e.currentAnimationColor=e.rgbColor.alpha(e.initialAlpha*this.animationTimeLeft/this.animationTime):e.type==="appearing"&&(e.currentAnimationColor=e.rgbColor.alpha(e.initialAlpha*(1-this.animationTimeLeft/this.animationTime))))})}getColor(e){var t,r;return(r=(t=this.colorConfigs[e].currentAnimationColor)==null?void 0:t.toString())!=null?r:"#FFFFFF"}revert(){this.animationTimeLeft=Math.max(this.animationTime-this.animationTimeLeft,1),this.colorConfigs.forEach(e=>{e.type==="fading"?e.type="appearing":e.type="fading"})}}class so extends Ln{constructor(e,t,r=()=>{}){super(e,r),this.colorConfigs=t,t.forEach(s=>{s.rgbStartColor=gt.rgb(s.startColor),s.rgbEndColor=gt.rgb(s.endColor),s.currentAnimationColor=s.type==="appearing"?s.rgbStartColor:s.rgbEndColor})}tick(){super.tick(),this.animationInProgress&&this.colorConfigs.forEach(e=>{const t=1-this.animationTimeLeft/this.animationTime;!e.rgbStartColor||!e.rgbEndColor||(e.type==="fading"?e.currentAnimationColor=this.calculateTransitionColor(e.rgbEndColor,e.rgbStartColor,t):e.type==="appearing"&&(e.currentAnimationColor=this.calculateTransitionColor(e.rgbStartColor,e.rgbEndColor,t)))})}getColor(e){var t,r;return(r=(t=this.colorConfigs[e].currentAnimationColor)==null?void 0:t.toString())!=null?r:"#FFFFFF"}revert(){this.animationTimeLeft=Math.max(this.animationTime-this.animationTimeLeft,1),this.colorConfigs.forEach(e=>{e.type==="fading"?e.type="appearing":e.type="fading"})}moveToLastTick(){this.animationTimeLeft=1}calculateTransitionColor(e,t,r){const s=e.red()-(e.red()-t.red())*r,i=e.green()-(e.green()-t.green())*r,a=e.blue()-(e.blue()-t.blue())*r;return gt.rgb(s,i,a)}}var io=Math.pow;const Qt=14,en=[];for(let n=0;n<Qt+1;n++)en.push(io(10,n));const In=5e-13;class we{static roundToNearest(e,t){return isFinite(e)?we.isZero(e)?0:(e>0?e+=In:e<0&&(e-=In),we.roundDecimal(Math.round(we.roundDecimal(e/t))*t)):e}static roundUpToNearest(e,t){return we.roundDecimal(Math.ceil(e/t))*t}static roundDecimal(e){if(isNaN(e)||e===Math.floor(e))return e;const t=Math.sign(e),r=Math.abs(e),s=Math.min(Qt,Qt-1-Math.floor(Math.log10(r)));for(let i=s;i>=0;i--){const a=Math.floor(en[i]*r+.5);if(a<en[Qt])return t*a/en[i]}return Math.round(e)}static makeDecimal(e,t,r){if(isFinite(e)){const s=e.toFixed(t);return r?s.replace(".",r):s}else return""}static compare(e,t,r){return e>t+r?1:e<t-r?-1:(isNaN(e)?1:0)-(isNaN(t)?1:0)}static isZero(e){return we.compare(e,0,In)===0}static cutNumber(e,t,r=0){return{K:i=>i/1e3,M:i=>i/1e6}[t](e).toFixed(r)+t}}function ao(n,e,t){const r=n/e;return r>=t||r<=1/t}function Ur(n,e,t){return Math.max(e,Math.min(n,t))}function oo(n){return 1-(Math.pow(2,-10*n)-.0009765625)*1.0009775171065494}function Ft(...n){for(const e of n)if(e!==void 0&&isFinite(e))return e;return NaN}const ve=n=>~~n,lo=n=>~~(n+1),pt=n=>~~(n+.5),co=(n,e)=>n>>e;function Je(){const n=()=>Math.random().toString(16).slice(-4);return`${n()+n()}-${n()}-${n()}-${n()}-${n()+n()+n()}`}class ho extends Ln{constructor(e,t,r){var s;super(t,r),this.viewportModel=e,this.animationConfig=t,this.id=Je(),this.xStart=e.xStart,this.xEnd=e.xEnd,this.yStart=e.yStart,this.yEnd=e.yEnd,this.zoomX=e.zoomX,this.zoomY=e.zoomY,this.easingFn=(s=t.easingFn)!=null?s:oo}tick(){if(super.tick(),this.animationInProgress){const e=this.easingFn(this.getProgress()),t=this.xStart+(this.animationConfig.targetXStart-this.xStart)*e,r=this.xEnd+(this.animationConfig.targetXEnd-this.xEnd)*e,s=this.yStart+(this.animationConfig.targetYStart-this.yStart)*e,i=this.yEnd+(this.animationConfig.targetYEnd-this.yEnd)*e,a=this.zoomX+(this.animationConfig.targetZoomX-this.zoomX)*e,o=this.zoomY+(this.animationConfig.targetZoomY-this.zoomY)*e;this.viewportModel.apply({xStart:t,xEnd:r,yStart:s,yEnd:i,zoomX:a,zoomY:o,inverseY:this.viewportModel.inverseY})}}finishAnimation(){super.finishAnimation(),this.viewportModel.apply({xStart:this.animationConfig.targetXStart,xEnd:this.animationConfig.targetXEnd,yStart:this.animationConfig.targetYStart,yEnd:this.animationConfig.targetYEnd,zoomX:this.animationConfig.targetZoomX,zoomY:this.animationConfig.targetZoomY,inverseY:this.viewportModel.inverseY})}}var uo=Object.defineProperty,fo=Object.defineProperties,vo=Object.getOwnPropertyDescriptors,zr=Object.getOwnPropertySymbols,go=Object.prototype.hasOwnProperty,po=Object.prototype.propertyIsEnumerable,Xr=(n,e,t)=>e in n?uo(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,mo=(n,e)=>{for(var t in e||(e={}))go.call(e,t)&&Xr(n,t,e[t]);if(zr)for(var t of zr(e))po.call(e,t)&&Xr(n,t,e[t]);return n},bo=(n,e)=>fo(n,vo(e));const jr=10,On="VIEWPORT_ANIMATION";class Co{constructor(e){this.eventBus=e,this.animations={}}startViewportMovementAnimation(e,t,r=On,s){const i=new ho(e,t,s);return this.animations[r]=i,this.ensureIntervalStarted(),i}startColorAlphaAnimation(e,t,r,s){const i=new ro(bo(mo({},s),{duration:s&&s.duration||jr}),t,r);return this.animations[e]=i,this.ensureIntervalStarted(),i}startColorTransitionAnimation(e,t,r=jr,s){const i=new so({duration:r},t,s);return this.animations[e]=i,this.ensureIntervalStarted(),i}getAnimation(e){return this.animations[e]}getColorAlphaAnimation(e){return this.getAnimation(e)}getColorTransitionAnimation(e){return this.getAnimation(e)}forceStopAnimation(e){const t=this.animations[e];t&&(t.animationTimeLeft=-1,t.animationInProgress=!1)}ensureIntervalStarted(){this.animationIntervalId||(this.animationIntervalId=window.setInterval(()=>this.tick(),20))}tick(){let e=!0;for(const t of Object.keys(this.animations)){const r=this.animations[t];r.tick(),r.animationInProgress&&(e=!1)}e?this.stopInterval():this.eventBus.fireDraw()}stopInterval(){clearInterval(this.animationIntervalId),this.animationIntervalId=void 0}}var yo=ge(function(n){return function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),G=function(n){I(e,n);function e(){var t=n.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return e.prototype.lift=function(t){var r=new Vr(this,this);return r.operator=t,r},e.prototype._throwIfClosed=function(){if(this.closed)throw new yo},e.prototype.next=function(t){var r=this;it(function(){var s,i;if(r._throwIfClosed(),!r.isStopped){r.currentObservers||(r.currentObservers=Array.from(r.observers));try{for(var a=b(r.currentObservers),o=a.next();!o.done;o=a.next()){var l=o.value;l.next(t)}}catch(c){s={error:c}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(s)throw s.error}}}})},e.prototype.error=function(t){var r=this;it(function(){if(r._throwIfClosed(),!r.isStopped){r.hasError=r.isStopped=!0,r.thrownError=t;for(var s=r.observers;s.length;)s.shift().error(t)}})},e.prototype.complete=function(){var t=this;it(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var r=t.observers;r.length;)r.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(t){return this._throwIfClosed(),n.prototype._trySubscribe.call(this,t)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var r=this,s=this,i=s.hasError,a=s.isStopped,o=s.observers;return i||a?Ne:(this.currentObservers=null,o.push(t),new Ce(function(){r.currentObservers=null,Ae(o,t)}))},e.prototype._checkFinalizedStatuses=function(t){var r=this,s=r.hasError,i=r.thrownError,a=r.isStopped;s?t.error(i):a&&t.complete()},e.prototype.asObservable=function(){var t=new xe;return t.source=this,t},e.create=function(t,r){return new Vr(t,r)},e}(xe),Vr=function(n){I(e,n);function e(t,r){var s=n.call(this)||this;return s.destination=t,s.source=r,s}return e.prototype.next=function(t){var r,s;(s=(r=this.destination)===null||r===void 0?void 0:r.next)===null||s===void 0||s.call(r,t)},e.prototype.error=function(t){var r,s;(s=(r=this.destination)===null||r===void 0?void 0:r.error)===null||s===void 0||s.call(r,t)},e.prototype.complete=function(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)},e.prototype._subscribe=function(t){var r,s;return(s=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&s!==void 0?s:Ne},e}(G),lt=function(n){I(e,n);function e(t){var r=n.call(this)||this;return r._value=t,r}return Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(t){var r=n.prototype._subscribe.call(this,t);return!r.closed&&t.next(this._value),r},e.prototype.getValue=function(){var t=this,r=t.hasError,s=t.thrownError,i=t._value;if(r)throw s;return this._throwIfClosed(),i},e.prototype.next=function(t){n.prototype.next.call(this,this._value=t)},e}(G);function Ve(n,e){return e===void 0&&(e=Pt),n=n!=null?n:wo,w(function(t,r){var s,i=!0;t.subscribe(We(r,function(a){var o=e(a);(i||!n(s,o))&&(i=!1,s=o,r.next(a))}))})}function wo(n,e){return n===e}function So(n){return function(){n.forEach(t=>typeof t=="function"&&t()),n.length=0}}function Bn(n){return n}function Gr(n){return n!=null}const av=()=>{};function ov(n){return n!=null}function xo(n,e,t=Mo,r=!0){const s=n.filter(i=>e.some(a=>t(i,a)));return r?s.filter((i,a,o)=>o.indexOf(i)===a):s}const $r=(n,e)=>{const t=e.slice().filter(r=>n.find(s=>s===r));return n.map(r=>{var s;return e.indexOf(r)>=0&&(s=t.shift())!=null?s:r})},Mo=(n,e)=>n===e,lv=(n,e,t)=>n.filter(r=>e.filter(s=>t(r,s)).length===0),Po=(n,e)=>n===e,Zr=(n,e,t=Po)=>n.length===e.length&&n.every((r,s)=>t(r,e[s]));function cv(n,e,t){const r=n.slice(),s=r[e];return r.splice(e,1),r.splice(t,0,s),r}function Rn(n,e,t){const r=n.length,s=Ur(e,0,r-1),i=Ur(t,0,r-1),a=n[s];return n.splice(s,1),n.splice(i,0,a),n}function hv(n,e,t){const r=n.slice(),s=r.findIndex(e);return s!==-1&&(r.splice(s,1),r.splice(s,0,t)),r}const dv=n=>{const e={};return n.filter(t=>e[t]?!1:e[t]=!0)},uv=(n,e)=>n.reduce((t,r)=>((t[r[e]]=t[r[e]]||[]).push(r),t),{}),fv=(n,e)=>[].concat(...n.map(t=>[t,e])).slice(0,-1),vv=n=>Array.isArray(n[0]),Kr=n=>Array.isArray(n[0])?n:[n],To=(n,e,t)=>{const r=[];let s=0;for(const i of n){const a=Math.max(e-s,0),o=Math.max(t-s,-1),l=i.slice(a,o+1);l.length>0&&r.push(l),s+=i.length}return r},_o=(n,e)=>n>=0?e[n]:e[e.length+n],Ie=n=>Array.prototype.flat?n.flat():Tt(n,Bn),Tt=(n,e)=>{if(Array.prototype.flatMap)return n.flatMap(e);const t=[];for(let r=0;r<n.length;r++){const s=n[r];t.push(...e(s,r,n))}return t};function ct(n,e,t){const r=t!=null?t:Bn;return!n.length||e!==e?{index:-1,exact:!0}:Fn(n,e,0,n.length,r)}function Fn(n,e,t,r,s){const i=co(t+r,1),a=s(n[i]);return e===a?{index:i,exact:!0}:t===i?{index:t,exact:!1}:e<a?Fn(n,e,t,i,s):Fn(n,e,i,r,s)}function Ue(n){if(n&&n.length)return n[n.length-1]}function Ao(n){const e=this.indexOf(n);return e!==-1&&this.splice(e,1),this}function Do(n,e){if(!n)return;const t=n.indexOf(e);t!==-1&&n.splice(t,1)}function Yt(n){if(n)return n[0]}function Eo(n){function e(t,r){const s=n(r);return s==null||!isFinite(s)?t:[Math.max(t[0],s),Math.min(t[1],s)]}return function(t){const r=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY];return t?t.reduce(e,r):r}}function Lo(n,e,t,r=()=>0){const s=(a,o)=>{let l=0,c=a.length-1;for(;c>=l;){const h=Math.ceil((l+c)/2);r(a[h])<=o?l=h+1:c=h-1}return c},i=(a,o)=>{let l=0,c=a.length-1;for(;c>=l;){const h=Math.ceil((l+c)/2);r(a[h])>=o?c=h-1:l=h+1}return l};return n.slice(i(n,e),s(n,t)+1)}let Yn;const Hn=()=>(Yn||(Yn=!!navigator.userAgent.match(/Android|iPhone|Opera Mini/)||!1),Yn);function qr(n,e){let t="";e.textStyle&&(e.textStyle.italic&&(t+="italic "),e.textStyle.bold&&(t+="bold ")),n.font=t+(e.textSize||12)+" "+(e.textFontFamily||"monospace"),n.fillStyle=e.textFill||"#FFFFFF",e.rtl?n.textAlign="right":n.textAlign="start"}function Nn(n){const e=n.font.match(/(\d+.)?\d+(px|pt)/gi);let t="10px";return e&&e.length&&(e[0].includes("pt")?t=+e[0].slice(0,e[0].indexOf("pt"))*96/72+"px":t=e[0]),parseInt(t,10)*1.33}function Jr(n,e,t){n.save(),qr(n,t);const r=Math.ceil(Math.max.apply(Math,e.map(a=>n.measureText(a).width))),s=Nn(n),i=s*e.length;return n.restore(),[r,i,s]}function Qr(n){return(n||"").split(/\r\n|\r|\n/)}function Io(n,e,t,r,s){n.save();const[i,,a]=Jr(n,e,s);e.forEach((o,l)=>{var c,h,v;const p=n.measureText(o).width,y=Oo(t,i,p,(c=s.textAlign)!=null?c:"left");s.textStyle&&s.textStyle.underline&&Bo(n,o,y,r+a*l,(h=s.textFill)!=null?h:"",(v=s.textSize)!=null?v:""),n.fillText(o,y,r+a*l)}),n.restore()}function Oo(n,e,t,r){switch(r){case"left":return n;case"right":return n+e-t;default:return n}}function Bo(n,e,t,r,s,i){n.save();const a=n.measureText(e).width,o=t,l=t+a,c=r+2,h=c;let v=parseInt(i,10)/15;v<1&&(v=1),n.beginPath(),n.strokeStyle=s,n.lineWidth=v,n.moveTo(o,c),n.lineTo(l,h),n.stroke(),n.restore()}function gv(n){return`${n}px`}function Ht(n,e,t){const r=gt.rgb(n).array(),s=r[0],i=r[1],a=r[2];return(s*299+i*587+a*114)/1e3<128?e:t}function Ro(n,e,t,r){const s=r.components.navigationMap.timeLabels,i=s.padding,a=es(e,s.dateFormat,t),o=Qr(a),l={textFontFamily:s.fontFamily,textSize:`${s.fontSize}px`},[c,h]=Jr(n,o,l);return[c+i.x*2,h+i.y*2]}function es(n,e,t){return t(e)(n).split(" ").join(`
9
- `)}const ts={};function Qe(n,e){let t=ts[n];return t!==void 0||(e.save(),e.font=n,t=e.measureText("M").width,ts[n]=t,e.restore()),t}const ns=new Map;function Re(n,e,t){const r=t+n;let s=ns.get(r);return s||(e.save(),e.font=t,s=e.measureText(n).width,ns.set(r,s),e.restore()),s}function Ge(n,e,t=rs){function r(s,i){for(const a in i)a in s?typeof s[a]=="object"&&s[a]!==null&&!Array.isArray(s[a])?r(s[a],i[a]):t!=null&&t.overrideExisting&&(s[a]=i[a]):t!=null&&t.addIfMissing&&(s[a]=i[a]);return s}return r(n,e)}function pv(n,e,t,r=!1){!n||!e||e.length===0||e.forEach(s=>{const i=t(s),a=n.findIndex(o=>t(o)===i);a===-1?n.push(s):r?Ge(n[a],s,{overrideExisting:!0,addIfMissing:!0}):n.splice(a,1,s)})}const rs={overrideExisting:!1,addIfMissing:!0};var Fo=Object.defineProperty,ss=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Ho=Object.prototype.propertyIsEnumerable,is=(n,e,t)=>e in n?Fo(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,No=(n,e)=>{for(var t in e||(e={}))Yo.call(e,t)&&is(n,t,e[t]);if(ss)for(var t of ss(e))Ho.call(e,t)&&is(n,t,e[t]);return n};const as="Open Sans Semibold, sans-serif",ko=null,Wo=["candle","line","area","bar","scatterPlot","trend","hollow","histogram","baseline"],mv=n=>ko.find(e=>e===n)!==void 0,tn=()=>({devexpertsPromoLink:!0,useUTCTimeOverride:!1,shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rtl:!1,scale:{keepZoomXOnYAxisChange:!0,auto:!0,zoomToCursor:!1,lockPriceToBarRatio:!1,autoScaleOnCandles:!0,autoScaleDisableOnDrag:{enabled:!0,edgeAngle:Math.PI/15,yDiff:80},inverse:!1,zoomSensitivity:.25,defaultViewportItems:100},timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,components:{chart:{type:"candle",showCandlesBorder:!0,showActiveCandlesBorder:!0,showWicks:!0,candleLineWidth:1,lineWidth:1,areaLineWidth:1,barLineWidth:1,minWidth:.5,minCandles:10,candlePaddingPercent:.25,highlightActiveCandle:!0,cursor:"default",selectedWidth:3,minCandlesOffset:2,defaultZoomCandleWidth:7,zoomStep:0,histogram:{barCapSize:1}},yAxis:{type:"regular",visible:!0,labelHeight:23,zeroPercentLine:!0,customScale:!0,customScaleDblClick:!0,align:"right",fontSize:12,fontFamily:as,cursor:"ns-resize",resizeDisabledCursor:"default",labelBoxMargin:{top:4,bottom:4,end:8,start:10},typeConfig:{badge:{rounded:!0,paddings:{top:4,bottom:4,end:4,start:4}},plain:{},rectangle:{rounded:!1,paddings:{top:4,bottom:4,end:4,start:4}}},labels:{descriptions:!1,settings:{lastPrice:{mode:"label",type:"badge"},countdownToBarClose:{mode:"none",type:"rectangle"}}}},xAxis:{visible:!0,formatsForLabelsConfig:{lessThanSecond:"HH:mm:ss",second_1:"HH:mm:ss",minute_1:"HH:mm",minute_5:"HH:mm",minute_30:"HH:mm",hour_1:"HH:mm",day_1:"dd.MM",month_1:"MMM",year_1:"YYYY"},fontSize:12,fontFamily:as,cursor:"ew-resize",padding:{top:8,bottom:16},fontStyle:""},events:{visible:!1,eventsVisibility:{"conference-calls":!0,dividends:!0,splits:!0,earnings:!0},height:20,cursor:"default",xAxisLabelFormat:[{format:"d MMM"}],icons:{earnings:{normal:'<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.06066 6.5L6.5 1.06066L11.9393 6.5L6.5 11.9393L1.06066 6.5Z" stroke="#D92C40" stroke-width="1.5"/></svg>',hover:'<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.06066 6.5L6.5 1.06066L11.9393 6.5L6.5 11.9393L1.06066 6.5Z" fill="#D92C40" stroke="#D92C40" stroke-width="1.5"/></svg>'}}},offsets:{visible:!0,right:10,top:10,bottom:20,left:0},waterMark:{visible:!1,fontFamily:"Open Sans, sans-serif",firstRowFontSize:80,firstRowBottomPadding:10,secondRowFontSize:40,secondRowBottomPadding:25,thirdRowFontSize:40,thirdRowBottomPadding:15,position:"center",offsetX:20,offsetY:20,logoWidth:20,logoHeight:20},highLow:{visible:!1,font:"12px sans-serif"},highlights:{visible:!1,fontFamily:"Open Sans",fontSize:13,border:{width:1,dash:[8,4]}},crossTool:{type:"cross-and-labels",discrete:!1,magnetTarget:"none",lineDash:[4,6],xAxisLabelFormat:[{format:"dd.MM.YYYY",showWhen:{periodMoreThen:846e5}},{format:"dd.MM.YYYY HH:mm",showWhen:{periodLessThen:846e5,periodMoreThen:6e3}},{format:"dd.MM.YYYY HH:mm:ss",showWhen:{periodLessThen:6e3}}],xLabel:{padding:{top:4,bottom:4,right:8,left:8},margin:{top:4}},yLabel:{padding:{top:4,bottom:4,end:4,start:4},type:"badge"}},grid:{visible:!0,horizontal:!1,vertical:!0,width:1,dash:[0,0],color:"#FFFFFF"},volumes:{visible:!0,showSeparately:!1,valueLines:15,barCapSize:1,volumeBarSpace:0,volumeFillColor:"#FFFFFF"},navigationMap:{visible:!1,allCandlesHistory:!0,timeLabels:{visible:!1,dateFormat:"dd.MM.YYYY HH:mm",fontFamily:"Open Sans",fontSize:13,padding:{x:10,y:1}},minSliderWindowWidth:10,cursors:{chart:"default",buttonLeft:"pointer",buttonRight:"pointer",leftResizer:"ew-resize",rightResizer:"ew-resize",slider:"grab"},knots:{height:35,width:7,border:0,lineWidth:1}},baseline:{cursor:"ns-resize",dragZone:3,height:1},paneResizer:{cursor:"ns-resize",height:1,visible:!0,fixedMode:!1,dragZone:3}},colors:{candleTheme:{upColor:"rgba(77,153,83,1)",downColor:"rgba(217,44,64,1)",noneColor:"rgba(255,255,255,1)",upWickColor:"rgba(77,153,83,1)",downWickColor:"rgba(217,44,64,1)",noneWickColor:"rgba(255,255,255,1)",borderOpacity:1},barTheme:{upColor:"rgba(77,153,83,1)",downColor:"rgba(217,44,64,1)",noneColor:"rgba(255,255,255,1)"},lineTheme:{upColor:"rgba(77,153,83,1)",downColor:"rgba(217,44,64,1)",noneColor:"rgba(255,255,255,1)"},chartAreaTheme:{backgroundMode:"regular",backgroundColor:"rgba(20,20,19,1)",backgroundGradientTopColor:"red",backgroundGradientBottomColor:"blue",axisColor:"rgba(128,128,128,1)",gridColor:"rgba(37,37,36,1)"},scatterPlot:{mainColor:"rgba(255,255,255,1)"},areaTheme:{lineColor:"rgba(127,120,214,1)",startColor:"rgba(169,38,251,1)",stopColor:"rgba(169,38,251,0.8)"},baseLineTheme:{lowerSectionStrokeColor:"rgba(217,44,64,1)",upperSectionStrokeColor:"rgba(77,153,83,1)",lowerSectionFillColor:"rgba(217, 44, 64, 0.07)",upperSectionFillColor:"rgba(77, 153, 83, 0.07)",baselineColor:"rgba(55,55,54,1)"},histogram:{upCap:"rgba(77,153,83,1)",upBottom:"rgba(77,153,83,0.1)",upBright:"rgba(77,153,83,0.4)",downCap:"rgba(217,44,64,1)",downBottom:"rgba(217,44,64,0.1)",downBright:"rgba(217,44,64,0.4)",noneCap:"rgba(255,255,255,1)",noneBottom:"rgba(255,255,255,0.1)",noneBright:"rgba(255,255,255,0.4)"},crossTool:{lineColor:"rgba(107,96,86,1)",labelBoxColor:"rgba(107,96,86,1)",labelTextColor:"rgba(255,255,255,1)"},waterMarkTheme:{firstRowColor:"rgba(255,255,255,0.2)",secondRowColor:"rgba(255,255,255,0.2)",thirdRowColor:"rgba(255,255,255,0.2)"},highlights:{NO_TRADING:{border:"rgba(107,96,86,1)",background:"transparent",label:"transparent"},AFTER_MARKET:{border:"rgba(107,96,86,1)",background:"rgba(38, 251, 149, 0.05)",label:"transparent"},PRE_MARKET:{border:"rgba(107,96,86,1)",background:"rgba(255, 170, 0, 0.05)",label:"transparent"},REGULAR:{border:"rgba(107,96,86,1)",background:"transparent",label:"transparent"}},activeCandleTheme:{upColor:"rgba(98,201,93,1)",downColor:"rgba(255,47,47,1)",noneColor:"rgba(255,255,255,1)",upWickColor:"rgba(98,201,93,1)",downWickColor:"rgba(255,47,47,1)",noneWickColor:"rgba(255,255,255,1)",borderOpacity:.5},volume:{downBarColor:"rgba(99,30,37,1)",upBarColor:"rgba(42,72,44,1)",noneBarColor:"rgba(255,255,255,0.4)",upCapColor:"rgba(42,72,44,1)",downCapColor:"rgba(99,30,37,1)",noneCapColor:"rgba(255,255,255,0.4)"},highLowTheme:{highColor:"rgba(223,222,223,1)",lowColor:"rgba(223,222,223,1)"},instrumentInfo:{textColor:"#aeb1b3"},paneResizer:{lineColor:"rgba(55,55,54,1)",bgColor:"rgba(20,20,19,1)",bgHoverColor:"rgba(55,55,54,0.6)"},events:{earnings:{color:"rgba(217,44,64,1)"},dividends:{color:"rgba(169,38,251,1)"},splits:{color:"rgba(244,187,63,1)"},"conference-calls":{color:"rgba(48,194,97,1)"}},secondaryChartTheme:[{lineTheme:{upColor:"rgba(226,61,25,1)",downColor:"rgba(226,61,25,1)",noneColor:"rgba(226,61,25,1)"},areaTheme:{lineColor:"rgba(226,61,25,1)",startColor:"rgba(226,61,25,0.8)",stopColor:"rgba(226,61,25,0)"}},{lineTheme:{upColor:"rgba(250,191,64,1)",downColor:"rgba(250,191,64,1)",noneColor:"rgba(250,191,64,1)"},areaTheme:{lineColor:"rgba(250,191,64,1)",startColor:"rgba(250,191,64,0.8)",stopColor:"rgba(250,191,64,0)"}},{lineTheme:{upColor:"rgba(169,38,251,1)",downColor:"rgba(169,38,251,1)",noneColor:"rgba(169,38,251,1)"},areaTheme:{lineColor:"rgba(169,38,251,1)",startColor:"rgba(169,38,251,0.8)",stopColor:"rgba(169,38,251,0)"}},{lineTheme:{upColor:"rgba(77,211,240,1)",downColor:"rgba(77,211,240,1)",noneColor:"rgba(77,211,240,1)"},areaTheme:{lineColor:"rgba(77,211,240,1)",startColor:"rgba(77,211,240,0.8)",stopColor:"rgba(77,211,240,0)"}},{lineTheme:{upColor:"rgba(59,203,91,1)",downColor:"rgba(59,203,91,1)",noneColor:"rgba(59,203,91,1)"},areaTheme:{lineColor:"rgba(59,203,91,1)",startColor:"rgba(59,203,91,0.8)",stopColor:"rgba(59,203,91,0)"}}],yAxis:{backgroundColor:"transparent",backgroundHoverColor:"rgba(20,20,19,1)",labelBoxColor:"rgba(20,20,19,1)",labelTextColor:"rgba(128,128,128,1)",labelInvertedTextColor:"rgba(20,20,19,1)",rectLabelTextColor:"rgba(255,255,255,1)",rectLabelInvertedTextColor:"rgba(20,20,19,1)",zeroPercentLine:"rgba(55,55,54,1)"},labels:{lastPrice:{textNegative:"rgba(255,255,255,1)",textPositive:"rgba(255,255,255,1)",textSelected:"rgba(0,0,0,1)",boxNegative:"rgba(217,44,64,1)",boxPositive:"rgba(77,153,83,1)",boxSelected:"rgba(255,255,255,1)"},countdownToBarClose:{textNegative:"rgba(255,255,255,1)",textPositive:"rgba(255,255,255,1)",textSelected:"rgba(255,255,255,1)",boxNegative:"rgba(217,44,64,1)",boxPositive:"rgba(77,153,83,1)",boxSelected:"rgba(255,255,255,1)"},highLow:{high:{boxColor:"rgba(107,96,86,1)",textColor:"rgba(255,255,255,1)",descriptionText:"High"},low:{boxColor:"rgba(107,96,86,1)",textColor:"rgba(255,255,255,1)",descriptionText:"Low"}},bidAsk:{bid:{boxColor:"rgba(77,153,83,1)",textColor:"rgba(255,255,255,1)",descriptionText:"Bid"},ask:{boxColor:"rgba(217,44,64,1)",textColor:"rgba(255,255,255,1)",descriptionText:"Ask"}},prePostMarket:{post:{boxColor:"rgba(38,251,149,1)",textColor:"rgba(20,20,19,1)",descriptionText:"Post"},pre:{boxColor:"rgba(255,170,0,1)",textColor:"rgba(20,20,19,1)",descriptionText:"Pre"}},prevDayClose:{boxColor:"rgba(107,96,86,1)",textColor:"rgba(255,255,255,1)"}},xAxis:{backgroundColor:"transparent",labelTextColor:"rgba(128,128,128,1)"},navigationMap:{backgroundColor:"transparent",buttonColor:"rgba(255,255,255,0.1)",buttonArrowColor:"rgba(212,212,211,1)",knotColor:"rgba(255,255,255,0.1)",knotLineColor:"rgba(212,212,211,1)",sliderColor:"rgba(255,255,255,0.08)",knotBorderColor:"#0b0d1a",timeLabelsTextColor:"rgba(128,128,128,1)",mapColor:"rgba(255,255,255,0.1)",mapFillColor:"rgba(255,255,255,0.1)",mapGradientTopColor:"rgba(255,255,255,0.1)",mapGradientBottomColor:"rgba(255,255,255,0.1)"}},animation:{moveDuration:1e3,candleDuration:200,paneResizer:{bgMode:!0,enabled:!0,duration:40},yAxis:{background:{enabled:!1,duration:40}}},drawingOrder:["OVER_SERIES_CLEAR","MAIN_CLEAR","SERIES_CLEAR","GRID","X_AXIS","Y_AXIS","UNDERLAY_VOLUMES_AREA","VOLUMES","DATA_SERIES","DRAWINGS","WATERMARK","N_MAP_CHART","EVENTS"]});function Uo(n,e=tn()){return Ge(n,e,rs),n}function bv(n,e=tn()){const t=No({},n);return merge(t,e,DEFAULT_MERGE_OPTIONS),t}function Cv(n,e){Object.keys(n).forEach(t=>delete n[t]),Object.keys(e).forEach(t=>n[t]=e[t])}function os(n){return typeof n=="object"&&n!==null}function ls(n,e){return[...n].map(r=>kn(r,e))}const zo=n=>Array.isArray(n);function kn(n,e){if(!os(n))return n;if(zo(n))return ls(n,e);{const t=cs({},n,e);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}}function cs(n,e,t){if(!os(n))return t.overrideExisting?e:n;if(Array.isArray(n)&&Array.isArray(e)){const s=t.overrideExisting?e:n;return ls(s,t)}const r=Object.create(Object.getPrototypeOf(n));return Object.keys(n).forEach(s=>r[s]=kn(n[s],t)),Object.keys(e).forEach(s=>{s in n?r[s]=cs(n[s],e[s],t):t.addIfMissing&&(r[s]=kn(e[s],t))}),r}const mt=n=>`${n.fontSize}px ${n.fontFamily}`;class Xo{constructor(e,t){this.config=e,this.mainCanvasModel=t,this.extentsOrder=new Map,this.yAxisWidthContributors=[]}registerYAxisWidthContributor(e){this.yAxisWidthContributors.push(e)}removeYAxisWidthContributor(e){this.yAxisWidthContributors=this.yAxisWidthContributors.filter(t=>t!==e)}getTextWidth(e){const t=mt(this.config.components.yAxis);return Re(e,this.mainCanvasModel.ctx,t)}getYAxisWidths(){this.extentsOrder.clear();const e=[],t=[],r=this.config.components.yAxis.labelBoxMargin.start+this.config.components.yAxis.labelBoxMargin.end;return this.yAxisWidthContributors.forEach(s=>{var i,a,o;const l=this.getTextWidth(s.getLargestLabel())+r,c=s.getYAxisIndex(),h=s.getPaneUUID(),v=(i=this.extentsOrder.get(h))!=null?i:{left:[],right:[]};if(s.getYAxisAlign()==="left"){const p=v.left.length;e[p]=Math.max((a=e[p])!=null?a:0,l),v.left.push(c)}else{const p=v.right.length;t[p]=Math.max((o=t[p])!=null?o:0,l),v.right.push(c)}this.extentsOrder.set(h,v)}),{left:e,right:t}}}var jo=Object.defineProperty,Vo=Object.defineProperties,Go=Object.getOwnPropertyDescriptors,hs=Object.getOwnPropertySymbols,$o=Object.prototype.hasOwnProperty,Zo=Object.prototype.propertyIsEnumerable,ds=(n,e,t)=>e in n?jo(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,et=(n,e)=>{for(var t in e||(e={}))$o.call(e,t)&&ds(n,t,e[t]);if(hs)for(var t of hs(e))Zo.call(e,t)&&ds(n,t,e[t]);return n},us=(n,e)=>Vo(n,Go(e));const ae="CHART",Wn=class{};let Y=Wn;Y.CANVAS="CANVAS",Y.N_MAP="N_MAP",Y.X_AXIS="X_AXIS",Y.N_MAP_KNOT_L="N_MAP_KNOT_L",Y.N_MAP_KNOT_R="N_MAP_KNOT_R",Y.N_MAP_BTN_L="N_MAP_BTN_L",Y.N_MAP_BTN_R="N_MAP_BTN_R",Y.N_MAP_SLIDER_WINDOW="N_MAP_SLIDER_WINDOW",Y.N_MAP_CHART="N_MAP_CHART",Y.N_MAP_LABEL_R="N_MAP_LABEL_R",Y.N_MAP_LABEL_L="N_MAP_LABEL_L",Y.PANE_UUID=n=>"PANE_"+n,Y.PANE_UUID_Y_AXIS=(n,e=0)=>"PANE_"+n+"_Y_AXIS_"+e,Y.PANE_UUID_RESIZER=n=>"PANE_"+n+"_RESIZER",Y.ALL_PANES="ALL_PANES",Y.CHART_WITH_Y_AXIS="CHART_WITH_Y_AXIS",Y.EVENTS="EVENTS",Y.CHART=Wn.PANE_UUID(ae),Y.Y_AXIS=Wn.PANE_UUID_Y_AXIS(ae);const fs={x:0,y:0,pageX:0,pageY:0,width:0,height:0},Ko=20,vs=35,Un=15,gs=1.5,zn=Hn()?8*gs:8,qo=1e-6;class Xn{constructor(e,t,r,s,i){this.config=e,this.eventBus=t,this.canvasModel=r,this.formatterFactory=s,this.bounds={},this.canvasOnPageLocation={x:0,y:0,pageX:0,pageY:0,width:0,height:0},this.panesOrder=[],this.panesOrderChangedSubject=new G,this.xAxisHeight=void 0,this.yAxisWidths={right:[0],left:[0]},this.leftRatio=0,this.rightRatio=0,this.boundsChangedSubject=new G,this.barResizerChangedSubject=new G,this._graphsHeightRatio={chart:1},this.graphsHeightRatioChangedSubject=new G,this.boundsChangedSubscriptions={},i.canvasResized.subscribe(a=>{let o=a;o||(o=this.canvasModel.canvas.getBoundingClientRect()),this.updateCanvasOnPageLocation(o),this.recalculateBounds()}),this.yAxisBoundsContainer=new Xo(this.config,this.canvasModel)}get graphsHeightRatio(){return this._graphsHeightRatio}updateYAxisWidths(){const e=this.yAxisBoundsContainer.getYAxisWidths();this.setYAxisWidths(e)}addPaneBounds(e,t){if(this.panesOrder.indexOf(e)===-1){if(this.panesOrder.push(e),t!==void 0){const r=this.panesOrder.indexOf(e);Rn(this.panesOrder,r,t)}this.recalculatePanesHeightRatios(),this.panesOrderChangedSubject.next(this.panesOrder)}}overrideChartHeightRatios(e){const t=et(et({},this.graphsHeightRatio),e),r=Object.values(t).reduce((s,i)=>s+i,0);Math.abs(r-1)<qo?(this._graphsHeightRatio=t,this.recalculateBounds()):console.error(`Result ratio should be equal 1, but equal ${r}`)}movePaneUp(e){const t=this.panesOrder.indexOf(e);t!==-1&&(Rn(this.panesOrder,t,t-1),this.recalculateBounds(),this.eventBus.fireDraw(),this.panesOrderChangedSubject.next(this.panesOrder))}movePaneDown(e){const t=this.panesOrder.indexOf(e);t!==-1&&(Rn(this.panesOrder,t,t+1),this.recalculateBounds(),this.eventBus.fireDraw(),this.panesOrderChangedSubject.next(this.panesOrder))}reorderPanes(e){this.panesOrder=$r(this.panesOrder,e),this.recalculateBounds(),this.panesOrderChangedSubject.next(this.panesOrder)}removedPaneBounds(e){Do(this.panesOrder,e),delete this.graphsHeightRatio[e],delete this.bounds[Y.PANE_UUID(e)],this.yAxisWidths.left.concat(this.yAxisWidths.right).forEach((t,r)=>delete this.bounds[Y.PANE_UUID_Y_AXIS(e,r)]),delete this.bounds[Y.PANE_UUID_RESIZER(e)],this.recalculatePanesHeightRatios(),this.panesOrderChangedSubject.next(this.panesOrder)}recalculateBounds(){const e=this.canvasOnPageLocation.width,t=this.canvasOnPageLocation.height,r=this.config.components.paneResizer.height,s=this.getBounds(Y.CANVAS);s.x=0,s.y=0,s.width=e,s.height=t;const i=this.getYAxisWidth(),a=this.getNavMapBounds(s),o=this.getXAxisBounds(a,s),l=t-o.height-a.height,c=i.left.reduce((K,q)=>K+q,0),h=i.right.reduce((K,q)=>K+q,0),v=0,p=s.width-h,y=v+c,E=0,R=s.width-c-h;let N=E;this.panesOrder.forEach((K,q)=>{var $;const J=this.graphsHeightRatio[this.panesOrder[q]],ne=this.config.components.paneResizer.visible;ne&&(q!==0?_t(this.bounds,Y.PANE_UUID_RESIZER(K),0,N,s.width,r,this.canvasOnPageLocation):_t(this.bounds,Y.PANE_UUID_RESIZER(K),0,0,0,0,this.canvasOnPageLocation));const oe=_t(this.bounds,Y.PANE_UUID(K),y,ne?N+r:N,R,ne?l*J-this.config.components.paneResizer.height:l*J,this.canvasOnPageLocation);if(this.config.components.yAxis.visible){const le=this.yAxisBoundsContainer.extentsOrder.get(K);if(le===void 0)return;const re=ne?N+r:N,ce=ne?l*J-r:l*J;let fe=y-(($=i.left[0])!=null?$:0),de=p;le.left.forEach((ue,pe)=>{var me;_t(this.bounds,Y.PANE_UUID_Y_AXIS(K,ue),fe,re,i.left[pe],ce,this.canvasOnPageLocation),fe-=(me=i.left[pe+1])!=null?me:0}),le.right.forEach((ue,pe)=>{_t(this.bounds,Y.PANE_UUID_Y_AXIS(K,ue),de,re,i.right[pe],ce,this.canvasOnPageLocation),de+=i.right[pe]})}else _t(this.bounds,Y.PANE_UUID_Y_AXIS(K),0,0,0,0,this.canvasOnPageLocation);N=oe.y+oe.height});const k=this.getBounds(Y.ALL_PANES);k.x=y,k.y=E,k.width=R,k.height=N;const U=this.getBounds(Y.CHART_WITH_Y_AXIS),Z=this.getBounds(Y.PANE_UUID(ae));this.getEventsBounds(Z),this.copyBounds(Z,U),U.width=s.width,this.recalculateNavigationMapElementBounds(),this.updateAllBoundsPageCoordinates(),this.notifyBoundsSubscribers()}updateCanvasOnPageLocation(e){this.canvasOnPageLocation=us(et({},this.canvasOnPageLocation),{x:e.x,y:e.y,width:e.width,height:e.height})}updateAllBoundsPageCoordinates(){for(const e of Object.keys(this.bounds)){const t=this.bounds[e];t.pageX=t.x+this.canvasOnPageLocation.x,t.pageY=t.y+this.canvasOnPageLocation.y}}getEventsBounds(e){const t=this.getBounds(Y.EVENTS);return this.config.components.events.visible?(t.x=0,t.y=e.y+e.height-this.config.components.events.height,t.width=e.width,t.height=this.config.components.events.height):this.applyDefaultBounds(t),t}getNavMapBounds(e){const t=this.getBounds(Y.N_MAP);return this.config.components.navigationMap.visible?(t.x=0,t.y=e.height-vs,t.width=e.width,t.height=vs):this.applyDefaultBounds(t),t}getXAxisBounds(e,t){const r=this.getBounds(Y.X_AXIS);return this.config.components.xAxis.visible?(r.x=0,r.y=t.height-this.getXAxisHeight()-e.height,r.width=t.width,r.height=this.getXAxisHeight()):this.applyDefaultBounds(r),r}getXAxisHeight(){var e,t;if(!this.xAxisHeight){const r=this.config.components.xAxis.fontSize+"px "+this.config.components.xAxis.fontFamily,s=Qe(r,this.canvasModel.ctx);this.xAxisHeight=s+((e=this.config.components.xAxis.padding.top)!=null?e:0)+((t=this.config.components.xAxis.padding.bottom)!=null?t:0)}return this.xAxisHeight}setYAxisWidths(e){(!Zr(this.yAxisWidths.left,e.left)||!Zr(this.yAxisWidths.right,e.right))&&(this.yAxisWidths=e,this.recalculateBounds())}setXAxisHeight(e){e!==this.xAxisHeight&&(this.xAxisHeight=e,this.recalculateBounds())}setPanesOrder(e){this.panesOrder=e,this.recalculateBounds()}getYAxisWidth(){return this.config.components.yAxis.visible?this.yAxisWidths:{right:[0],left:[0]}}recalculatePanesHeightRatios(){this.calculateGraphsHeightRatios(),this.recalculateBounds()}calculateGraphsHeightRatios(){let e=this.graphsHeightRatio[ae];const t=[];t.push(...this.panesOrder.filter(v=>v!==ae)),this.panesOrder.forEach(v=>{this.graphsHeightRatio[v]===0&&delete this.graphsHeightRatio[v]});const r=t.map(v=>this.graphsHeightRatio[v]===void 0?void 0:this.graphsHeightRatio[v]),s=r.filter(v=>v!==void 0).length,i=r.filter(v=>v===void 0).length;let a=0,o=0,l=1,c=0;i>0&&([l,c]=Qo(t.length),e*=l),s===0&&(e=1-c*i),o=1-e-c*i,r.forEach(v=>{v&&(o-=v*l)}),a=o/(t.length+1);const h=r.map(v=>v?v*l+a:c+a);e+=a,this._graphsHeightRatio={},this.graphsHeightRatio[ae]=e,h.forEach((v,p)=>{const y=t[p];this.graphsHeightRatio[y]=v})}recalculateNavigationMapElementBounds(){var e,t,r,s;if(this.config.components.navigationMap.visible){const i=this.getBounds(Y.N_MAP),{height:a,width:o}=this.config.components.navigationMap.knots,l=a!=null?a:0,c=Hn()?o*gs:o!=null?o:0,h=l?i.y+(i.height-l)/2:i.y,v=(t=(e=this.config.components.navigationMap)==null?void 0:e.timeLabels)==null?void 0:t.visible,p=J=>Ro(this.canvasModel.ctx,J,this.formatterFactory,this.config)[0],y=Ie((s=(r=this.mainCandleSeries)==null?void 0:r.getSeriesInViewport())!=null?s:[]),E=v&&y.length?p(y[0].candle.timestamp):0,R=v&&y.length?p(y[y.length-1].candle.timestamp):0,N=Math.max(E,R);if(v){const J=this.getBounds(Y.N_MAP_LABEL_L);J.x=i.x,J.y=i.y,J.width=N,J.height=i.height;const ne=this.getBounds(Y.N_MAP_LABEL_R);ne.x=i.x+i.width-N,ne.y=i.y,ne.width=N,ne.height=i.height}const k=this.getBounds(Y.N_MAP_BTN_L);k.x=i.x+N,k.y=i.y,k.width=Un,k.height=i.height;const U=this.getBounds(Y.N_MAP_BTN_R);U.x=i.x+i.width-Un-N,U.y=i.y,U.width=Un,U.height=i.height;const Z=this.getBounds(Y.N_MAP_KNOT_L);Z.x=(U.x-k.x-k.width)*this.leftRatio+k.x+k.width,Z.y=h,Z.width=c!=null?c:zn,Z.height=l!=null?l:i.height;const K=this.getBounds(Y.N_MAP_KNOT_R);K.x=(U.x-k.x-k.width)*this.rightRatio+k.x+k.width-zn,K.y=h,K.width=c!=null?c:zn,K.height=l!=null?l:i.height;const q=this.getBounds(Y.N_MAP_SLIDER_WINDOW);q.x=Z.x+Z.width,q.y=i.y,q.width=K.x-q.x,q.height=i.height;const $=this.getBounds(Y.N_MAP_CHART);$.x=k.x+k.width,$.y=i.y,$.width=U.x-$.x,$.height=i.height}}isVolumesInSeparatePane(){return this.config.components.volumes.visible&&this.config.components.volumes.showSeparately}getBounds(e){return this.bounds[e]===void 0&&(this.bounds[e]=this.copyOf(fs)),this.bounds[e]}getCanvasOnPageLocation(){return this.canvasOnPageLocation}getBoundsPanes(){return this.panesOrder.reduce((e,t)=>us(et({},e),{[t]:this.bounds[Y.PANE_UUID(t)]}),{})}getBoundsHitTest(e,t=nn){const{extensionX:r,extensionY:s,wholePage:i}=et(et({},nn),t);return i?(a,o)=>{const l=this.getBounds(e);return a>l.pageX-r&&a<l.pageX+l.width+r&&o>l.pageY-s&&o<l.pageY+l.height+s}:(a,o)=>{const l=this.getBounds(e);return a>l.x-r&&a<l.x+l.width+r&&o>l.y-s&&o<l.y+l.height+s}}static hitTestOf(e,t=nn){const{extensionX:r,extensionY:s,wholePage:i}=et(et({},nn),t);return i?(a,o)=>a>e.pageX-r&&a<e.pageX+e.width+r&&o>e.pageY-s&&o<e.pageY+e.height+s:(a,o)=>a>e.x-r&&a<e.x+e.width+r&&o>e.y-s&&o<e.y+e.height+s}isChartBoundsAvailable(){const e=this.getBounds(Y.CANVAS);return e.width>0&&e.height>0}resizePaneVertically(e,t){const r=this.panesOrder.indexOf(e),s=this.getBounds(Y.PANE_UUID_RESIZER(e));this.doResizePaneVertically(r,s.y-t),this.barResizerChangedSubject.next()}doResizePaneVertically(e,t){const r=e-1,s=this.getBounds(Y.ALL_PANES).height,i=this.config.components.paneResizer.height+Ko,a=s*this.graphsHeightRatio[this.panesOrder[e]],o=s*this.graphsHeightRatio[this.panesOrder[r]],l=a+t>i,c=o-t>i;if(l&&c){const h=t/s;this.graphsHeightRatio[this.panesOrder[e]]+=h,this.graphsHeightRatio[this.panesOrder[r]]-=h,this.recalculateBounds()}}notifyBoundsSubscribers(){Object.keys(this.boundsChangedSubscriptions).forEach(e=>{this.boundsChangedSubscriptions[e].next(this.getBounds(e))}),this.boundsChangedSubject.next()}observeBoundsChanged(e){let t=this.boundsChangedSubscriptions[e];return t||(t=new lt(this.getBounds(e)),this.boundsChangedSubscriptions[e]=t),t.pipe(ye(r=>this.copyOf(r)),Ve((r,s)=>this.sameBounds(r,s)))}observeAnyBoundsChanged(){return this.boundsChangedSubject.asObservable()}copyOf(e){return et({},e)}copyBounds(e,t){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height}sameBounds(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}applyDefaultBounds(e){this.copyBounds(fs,e)}setMainCandleSeries(e){this.mainCandleSeries=e}}const Jo={0:1,1:.8,2:.6,3:.5,4:.4,5:.2},Qo=n=>{var e;const t=(e=Jo[n])!=null?e:.4,r=(1-t)/n;return[t,r]},yv=(n,e)=>n.x>e.x&&n.x<e.x+e.width&&n.y>e.y&&n.y<e.y+e.height,el=(n,e)=>n>e.y&&n<e.y+e.height,_t=(n,e,t,r,s,i,a)=>{const o=n[e];if(o)return o.x=t,o.y=r,o.pageX=t+a.x,o.pageY=r+a.y,o.width=s,o.height=i,o;const l={x:t,y:r,pageX:t+a.x,pageY:r+a.y,width:s,height:i};return n[e]=l,l},ps=(n,e)=>Math.min(Math.max(n,e.y),e.y+e.height),nn={extensionX:0,extensionY:0,wholePage:!1},ms=(n,e)=>n.width===e.width&&n.height===e.height;var tl=function(n){I(e,n);function e(t,r){return n.call(this)||this}return e.prototype.schedule=function(t,r){return r===void 0&&(r=0),this},e}(Ce),rn={setInterval:function(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];var s=rn.delegate;return s!=null&&s.setInterval?s.setInterval.apply(s,g([n,e],P(t))):setInterval.apply(void 0,g([n,e],P(t)))},clearInterval:function(n){var e=rn.delegate;return((e==null?void 0:e.clearInterval)||clearInterval)(n)},delegate:void 0},nl=function(n){I(e,n);function e(t,r){var s=n.call(this,t,r)||this;return s.scheduler=t,s.work=r,s.pending=!1,s}return e.prototype.schedule=function(t,r){var s;if(r===void 0&&(r=0),this.closed)return this;this.state=t;var i=this.id,a=this.scheduler;return i!=null&&(this.id=this.recycleAsyncId(a,i,r)),this.pending=!0,this.delay=r,this.id=(s=this.id)!==null&&s!==void 0?s:this.requestAsyncId(a,this.id,r),this},e.prototype.requestAsyncId=function(t,r,s){return s===void 0&&(s=0),rn.setInterval(t.flush.bind(t,this),s)},e.prototype.recycleAsyncId=function(t,r,s){if(s===void 0&&(s=0),s!=null&&this.delay===s&&this.pending===!1)return r;r!=null&&rn.clearInterval(r)},e.prototype.execute=function(t,r){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var s=this._execute(t,r);if(s)return s;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,r){var s=!1,i;try{this.work(t)}catch(a){s=!0,i=a||new Error("Scheduled action threw falsy error")}if(s)return this.unsubscribe(),i},e.prototype.unsubscribe=function(){if(!this.closed){var t=this,r=t.id,s=t.scheduler,i=s.actions;this.work=this.state=this.scheduler=null,this.pending=!1,Ae(i,this),r!=null&&(this.id=this.recycleAsyncId(s,r,null)),this.delay=null,n.prototype.unsubscribe.call(this)}},e}(tl),jn={now:function(){return(jn.delegate||Date).now()},delegate:void 0},bs=function(){function n(e,t){t===void 0&&(t=n.now),this.schedulerActionCtor=e,this.now=t}return n.prototype.schedule=function(e,t,r){return t===void 0&&(t=0),new this.schedulerActionCtor(this,e).schedule(r,t)},n.now=jn.now,n}(),rl=function(n){I(e,n);function e(t,r){r===void 0&&(r=bs.now);var s=n.call(this,t,r)||this;return s.actions=[],s._active=!1,s}return e.prototype.flush=function(t){var r=this.actions;if(this._active){r.push(t);return}var s;this._active=!0;do if(s=t.execute(t.state,t.delay))break;while(t=r.shift());if(this._active=!1,s){for(;t=r.shift();)t.unsubscribe();throw s}},e}(bs),Cs=new rl(nl),sl=Cs;function il(n,e){return w(function(t,r){var s=e!=null?e:{},i=s.leading,a=i===void 0?!0:i,o=s.trailing,l=o===void 0?!1:o,c=!1,h=null,v=null,p=!1,y=function(){v==null||v.unsubscribe(),v=null,l&&(N(),p&&r.complete())},E=function(){v=null,p&&r.complete()},R=function(k){return v=Ke(n(k)).subscribe(We(r,y,E))},N=function(){if(c){c=!1;var k=h;h=null,r.next(k),!p&&R(k)}};t.subscribe(We(r,function(k){c=!0,h=k,!(v&&!v.closed)&&(a?N():R(k))},function(){p=!0,!(l&&c&&v&&!v.closed)&&r.complete()}))})}function al(n){return n instanceof Date&&!isNaN(n)}function ol(n,e,t){n===void 0&&(n=0),t===void 0&&(t=sl);var r=-1;return e!=null&&(Hr(e)?t=e:r=e),new xe(function(s){var i=al(n)?+n-t.now():n;i<0&&(i=0);var a=0;return t.schedule(function(){s.closed||(s.next(a++),0<=r?this.schedule(void 0,r):s.complete())},i)})}function Nt(n,e,t){e===void 0&&(e=Cs);var r=ol(n,e);return il(function(){return r},t)}class te{constructor(){this.subscriptions=[],this._state="initial",this.entities=[]}doActivate(){}doDeactivate(){this.subscriptions.forEach(e=>e()),this.subscriptions=[]}enable(){this._state!=="active"&&(this._state="deactivated",this.activate())}disable(){this._state!=="disabled"&&(this.deactivate(),this._state="disabled")}activate(){this._state!=="disabled"&&(this._state!=="active"&&(this.doActivate(),this._state="active"),this.entities.forEach(e=>e.activate()))}deactivate(){this._state!=="disabled"&&(this._state!=="deactivated"&&(this.doDeactivate(),this._state="deactivated"),this.entities.forEach(e=>e.deactivate()))}getState(){return this._state}addSubscription(e){this.subscriptions.push(e)}addRxSubscription(e){e&&this.subscriptions.push(e.unsubscribe.bind(e))}addChildEntity(e){this.entities.push(e),this._state==="active"&&e.activate()}removeChildEntity(e){this.entities=this.entities.filter(t=>t!==e)}}class ll extends te{constructor(e,t,r,s){super(),this.element=e,this.canvasInputListener=t,this.canvasBoundsContainer=r,this.hitTestCanvasModel=s,this.normalLayer=new Map,this.extensionLayer=new Map,this.cursorChangedSubject=new G}doActivate(){super.doActivate(),this.canvasInputListener.observeMouseMoveNoDrag().pipe(Nt(100,void 0,{trailing:!0})).subscribe(e=>{const t=this.hitTestCanvasModel.resolveCursor(e);if(t!==void 0){this.updateCursor(t);return}e&&(this.normalLayer.forEach(r=>{r.hitTest(e.x,e.y)&&this.updateCursor(r.cursor)}),this.extensionLayer.forEach(r=>{r.hitTest(e.x,e.y)&&this.updateCursor(r.cursor)}))})}setCursorForBounds(e,t,r,s=0){const i=Xn.hitTestOf(t,{extensionY:s});s?this.extensionLayer.set(e,{cursor:r,hitTest:i}):this.normalLayer.set(e,{cursor:r,hitTest:i})}setCursorForCanvasEl(e,t,r){this.observeCursorType(e,t,r)}removeCursorForCanvasEl(e){this.normalLayer.delete(e),this.extensionLayer.delete(e)}observeCursorChanged(){return this.cursorChangedSubject.pipe(Ve())}observeCursorType(e,t,r){const s=r?this.canvasBoundsContainer.getBoundsHitTest(e,{extensionY:r}):this.canvasBoundsContainer.getBoundsHitTest(e);r?this.extensionLayer.set(e,{cursor:t,hitTest:s}):this.normalLayer.set(e,{cursor:t,hitTest:s})}updateCursor(e){this.element.style.cursor!==e&&(this.element.style.cursor=e,this.cursorChangedSubject.next(e))}}const cl=n=>{const e=n.canvasArea!==null,t=n.snapshotCanvas!==null,r=n.backgroundCanvas!==null,s=n.mainCanvas!==null,i=n.overDataSeriesCanvas!==null,a=n.staticDrawingCanvas!==null,o=n.dynamicDrawingCanvas!==null,l=n.yAxisLabelsCanvas!==null,c=n.crossToolCanvas!==null,h=n.hitTestCanvas!==null,v=n.chartResizer!==null,p=n.chartContainer!==null,y=n.dataSeriesCanvas!==null;return e&&t&&r&&s&&i&&a&&o&&l&&c&&h&&v&&p&&y},hl=n=>`<div data-element="chartResizer" style="position: relative; min-height: 20px; height: 100%; width: 100%; touch-action: manipulation; z-index: 0;">
6
+ (()=>{var mt=Math.pow;var dg;(()=>{var La={8168:(I,S,y)=>{const P=y(8874),L={};for(const g of Object.keys(P))L[P[g]]=g;const _={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};I.exports=_;for(const g of Object.keys(_)){if(!("channels"in _[g]))throw new Error("missing channels property: "+g);if(!("labels"in _[g]))throw new Error("missing channel labels property: "+g);if(_[g].labels.length!==_[g].channels)throw new Error("channel and label counts mismatch: "+g);const{channels:f,labels:u}=_[g];delete _[g].channels,delete _[g].labels,Object.defineProperty(_[g],"channels",{value:f}),Object.defineProperty(_[g],"labels",{value:u})}_.rgb.hsl=function(g){const f=g[0]/255,u=g[1]/255,m=g[2]/255,d=Math.min(f,u,m),w=Math.max(f,u,m),D=w-d;let E,b;w===d?E=0:f===w?E=(u-m)/D:u===w?E=2+(m-f)/D:m===w&&(E=4+(f-u)/D),E=Math.min(E*60,360),E<0&&(E+=360);const M=(d+w)/2;return w===d?b=0:M<=.5?b=D/(w+d):b=D/(2-w-d),[E,b*100,M*100]},_.rgb.hsv=function(g){let f,u,m,d,w;const D=g[0]/255,E=g[1]/255,b=g[2]/255,M=Math.max(D,E,b),T=M-Math.min(D,E,b),x=function(A){return(M-A)/6/T+1/2};return T===0?(d=0,w=0):(w=T/M,f=x(D),u=x(E),m=x(b),D===M?d=m-u:E===M?d=.3333333333333333+f-m:b===M&&(d=.6666666666666666+u-f),d<0?d+=1:d>1&&(d-=1)),[d*360,w*100,M*100]},_.rgb.hwb=function(g){const f=g[0],u=g[1];let m=g[2];const d=_.rgb.hsl(g)[0],w=1/255*Math.min(f,Math.min(u,m));return m=1-.00392156862745098*Math.max(f,Math.max(u,m)),[d,w*100,m*100]},_.rgb.cmyk=function(g){const f=g[0]/255,u=g[1]/255,m=g[2]/255,d=Math.min(1-f,1-u,1-m),w=(1-f-d)/(1-d)||0,D=(1-u-d)/(1-d)||0,E=(1-m-d)/(1-d)||0;return[w*100,D*100,E*100,d*100]};function N(g,f){return mt(g[0]-f[0],2)+mt(g[1]-f[1],2)+mt(g[2]-f[2],2)}_.rgb.keyword=function(g){const f=L[g];if(f)return f;let u=1/0,m;for(const d of Object.keys(P)){const w=P[d],D=N(g,w);D<u&&(u=D,m=d)}return m},_.keyword.rgb=function(g){return P[g]},_.rgb.xyz=function(g){let f=g[0]/255,u=g[1]/255,m=g[2]/255;f=f>.04045?mt((f+.055)/1.055,2.4):f/12.92,u=u>.04045?mt((u+.055)/1.055,2.4):u/12.92,m=m>.04045?mt((m+.055)/1.055,2.4):m/12.92;const d=f*.4124+u*.3576+m*.1805,w=f*.2126+u*.7152+m*.0722,D=f*.0193+u*.1192+m*.9505;return[d*100,w*100,D*100]},_.rgb.lab=function(g){const f=_.rgb.xyz(g);let u=f[0],m=f[1],d=f[2];u/=95.047,m/=100,d/=108.883,u=u>.008856?mt(u,.3333333333333333):7.787*u+.13793103448275862,m=m>.008856?mt(m,.3333333333333333):7.787*m+.13793103448275862,d=d>.008856?mt(d,.3333333333333333):7.787*d+.13793103448275862;const w=116*m-16,D=500*(u-m),E=200*(m-d);return[w,D,E]},_.hsl.rgb=function(g){const f=g[0]/360,u=g[1]/100,m=g[2]/100;let d,w,D;if(u===0)return D=m*255,[D,D,D];m<.5?d=m*(1+u):d=m+u-m*u;const E=2*m-d,b=[0,0,0];for(let M=0;M<3;M++)w=f+.3333333333333333*-(M-1),w<0&&w++,w>1&&w--,6*w<1?D=E+(d-E)*6*w:2*w<1?D=d:3*w<2?D=E+(d-E)*(.6666666666666666-w)*6:D=E,b[M]=D*255;return b},_.hsl.hsv=function(g){const f=g[0];let u=g[1]/100,m=g[2]/100,d=u;const w=Math.max(m,.01);m*=2,u*=m<=1?m:2-m,d*=w<=1?w:2-w;const D=(m+u)/2,E=m===0?2*d/(w+d):2*u/(m+u);return[f,E*100,D*100]},_.hsv.rgb=function(g){const f=g[0]/60,u=g[1]/100;let m=g[2]/100;const d=Math.floor(f)%6,w=f-Math.floor(f),D=255*m*(1-u),E=255*m*(1-u*w),b=255*m*(1-u*(1-w));switch(m*=255,d){case 0:return[m,b,D];case 1:return[E,m,D];case 2:return[D,m,b];case 3:return[D,E,m];case 4:return[b,D,m];case 5:return[m,D,E]}},_.hsv.hsl=function(g){const f=g[0],u=g[1]/100,m=g[2]/100,d=Math.max(m,.01);let w,D;D=(2-u)*m;const E=(2-u)*d;return w=u*d,w/=E<=1?E:2-E,w=w||0,D/=2,[f,w*100,D*100]},_.hwb.rgb=function(g){const f=g[0]/360;let u=g[1]/100,m=g[2]/100;const d=u+m;let w;d>1&&(u/=d,m/=d);const D=Math.floor(6*f),E=1-m;w=6*f-D,D&1&&(w=1-w);const b=u+w*(E-u);let M,T,x;switch(D){default:case 6:case 0:M=E,T=b,x=u;break;case 1:M=b,T=E,x=u;break;case 2:M=u,T=E,x=b;break;case 3:M=u,T=b,x=E;break;case 4:M=b,T=u,x=E;break;case 5:M=E,T=u,x=b;break}return[M*255,T*255,x*255]},_.cmyk.rgb=function(g){const f=g[0]/100,u=g[1]/100,m=g[2]/100,d=g[3]/100,w=1-Math.min(1,f*(1-d)+d),D=1-Math.min(1,u*(1-d)+d),E=1-Math.min(1,m*(1-d)+d);return[w*255,D*255,E*255]},_.xyz.rgb=function(g){const f=g[0]/100,u=g[1]/100,m=g[2]/100;let d,w,D;return d=f*3.2406+u*-1.5372+m*-.4986,w=f*-.9689+u*1.8758+m*.0415,D=f*.0557+u*-.204+m*1.057,d=d>.0031308?1.055*mt(d,.4166666666666667)-.055:d*12.92,w=w>.0031308?1.055*mt(w,.4166666666666667)-.055:w*12.92,D=D>.0031308?1.055*mt(D,.4166666666666667)-.055:D*12.92,d=Math.min(Math.max(0,d),1),w=Math.min(Math.max(0,w),1),D=Math.min(Math.max(0,D),1),[d*255,w*255,D*255]},_.xyz.lab=function(g){let f=g[0],u=g[1],m=g[2];f/=95.047,u/=100,m/=108.883,f=f>.008856?mt(f,.3333333333333333):7.787*f+.13793103448275862,u=u>.008856?mt(u,.3333333333333333):7.787*u+.13793103448275862,m=m>.008856?mt(m,.3333333333333333):7.787*m+.13793103448275862;const d=116*u-16,w=500*(f-u),D=200*(u-m);return[d,w,D]},_.lab.xyz=function(g){const f=g[0],u=g[1],m=g[2];let d,w,D;w=(f+16)/116,d=u/500+w,D=w-m/200;const E=mt(w,3),b=mt(d,3),M=mt(D,3);return w=E>.008856?E:(w-.13793103448275862)/7.787,d=b>.008856?b:(d-.13793103448275862)/7.787,D=M>.008856?M:(D-.13793103448275862)/7.787,d*=95.047,w*=100,D*=108.883,[d,w,D]},_.lab.lch=function(g){const f=g[0],u=g[1],m=g[2];let d;d=Math.atan2(m,u)*360/2/Math.PI,d<0&&(d+=360);const D=Math.sqrt(u*u+m*m);return[f,D,d]},_.lch.lab=function(g){const f=g[0],u=g[1],d=g[2]/360*2*Math.PI,w=u*Math.cos(d),D=u*Math.sin(d);return[f,w,D]},_.rgb.ansi16=function(g,f=null){const[u,m,d]=g;let w=f===null?_.rgb.hsv(g)[2]:f;if(w=Math.round(w/50),w===0)return 30;let D=30+(Math.round(d/255)<<2|Math.round(m/255)<<1|Math.round(u/255));return w===2&&(D+=60),D},_.hsv.ansi16=function(g){return _.rgb.ansi16(_.hsv.rgb(g),g[2])},_.rgb.ansi256=function(g){const f=g[0],u=g[1],m=g[2];return f===u&&u===m?f<8?16:f>248?231:Math.round((f-8)/247*24)+232:16+36*Math.round(f/255*5)+6*Math.round(u/255*5)+Math.round(m/255*5)},_.ansi16.rgb=function(g){let f=g%10;if(f===0||f===7)return g>50&&(f+=3.5),f=f/10.5*255,[f,f,f];const u=(~~(g>50)+1)*.5,m=(f&1)*u*255,d=(f>>1&1)*u*255,w=(f>>2&1)*u*255;return[m,d,w]},_.ansi256.rgb=function(g){if(g>=232){const w=(g-232)*10+8;return[w,w,w]}g-=16;let f;const u=Math.floor(g/36)/5*255,m=Math.floor((f=g%36)/6)/5*255,d=f%6/5*255;return[u,m,d]},_.rgb.hex=function(g){const u=(((Math.round(g[0])&255)<<16)+((Math.round(g[1])&255)<<8)+(Math.round(g[2])&255)).toString(16).toUpperCase();return"000000".substring(u.length)+u},_.hex.rgb=function(g){const f=g.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!f)return[0,0,0];let u=f[0];f[0].length===3&&(u=u.split("").map(E=>E+E).join(""));const m=parseInt(u,16),d=m>>16&255,w=m>>8&255,D=m&255;return[d,w,D]},_.rgb.hcg=function(g){const f=g[0]/255,u=g[1]/255,m=g[2]/255,d=Math.max(Math.max(f,u),m),w=Math.min(Math.min(f,u),m),D=d-w;let E,b;return D<1?E=w/(1-D):E=0,D<=0?b=0:d===f?b=(u-m)/D%6:d===u?b=2+(m-f)/D:b=4+(f-u)/D,b/=6,b%=1,[b*360,D*100,E*100]},_.hsl.hcg=function(g){const f=g[1]/100,u=g[2]/100,m=u<.5?2*f*u:2*f*(1-u);let d=0;return m<1&&(d=(u-.5*m)/(1-m)),[g[0],m*100,d*100]},_.hsv.hcg=function(g){const f=g[1]/100,u=g[2]/100,m=f*u;let d=0;return m<1&&(d=(u-m)/(1-m)),[g[0],m*100,d*100]},_.hcg.rgb=function(g){const f=g[0]/360,u=g[1]/100,m=g[2]/100;if(u===0)return[m*255,m*255,m*255];const d=[0,0,0],w=f%1*6,D=w%1,E=1-D;let b=0;switch(Math.floor(w)){case 0:d[0]=1,d[1]=D,d[2]=0;break;case 1:d[0]=E,d[1]=1,d[2]=0;break;case 2:d[0]=0,d[1]=1,d[2]=D;break;case 3:d[0]=0,d[1]=E,d[2]=1;break;case 4:d[0]=D,d[1]=0,d[2]=1;break;default:d[0]=1,d[1]=0,d[2]=E}return b=(1-u)*m,[(u*d[0]+b)*255,(u*d[1]+b)*255,(u*d[2]+b)*255]},_.hcg.hsv=function(g){const f=g[1]/100,u=g[2]/100,m=f+u*(1-f);let d=0;return m>0&&(d=f/m),[g[0],d*100,m*100]},_.hcg.hsl=function(g){const f=g[1]/100,m=g[2]/100*(1-f)+.5*f;let d=0;return m>0&&m<.5?d=f/(2*m):m>=.5&&m<1&&(d=f/(2*(1-m))),[g[0],d*100,m*100]},_.hcg.hwb=function(g){const f=g[1]/100,u=g[2]/100,m=f+u*(1-f);return[g[0],(m-f)*100,(1-m)*100]},_.hwb.hcg=function(g){const f=g[1]/100,m=1-g[2]/100,d=m-f;let w=0;return d<1&&(w=(m-d)/(1-d)),[g[0],d*100,w*100]},_.apple.rgb=function(g){return[g[0]/65535*255,g[1]/65535*255,g[2]/65535*255]},_.rgb.apple=function(g){return[g[0]/255*65535,g[1]/255*65535,g[2]/255*65535]},_.gray.rgb=function(g){return[g[0]/100*255,g[0]/100*255,g[0]/100*255]},_.gray.hsl=function(g){return[0,0,g[0]]},_.gray.hsv=_.gray.hsl,_.gray.hwb=function(g){return[0,100,g[0]]},_.gray.cmyk=function(g){return[0,0,0,g[0]]},_.gray.lab=function(g){return[g[0],0,0]},_.gray.hex=function(g){const f=Math.round(g[0]/100*255)&255,m=((f<<16)+(f<<8)+f).toString(16).toUpperCase();return"000000".substring(m.length)+m},_.rgb.gray=function(g){return[(g[0]+g[1]+g[2])/3/255*100]}},2085:(I,S,y)=>{const P=y(8168),L=y(4111),_={},N=Object.keys(P);function g(u){const m=function(...d){const w=d[0];return w==null?w:(w.length>1&&(d=w),u(d))};return"conversion"in u&&(m.conversion=u.conversion),m}function f(u){const m=function(...d){const w=d[0];if(w==null)return w;w.length>1&&(d=w);const D=u(d);if(typeof D=="object")for(let E=D.length,b=0;b<E;b++)D[b]=Math.round(D[b]);return D};return"conversion"in u&&(m.conversion=u.conversion),m}N.forEach(u=>{_[u]={},Object.defineProperty(_[u],"channels",{value:P[u].channels}),Object.defineProperty(_[u],"labels",{value:P[u].labels});const m=L(u);Object.keys(m).forEach(w=>{const D=m[w];_[u][w]=f(D),_[u][w].raw=g(D)})}),I.exports=_},4111:(I,S,y)=>{const P=y(8168);function L(){const f={},u=Object.keys(P);for(let m=u.length,d=0;d<m;d++)f[u[d]]={distance:-1,parent:null};return f}function _(f){const u=L(),m=[f];for(u[f].distance=0;m.length;){const d=m.pop(),w=Object.keys(P[d]);for(let D=w.length,E=0;E<D;E++){const b=w[E],M=u[b];M.distance===-1&&(M.distance=u[d].distance+1,M.parent=d,m.unshift(b))}}return u}function N(f,u){return function(m){return u(f(m))}}function g(f,u){const m=[u[f].parent,f];let d=P[u[f].parent][f],w=u[f].parent;for(;u[w].parent;)m.unshift(u[w].parent),d=N(P[u[w].parent][w],d),w=u[w].parent;return d.conversion=m,d}I.exports=function(f){const u=_(f),m={},d=Object.keys(u);for(let w=d.length,D=0;D<w;D++){const E=d[D];u[E].parent!==null&&(m[E]=g(E,u))}return m}},8874:I=>{"use strict";I.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},9818:(I,S,y)=>{var P=y(8874),L=y(6851),_=Object.hasOwnProperty,N=Object.create(null);for(var g in P)_.call(P,g)&&(N[P[g]]=g);var f=I.exports={to:{},get:{}};f.get=function(d){var w=d.substring(0,3).toLowerCase(),D,E;switch(w){case"hsl":D=f.get.hsl(d),E="hsl";break;case"hwb":D=f.get.hwb(d),E="hwb";break;default:D=f.get.rgb(d),E="rgb";break}return D?{model:E,value:D}:null},f.get.rgb=function(d){if(!d)return null;var w=/^#([a-f0-9]{3,4})$/i,D=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,E=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,b=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,M=/^(\w+)$/,T=[0,0,0,1],x,A,R;if(x=d.match(D)){for(R=x[2],x=x[1],A=0;A<3;A++){var F=A*2;T[A]=parseInt(x.slice(F,F+2),16)}R&&(T[3]=parseInt(R,16)/255)}else if(x=d.match(w)){for(x=x[1],R=x[3],A=0;A<3;A++)T[A]=parseInt(x[A]+x[A],16);R&&(T[3]=parseInt(R+R,16)/255)}else if(x=d.match(E)){for(A=0;A<3;A++)T[A]=parseInt(x[A+1],0);x[4]&&(x[5]?T[3]=parseFloat(x[4])*.01:T[3]=parseFloat(x[4]))}else if(x=d.match(b)){for(A=0;A<3;A++)T[A]=Math.round(parseFloat(x[A+1])*2.55);x[4]&&(x[5]?T[3]=parseFloat(x[4])*.01:T[3]=parseFloat(x[4]))}else return(x=d.match(M))?x[1]==="transparent"?[0,0,0,0]:_.call(P,x[1])?(T=P[x[1]],T[3]=1,T):null:null;for(A=0;A<3;A++)T[A]=u(T[A],0,255);return T[3]=u(T[3],0,1),T},f.get.hsl=function(d){if(!d)return null;var w=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,D=d.match(w);if(D){var E=parseFloat(D[4]),b=(parseFloat(D[1])%360+360)%360,M=u(parseFloat(D[2]),0,100),T=u(parseFloat(D[3]),0,100),x=u(isNaN(E)?1:E,0,1);return[b,M,T,x]}return null},f.get.hwb=function(d){if(!d)return null;var w=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,D=d.match(w);if(D){var E=parseFloat(D[4]),b=(parseFloat(D[1])%360+360)%360,M=u(parseFloat(D[2]),0,100),T=u(parseFloat(D[3]),0,100),x=u(isNaN(E)?1:E,0,1);return[b,M,T,x]}return null},f.to.hex=function(){var d=L(arguments);return"#"+m(d[0])+m(d[1])+m(d[2])+(d[3]<1?m(Math.round(d[3]*255)):"")},f.to.rgb=function(){var d=L(arguments);return d.length<4||d[3]===1?"rgb("+Math.round(d[0])+", "+Math.round(d[1])+", "+Math.round(d[2])+")":"rgba("+Math.round(d[0])+", "+Math.round(d[1])+", "+Math.round(d[2])+", "+d[3]+")"},f.to.rgb.percent=function(){var d=L(arguments),w=Math.round(d[0]/255*100),D=Math.round(d[1]/255*100),E=Math.round(d[2]/255*100);return d.length<4||d[3]===1?"rgb("+w+"%, "+D+"%, "+E+"%)":"rgba("+w+"%, "+D+"%, "+E+"%, "+d[3]+")"},f.to.hsl=function(){var d=L(arguments);return d.length<4||d[3]===1?"hsl("+d[0]+", "+d[1]+"%, "+d[2]+"%)":"hsla("+d[0]+", "+d[1]+"%, "+d[2]+"%, "+d[3]+")"},f.to.hwb=function(){var d=L(arguments),w="";return d.length>=4&&d[3]!==1&&(w=", "+d[3]),"hwb("+d[0]+", "+d[1]+"%, "+d[2]+"%"+w+")"},f.to.keyword=function(d){return N[d.slice(0,3)]};function u(d,w,D){return Math.min(Math.max(w,d),D)}function m(d){var w=Math.round(d).toString(16).toUpperCase();return w.length<2?"0"+w:w}},6767:(I,S,y)=>{const P=y(9818),L=y(2085),_=["keyword","gray","hex"],N={};for(const b of Object.keys(L))N[[...L[b].labels].sort().join("")]=b;const g={};function f(b,M){if(!(this instanceof f))return new f(b,M);if(M&&M in _&&(M=null),M&&!(M in L))throw new Error("Unknown model: "+M);let T,x;if(b==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(b instanceof f)this.model=b.model,this.color=[...b.color],this.valpha=b.valpha;else if(typeof b=="string"){const A=P.get(b);if(A===null)throw new Error("Unable to parse color from string: "+b);this.model=A.model,x=L[this.model].channels,this.color=A.value.slice(0,x),this.valpha=typeof A.value[x]=="number"?A.value[x]:1}else if(b.length>0){this.model=M||"rgb",x=L[this.model].channels;const A=Array.prototype.slice.call(b,0,x);this.color=E(A,x),this.valpha=typeof b[x]=="number"?b[x]:1}else if(typeof b=="number")this.model="rgb",this.color=[b>>16&255,b>>8&255,b&255],this.valpha=1;else{this.valpha=1;const A=Object.keys(b);"alpha"in b&&(A.splice(A.indexOf("alpha"),1),this.valpha=typeof b.alpha=="number"?b.alpha:0);const R=A.sort().join("");if(!(R in N))throw new Error("Unable to parse color from object: "+JSON.stringify(b));this.model=N[R];const{labels:F}=L[this.model],j=[];for(T=0;T<F.length;T++)j.push(b[F[T]]);this.color=E(j)}if(g[this.model])for(x=L[this.model].channels,T=0;T<x;T++){const A=g[this.model][T];A&&(this.color[T]=A(this.color[T]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}f.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(b){let M=this.model in P.to?this:this.rgb();M=M.round(typeof b=="number"?b:1);const T=M.valpha===1?M.color:[...M.color,this.valpha];return P.to[M.model](T)},percentString(b){const M=this.rgb().round(typeof b=="number"?b:1),T=M.valpha===1?M.color:[...M.color,this.valpha];return P.to.rgb.percent(T)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){const b={},{channels:M}=L[this.model],{labels:T}=L[this.model];for(let x=0;x<M;x++)b[T[x]]=this.color[x];return this.valpha!==1&&(b.alpha=this.valpha),b},unitArray(){const b=this.rgb().color;return b[0]/=255,b[1]/=255,b[2]/=255,this.valpha!==1&&b.push(this.valpha),b},unitObject(){const b=this.rgb().object();return b.r/=255,b.g/=255,b.b/=255,this.valpha!==1&&(b.alpha=this.valpha),b},round(b){return b=Math.max(b||0,0),new f([...this.color.map(m(b)),this.valpha],this.model)},alpha(b){return b!==void 0?new f([...this.color,Math.max(0,Math.min(1,b))],this.model):this.valpha},red:d("rgb",0,w(255)),green:d("rgb",1,w(255)),blue:d("rgb",2,w(255)),hue:d(["hsl","hsv","hsl","hwb","hcg"],0,b=>(b%360+360)%360),saturationl:d("hsl",1,w(100)),lightness:d("hsl",2,w(100)),saturationv:d("hsv",1,w(100)),value:d("hsv",2,w(100)),chroma:d("hcg",1,w(100)),gray:d("hcg",2,w(100)),white:d("hwb",1,w(100)),wblack:d("hwb",2,w(100)),cyan:d("cmyk",0,w(100)),magenta:d("cmyk",1,w(100)),yellow:d("cmyk",2,w(100)),black:d("cmyk",3,w(100)),x:d("xyz",0,w(95.047)),y:d("xyz",1,w(100)),z:d("xyz",2,w(108.833)),l:d("lab",0,w(100)),a:d("lab",1),b:d("lab",2),keyword(b){return b!==void 0?new f(b):L[this.model].keyword(this.color)},hex(b){return b!==void 0?new f(b):P.to.hex(this.rgb().round().color)},hexa(b){if(b!==void 0)return new f(b);const M=this.rgb().round().color;let T=Math.round(this.valpha*255).toString(16).toUpperCase();return T.length===1&&(T="0"+T),P.to.hex(M)+T},rgbNumber(){const b=this.rgb().color;return(b[0]&255)<<16|(b[1]&255)<<8|b[2]&255},luminosity(){const b=this.rgb().color,M=[];for(const[T,x]of b.entries()){const A=x/255;M[T]=A<=.04045?A/12.92:mt((A+.055)/1.055,2.4)}return .2126*M[0]+.7152*M[1]+.0722*M[2]},contrast(b){const M=this.luminosity(),T=b.luminosity();return M>T?(M+.05)/(T+.05):(T+.05)/(M+.05)},level(b){const M=this.contrast(b);return M>=7?"AAA":M>=4.5?"AA":""},isDark(){const b=this.rgb().color;return(b[0]*2126+b[1]*7152+b[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){const b=this.rgb();for(let M=0;M<3;M++)b.color[M]=255-b.color[M];return b},lighten(b){const M=this.hsl();return M.color[2]+=M.color[2]*b,M},darken(b){const M=this.hsl();return M.color[2]-=M.color[2]*b,M},saturate(b){const M=this.hsl();return M.color[1]+=M.color[1]*b,M},desaturate(b){const M=this.hsl();return M.color[1]-=M.color[1]*b,M},whiten(b){const M=this.hwb();return M.color[1]+=M.color[1]*b,M},blacken(b){const M=this.hwb();return M.color[2]+=M.color[2]*b,M},grayscale(){const b=this.rgb().color,M=b[0]*.3+b[1]*.59+b[2]*.11;return f.rgb(M,M,M)},fade(b){return this.alpha(this.valpha-this.valpha*b)},opaquer(b){return this.alpha(this.valpha+this.valpha*b)},rotate(b){const M=this.hsl();let T=M.color[0];return T=(T+b)%360,T=T<0?360+T:T,M.color[0]=T,M},mix(b,M){if(!b||!b.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof b);const T=b.rgb(),x=this.rgb(),A=M===void 0?.5:M,R=2*A-1,F=T.alpha()-x.alpha(),j=((R*F===-1?R:(R+F)/(1+R*F))+1)/2,G=1-j;return f.rgb(j*T.red()+G*x.red(),j*T.green()+G*x.green(),j*T.blue()+G*x.blue(),T.alpha()*A+x.alpha()*(1-A))}};for(const b of Object.keys(L)){if(_.includes(b))continue;const{channels:M}=L[b];f.prototype[b]=function(...T){return this.model===b?new f(this):T.length>0?new f(T,b):new f([...D(L[this.model][b].raw(this.color)),this.valpha],b)},f[b]=function(...T){let x=T[0];return typeof x=="number"&&(x=E(T,M)),new f(x,b)}}function u(b,M){return Number(b.toFixed(M))}function m(b){return function(M){return u(M,b)}}function d(b,M,T){b=Array.isArray(b)?b:[b];for(const x of b)(g[x]||(g[x]=[]))[M]=T;return b=b[0],function(x){let A;return x!==void 0?(T&&(x=T(x)),A=this[b](),A.color[M]=x,A):(A=this[b]().color[M],T&&(A=T(A)),A)}}function w(b){return function(M){return Math.max(0,Math.min(b,M))}}function D(b){return Array.isArray(b)?b:[b]}function E(b,M){for(let T=0;T<M;T++)typeof b[T]!="number"&&(b[T]=0);return b}I.exports=f},7394:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P,L){for(var _=P<0?"-":"",N=Math.abs(P).toString();N.length<L;)N="0"+N;return _+N}I.exports=S.default},8609:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P,L){if(P==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var _ in L)Object.prototype.hasOwnProperty.call(L,_)&&(P[_]=L[_]);return P}I.exports=S.default},6420:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=_;var L=P(y(8609));function _(N){return(0,L.default)({},N)}I.exports=S.default},7561:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(2512)),_=L.default;S.default=_,I.exports=S.default},8729:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.getDefaultOptions=P,S.setDefaultOptions=L;var y={};function P(){return y}function L(_){y=_}},7100:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(1603)),_=P(y(1354)),N=P(y(1370)),g=P(y(623)),f=P(y(6226)),u=P(y(7394)),m=P(y(2699)),d={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},w={G:function(x,A,R){var F=x.getUTCFullYear()>0?1:0;switch(A){case"G":case"GG":case"GGG":return R.era(F,{width:"abbreviated"});case"GGGGG":return R.era(F,{width:"narrow"});case"GGGG":default:return R.era(F,{width:"wide"})}},y:function(x,A,R){if(A==="yo"){var F=x.getUTCFullYear(),j=F>0?F:1-F;return R.ordinalNumber(j,{unit:"year"})}return m.default.y(x,A)},Y:function(x,A,R,F){var j=(0,f.default)(x,F),G=j>0?j:1-j;if(A==="YY"){var et=G%100;return(0,u.default)(et,2)}return A==="Yo"?R.ordinalNumber(G,{unit:"year"}):(0,u.default)(G,A.length)},R:function(x,A){var R=(0,N.default)(x);return(0,u.default)(R,A.length)},u:function(x,A){var R=x.getUTCFullYear();return(0,u.default)(R,A.length)},Q:function(x,A,R){var F=Math.ceil((x.getUTCMonth()+1)/3);switch(A){case"Q":return String(F);case"QQ":return(0,u.default)(F,2);case"Qo":return R.ordinalNumber(F,{unit:"quarter"});case"QQQ":return R.quarter(F,{width:"abbreviated",context:"formatting"});case"QQQQQ":return R.quarter(F,{width:"narrow",context:"formatting"});case"QQQQ":default:return R.quarter(F,{width:"wide",context:"formatting"})}},q:function(x,A,R){var F=Math.ceil((x.getUTCMonth()+1)/3);switch(A){case"q":return String(F);case"qq":return(0,u.default)(F,2);case"qo":return R.ordinalNumber(F,{unit:"quarter"});case"qqq":return R.quarter(F,{width:"abbreviated",context:"standalone"});case"qqqqq":return R.quarter(F,{width:"narrow",context:"standalone"});case"qqqq":default:return R.quarter(F,{width:"wide",context:"standalone"})}},M:function(x,A,R){var F=x.getUTCMonth();switch(A){case"M":case"MM":return m.default.M(x,A);case"Mo":return R.ordinalNumber(F+1,{unit:"month"});case"MMM":return R.month(F,{width:"abbreviated",context:"formatting"});case"MMMMM":return R.month(F,{width:"narrow",context:"formatting"});case"MMMM":default:return R.month(F,{width:"wide",context:"formatting"})}},L:function(x,A,R){var F=x.getUTCMonth();switch(A){case"L":return String(F+1);case"LL":return(0,u.default)(F+1,2);case"Lo":return R.ordinalNumber(F+1,{unit:"month"});case"LLL":return R.month(F,{width:"abbreviated",context:"standalone"});case"LLLLL":return R.month(F,{width:"narrow",context:"standalone"});case"LLLL":default:return R.month(F,{width:"wide",context:"standalone"})}},w:function(x,A,R,F){var j=(0,g.default)(x,F);return A==="wo"?R.ordinalNumber(j,{unit:"week"}):(0,u.default)(j,A.length)},I:function(x,A,R){var F=(0,_.default)(x);return A==="Io"?R.ordinalNumber(F,{unit:"week"}):(0,u.default)(F,A.length)},d:function(x,A,R){return A==="do"?R.ordinalNumber(x.getUTCDate(),{unit:"date"}):m.default.d(x,A)},D:function(x,A,R){var F=(0,L.default)(x);return A==="Do"?R.ordinalNumber(F,{unit:"dayOfYear"}):(0,u.default)(F,A.length)},E:function(x,A,R){var F=x.getUTCDay();switch(A){case"E":case"EE":case"EEE":return R.day(F,{width:"abbreviated",context:"formatting"});case"EEEEE":return R.day(F,{width:"narrow",context:"formatting"});case"EEEEEE":return R.day(F,{width:"short",context:"formatting"});case"EEEE":default:return R.day(F,{width:"wide",context:"formatting"})}},e:function(x,A,R,F){var j=x.getUTCDay(),G=(j-F.weekStartsOn+8)%7||7;switch(A){case"e":return String(G);case"ee":return(0,u.default)(G,2);case"eo":return R.ordinalNumber(G,{unit:"day"});case"eee":return R.day(j,{width:"abbreviated",context:"formatting"});case"eeeee":return R.day(j,{width:"narrow",context:"formatting"});case"eeeeee":return R.day(j,{width:"short",context:"formatting"});case"eeee":default:return R.day(j,{width:"wide",context:"formatting"})}},c:function(x,A,R,F){var j=x.getUTCDay(),G=(j-F.weekStartsOn+8)%7||7;switch(A){case"c":return String(G);case"cc":return(0,u.default)(G,A.length);case"co":return R.ordinalNumber(G,{unit:"day"});case"ccc":return R.day(j,{width:"abbreviated",context:"standalone"});case"ccccc":return R.day(j,{width:"narrow",context:"standalone"});case"cccccc":return R.day(j,{width:"short",context:"standalone"});case"cccc":default:return R.day(j,{width:"wide",context:"standalone"})}},i:function(x,A,R){var F=x.getUTCDay(),j=F===0?7:F;switch(A){case"i":return String(j);case"ii":return(0,u.default)(j,A.length);case"io":return R.ordinalNumber(j,{unit:"day"});case"iii":return R.day(F,{width:"abbreviated",context:"formatting"});case"iiiii":return R.day(F,{width:"narrow",context:"formatting"});case"iiiiii":return R.day(F,{width:"short",context:"formatting"});case"iiii":default:return R.day(F,{width:"wide",context:"formatting"})}},a:function(x,A,R){var F=x.getUTCHours(),j=F/12>=1?"pm":"am";switch(A){case"a":case"aa":return R.dayPeriod(j,{width:"abbreviated",context:"formatting"});case"aaa":return R.dayPeriod(j,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return R.dayPeriod(j,{width:"narrow",context:"formatting"});case"aaaa":default:return R.dayPeriod(j,{width:"wide",context:"formatting"})}},b:function(x,A,R){var F=x.getUTCHours(),j;switch(F===12?j=d.noon:F===0?j=d.midnight:j=F/12>=1?"pm":"am",A){case"b":case"bb":return R.dayPeriod(j,{width:"abbreviated",context:"formatting"});case"bbb":return R.dayPeriod(j,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return R.dayPeriod(j,{width:"narrow",context:"formatting"});case"bbbb":default:return R.dayPeriod(j,{width:"wide",context:"formatting"})}},B:function(x,A,R){var F=x.getUTCHours(),j;switch(F>=17?j=d.evening:F>=12?j=d.afternoon:F>=4?j=d.morning:j=d.night,A){case"B":case"BB":case"BBB":return R.dayPeriod(j,{width:"abbreviated",context:"formatting"});case"BBBBB":return R.dayPeriod(j,{width:"narrow",context:"formatting"});case"BBBB":default:return R.dayPeriod(j,{width:"wide",context:"formatting"})}},h:function(x,A,R){if(A==="ho"){var F=x.getUTCHours()%12;return F===0&&(F=12),R.ordinalNumber(F,{unit:"hour"})}return m.default.h(x,A)},H:function(x,A,R){return A==="Ho"?R.ordinalNumber(x.getUTCHours(),{unit:"hour"}):m.default.H(x,A)},K:function(x,A,R){var F=x.getUTCHours()%12;return A==="Ko"?R.ordinalNumber(F,{unit:"hour"}):(0,u.default)(F,A.length)},k:function(x,A,R){var F=x.getUTCHours();return F===0&&(F=24),A==="ko"?R.ordinalNumber(F,{unit:"hour"}):(0,u.default)(F,A.length)},m:function(x,A,R){return A==="mo"?R.ordinalNumber(x.getUTCMinutes(),{unit:"minute"}):m.default.m(x,A)},s:function(x,A,R){return A==="so"?R.ordinalNumber(x.getUTCSeconds(),{unit:"second"}):m.default.s(x,A)},S:function(x,A){return m.default.S(x,A)},X:function(x,A,R,F){var j=F._originalDate||x,G=j.getTimezoneOffset();if(G===0)return"Z";switch(A){case"X":return E(G);case"XXXX":case"XX":return b(G);case"XXXXX":case"XXX":default:return b(G,":")}},x:function(x,A,R,F){var j=F._originalDate||x,G=j.getTimezoneOffset();switch(A){case"x":return E(G);case"xxxx":case"xx":return b(G);case"xxxxx":case"xxx":default:return b(G,":")}},O:function(x,A,R,F){var j=F._originalDate||x,G=j.getTimezoneOffset();switch(A){case"O":case"OO":case"OOO":return"GMT"+D(G,":");case"OOOO":default:return"GMT"+b(G,":")}},z:function(x,A,R,F){var j=F._originalDate||x,G=j.getTimezoneOffset();switch(A){case"z":case"zz":case"zzz":return"GMT"+D(G,":");case"zzzz":default:return"GMT"+b(G,":")}},t:function(x,A,R,F){var j=F._originalDate||x,G=Math.floor(j.getTime()/1e3);return(0,u.default)(G,A.length)},T:function(x,A,R,F){var j=F._originalDate||x,G=j.getTime();return(0,u.default)(G,A.length)}};function D(T,x){var A=T>0?"-":"+",R=Math.abs(T),F=Math.floor(R/60),j=R%60;if(j===0)return A+String(F);var G=x||"";return A+String(F)+G+(0,u.default)(j,2)}function E(T,x){if(T%60===0){var A=T>0?"-":"+";return A+(0,u.default)(Math.abs(T)/60,2)}return b(T,x)}function b(T,x){var A=x||"",R=T>0?"-":"+",F=Math.abs(T),j=(0,u.default)(Math.floor(F/60),2),G=(0,u.default)(F%60,2);return R+j+A+G}var M=w;S.default=M,I.exports=S.default},2699:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(7394)),_={y:function(f,u){var m=f.getUTCFullYear(),d=m>0?m:1-m;return(0,L.default)(u==="yy"?d%100:d,u.length)},M:function(f,u){var m=f.getUTCMonth();return u==="M"?String(m+1):(0,L.default)(m+1,2)},d:function(f,u){return(0,L.default)(f.getUTCDate(),u.length)},a:function(f,u){var m=f.getUTCHours()/12>=1?"pm":"am";switch(u){case"a":case"aa":return m.toUpperCase();case"aaa":return m;case"aaaaa":return m[0];case"aaaa":default:return m==="am"?"a.m.":"p.m."}},h:function(f,u){return(0,L.default)(f.getUTCHours()%12||12,u.length)},H:function(f,u){return(0,L.default)(f.getUTCHours(),u.length)},m:function(f,u){return(0,L.default)(f.getUTCMinutes(),u.length)},s:function(f,u){return(0,L.default)(f.getUTCSeconds(),u.length)},S:function(f,u){var m=u.length,d=f.getUTCMilliseconds(),w=Math.floor(d*Math.pow(10,m-3));return(0,L.default)(w,u.length)}},N=_;S.default=N,I.exports=S.default},5209:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var y=function(f,u){switch(f){case"P":return u.date({width:"short"});case"PP":return u.date({width:"medium"});case"PPP":return u.date({width:"long"});case"PPPP":default:return u.date({width:"full"})}},P=function(f,u){switch(f){case"p":return u.time({width:"short"});case"pp":return u.time({width:"medium"});case"ppp":return u.time({width:"long"});case"pppp":default:return u.time({width:"full"})}},L=function(f,u){var m=f.match(/(P+)(p+)?/)||[],d=m[1],w=m[2];if(!w)return y(f,u);var D;switch(d){case"P":D=u.dateTime({width:"short"});break;case"PP":D=u.dateTime({width:"medium"});break;case"PPP":D=u.dateTime({width:"long"});break;case"PPPP":default:D=u.dateTime({width:"full"});break}return D.replace("{{date}}",y(d,u)).replace("{{time}}",P(w,u))},_={p:P,P:L},N=_;S.default=N,I.exports=S.default},3561:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P){var L=new Date(Date.UTC(P.getFullYear(),P.getMonth(),P.getDate(),P.getHours(),P.getMinutes(),P.getSeconds(),P.getMilliseconds()));return L.setUTCFullYear(P.getFullYear()),P.getTime()-L.getTime()}I.exports=S.default},1603:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var L=P(y(1171)),_=P(y(8734)),N=864e5;function g(f){(0,_.default)(1,arguments);var u=(0,L.default)(f),m=u.getTime();u.setUTCMonth(0,1),u.setUTCHours(0,0,0,0);var d=u.getTime(),w=m-d;return Math.floor(w/N)+1}I.exports=S.default},1354:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=u;var L=P(y(1171)),_=P(y(79)),N=P(y(4275)),g=P(y(8734)),f=6048e5;function u(m){(0,g.default)(1,arguments);var d=(0,L.default)(m),w=(0,_.default)(d).getTime()-(0,N.default)(d).getTime();return Math.round(w/f)+1}I.exports=S.default},1370:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var L=P(y(1171)),_=P(y(8734)),N=P(y(79));function g(f){(0,_.default)(1,arguments);var u=(0,L.default)(f),m=u.getUTCFullYear(),d=new Date(0);d.setUTCFullYear(m+1,0,4),d.setUTCHours(0,0,0,0);var w=(0,N.default)(d),D=new Date(0);D.setUTCFullYear(m,0,4),D.setUTCHours(0,0,0,0);var E=(0,N.default)(D);return u.getTime()>=w.getTime()?m+1:u.getTime()>=E.getTime()?m:m-1}I.exports=S.default},623:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=u;var L=P(y(1171)),_=P(y(9209)),N=P(y(4118)),g=P(y(8734)),f=6048e5;function u(m,d){(0,g.default)(1,arguments);var w=(0,L.default)(m),D=(0,_.default)(w,d).getTime()-(0,N.default)(w,d).getTime();return Math.round(D/f)+1}I.exports=S.default},6226:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=u;var L=P(y(1171)),_=P(y(8734)),N=P(y(9209)),g=P(y(2084)),f=y(8729);function u(m,d){var w,D,E,b,M,T,x,A;(0,_.default)(1,arguments);var R=(0,L.default)(m),F=R.getUTCFullYear(),j=(0,f.getDefaultOptions)(),G=(0,g.default)((w=(D=(E=(b=d==null?void 0:d.firstWeekContainsDate)!==null&&b!==void 0?b:d==null||(M=d.locale)===null||M===void 0||(T=M.options)===null||T===void 0?void 0:T.firstWeekContainsDate)!==null&&E!==void 0?E:j.firstWeekContainsDate)!==null&&D!==void 0?D:(x=j.locale)===null||x===void 0||(A=x.options)===null||A===void 0?void 0:A.firstWeekContainsDate)!==null&&w!==void 0?w:1);if(!(G>=1&&G<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var et=new Date(0);et.setUTCFullYear(F+1,0,G),et.setUTCHours(0,0,0,0);var $=(0,N.default)(et,d),X=new Date(0);X.setUTCFullYear(F,0,G),X.setUTCHours(0,0,0,0);var W=(0,N.default)(X,d);return R.getTime()>=$.getTime()?F+1:R.getTime()>=W.getTime()?F:F-1}I.exports=S.default},6736:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.isProtectedDayOfYearToken=L,S.isProtectedWeekYearToken=_,S.throwProtectedError=N;var y=["D","DD"],P=["YY","YYYY"];function L(g){return y.indexOf(g)!==-1}function _(g){return P.indexOf(g)!==-1}function N(g,f,u){if(g==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(f,"`) for formatting years to the input `").concat(u,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(g==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(f,"`) for formatting years to the input `").concat(u,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(g==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(f,"`) for formatting days of the month to the input `").concat(u,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(g==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(f,"`) for formatting days of the month to the input `").concat(u,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}},8734:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P,L){if(L.length<P)throw new TypeError(P+" argument"+(P>1?"s":"")+" required, but only "+L.length+" present")}I.exports=S.default},79:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=N;var L=P(y(1171)),_=P(y(8734));function N(g){(0,_.default)(1,arguments);var f=1,u=(0,L.default)(g),m=u.getUTCDay(),d=(m<f?7:0)+m-f;return u.setUTCDate(u.getUTCDate()-d),u.setUTCHours(0,0,0,0),u}I.exports=S.default},4275:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var L=P(y(1370)),_=P(y(79)),N=P(y(8734));function g(f){(0,N.default)(1,arguments);var u=(0,L.default)(f),m=new Date(0);m.setUTCFullYear(u,0,4),m.setUTCHours(0,0,0,0);var d=(0,_.default)(m);return d}I.exports=S.default},9209:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=f;var L=P(y(1171)),_=P(y(8734)),N=P(y(2084)),g=y(8729);function f(u,m){var d,w,D,E,b,M,T,x;(0,_.default)(1,arguments);var A=(0,g.getDefaultOptions)(),R=(0,N.default)((d=(w=(D=(E=m==null?void 0:m.weekStartsOn)!==null&&E!==void 0?E:m==null||(b=m.locale)===null||b===void 0||(M=b.options)===null||M===void 0?void 0:M.weekStartsOn)!==null&&D!==void 0?D:A.weekStartsOn)!==null&&w!==void 0?w:(T=A.locale)===null||T===void 0||(x=T.options)===null||x===void 0?void 0:x.weekStartsOn)!==null&&d!==void 0?d:0);if(!(R>=0&&R<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var F=(0,L.default)(u),j=F.getUTCDay(),G=(j<R?7:0)+j-R;return F.setUTCDate(F.getUTCDate()-G),F.setUTCHours(0,0,0,0),F}I.exports=S.default},4118:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=u;var L=P(y(6226)),_=P(y(8734)),N=P(y(9209)),g=P(y(2084)),f=y(8729);function u(m,d){var w,D,E,b,M,T,x,A;(0,_.default)(1,arguments);var R=(0,f.getDefaultOptions)(),F=(0,g.default)((w=(D=(E=(b=d==null?void 0:d.firstWeekContainsDate)!==null&&b!==void 0?b:d==null||(M=d.locale)===null||M===void 0||(T=M.options)===null||T===void 0?void 0:T.firstWeekContainsDate)!==null&&E!==void 0?E:R.firstWeekContainsDate)!==null&&D!==void 0?D:(x=R.locale)===null||x===void 0||(A=x.options)===null||A===void 0?void 0:A.firstWeekContainsDate)!==null&&w!==void 0?w:1),j=(0,L.default)(m,d),G=new Date(0);G.setUTCFullYear(j,0,F),G.setUTCHours(0,0,0,0);var et=(0,N.default)(G,d);return et}I.exports=S.default},2084:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P){if(P===null||P===!0||P===!1)return NaN;var L=Number(P);return isNaN(L)?L:L<0?Math.ceil(L):Math.floor(L)}I.exports=S.default},5065:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var L=P(y(2084)),_=P(y(1171)),N=P(y(8734));function g(f,u){(0,N.default)(2,arguments);var m=(0,_.default)(f).getTime(),d=(0,L.default)(u);return new Date(m+d)}I.exports=S.default},5616:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=R;var L=P(y(9989)),_=P(y(3239)),N=P(y(1171)),g=P(y(7100)),f=P(y(5209)),u=P(y(3561)),m=y(6736),d=P(y(2084)),w=P(y(8734)),D=y(8729),E=P(y(7561)),b=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,M=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,T=/^'([^]*?)'?$/,x=/''/g,A=/[a-zA-Z]/;function R(j,G,et){var $,X,W,q,rt,ft,xt,At,Ct,jt,Dt,Et,Ut,oe,xe,Pe,Oe,Le;(0,w.default)(2,arguments);var Mn=String(G),Jt=(0,D.getDefaultOptions)(),Ot=($=(X=et==null?void 0:et.locale)!==null&&X!==void 0?X:Jt.locale)!==null&&$!==void 0?$:E.default,le=(0,d.default)((W=(q=(rt=(ft=et==null?void 0:et.firstWeekContainsDate)!==null&&ft!==void 0?ft:et==null||(xt=et.locale)===null||xt===void 0||(At=xt.options)===null||At===void 0?void 0:At.firstWeekContainsDate)!==null&&rt!==void 0?rt:Jt.firstWeekContainsDate)!==null&&q!==void 0?q:(Ct=Jt.locale)===null||Ct===void 0||(jt=Ct.options)===null||jt===void 0?void 0:jt.firstWeekContainsDate)!==null&&W!==void 0?W:1);if(!(le>=1&&le<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var Ie=(0,d.default)((Dt=(Et=(Ut=(oe=et==null?void 0:et.weekStartsOn)!==null&&oe!==void 0?oe:et==null||(xe=et.locale)===null||xe===void 0||(Pe=xe.options)===null||Pe===void 0?void 0:Pe.weekStartsOn)!==null&&Ut!==void 0?Ut:Jt.weekStartsOn)!==null&&Et!==void 0?Et:(Oe=Jt.locale)===null||Oe===void 0||(Le=Oe.options)===null||Le===void 0?void 0:Le.weekStartsOn)!==null&&Dt!==void 0?Dt:0);if(!(Ie>=0&&Ie<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!Ot.localize)throw new RangeError("locale must contain localize property");if(!Ot.formatLong)throw new RangeError("locale must contain formatLong property");var ce=(0,N.default)(j);if(!(0,L.default)(ce))throw new RangeError("Invalid time value");var _n=(0,u.default)(ce),Be=(0,_.default)(ce,_n),An={firstWeekContainsDate:le,weekStartsOn:Ie,locale:Ot,_originalDate:ce},me=Mn.match(M).map(function(bt){var Xt=bt[0];if(Xt==="p"||Xt==="P"){var he=f.default[Xt];return he(bt,Ot.formatLong)}return bt}).join("").match(b).map(function(bt){if(bt==="''")return"'";var Xt=bt[0];if(Xt==="'")return F(bt);var he=g.default[Xt];if(he)return!(et!=null&&et.useAdditionalWeekYearTokens)&&(0,m.isProtectedWeekYearToken)(bt)&&(0,m.throwProtectedError)(bt,G,String(j)),!(et!=null&&et.useAdditionalDayOfYearTokens)&&(0,m.isProtectedDayOfYearToken)(bt)&&(0,m.throwProtectedError)(bt,G,String(j)),he(Be,bt,Ot.localize,An);if(Xt.match(A))throw new RangeError("Format string contains an unescaped latin alphabet character `"+Xt+"`");return bt}).join("");return me}function F(j){var G=j.match(T);return G?G[1].replace(x,"'"):j}I.exports=S.default},2382:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=N;var L=P(y(8698)),_=P(y(8734));function N(g){return(0,_.default)(1,arguments),g instanceof Date||(0,L.default)(g)==="object"&&Object.prototype.toString.call(g)==="[object Date]"}I.exports=S.default},9989:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var L=P(y(2382)),_=P(y(1171)),N=P(y(8734));function g(f){if((0,N.default)(1,arguments),!(0,L.default)(f)&&typeof f!="number")return!1;var u=(0,_.default)(f);return!isNaN(Number(u))}I.exports=S.default},289:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P){return function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_=L.width?String(L.width):P.defaultWidth,N=P.formats[_]||P.formats[P.defaultWidth];return N}}I.exports=S.default},6245:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P){return function(L,_){var N=_!=null&&_.context?String(_.context):"standalone",g;if(N==="formatting"&&P.formattingValues){var f=P.defaultFormattingWidth||P.defaultWidth,u=_!=null&&_.width?String(_.width):f;g=P.formattingValues[u]||P.formattingValues[f]}else{var m=P.defaultWidth,d=_!=null&&_.width?String(_.width):P.defaultWidth;g=P.values[d]||P.values[m]}var w=P.argumentCallback?P.argumentCallback(L):L;return g[w]}}I.exports=S.default},3421:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(_){return function(N){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},f=g.width,u=f&&_.matchPatterns[f]||_.matchPatterns[_.defaultMatchWidth],m=N.match(u);if(!m)return null;var d=m[0],w=f&&_.parsePatterns[f]||_.parsePatterns[_.defaultParseWidth],D=Array.isArray(w)?L(w,function(M){return M.test(d)}):P(w,function(M){return M.test(d)}),E;E=_.valueCallback?_.valueCallback(D):D,E=g.valueCallback?g.valueCallback(E):E;var b=N.slice(d.length);return{value:E,rest:b}}}function P(_,N){for(var g in _)if(_.hasOwnProperty(g)&&N(_[g]))return g}function L(_,N){for(var g=0;g<_.length;g++)if(N(_[g]))return g}I.exports=S.default},8926:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P){return function(L){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},N=L.match(P.matchPattern);if(!N)return null;var g=N[0],f=L.match(P.parsePattern);if(!f)return null;var u=P.valueCallback?P.valueCallback(f[0]):f[0];u=_.valueCallback?_.valueCallback(u):u;var m=L.slice(g.length);return{value:u,rest:m}}}I.exports=S.default},1924:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var y={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},P=function(N,g,f){var u,m=y[N];return typeof m=="string"?u=m:g===1?u=m.one:u=m.other.replace("{{count}}",g.toString()),f!=null&&f.addSuffix?f.comparison&&f.comparison>0?"in "+u:u+" ago":u},L=P;S.default=L,I.exports=S.default},5062:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(289)),_={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},N={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},g={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},f={date:(0,L.default)({formats:_,defaultWidth:"full"}),time:(0,L.default)({formats:N,defaultWidth:"full"}),dateTime:(0,L.default)({formats:g,defaultWidth:"full"})},u=f;S.default=u,I.exports=S.default},5102:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var y={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},P=function(N,g,f,u){return y[N]},L=P;S.default=L,I.exports=S.default},7839:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(6245)),_={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},N={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},g={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},f={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},u={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},m={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},d=function(b,M){var T=Number(b),x=T%100;if(x>20||x<10)switch(x%10){case 1:return T+"st";case 2:return T+"nd";case 3:return T+"rd"}return T+"th"},w={ordinalNumber:d,era:(0,L.default)({values:_,defaultWidth:"wide"}),quarter:(0,L.default)({values:N,defaultWidth:"wide",argumentCallback:function(b){return b-1}}),month:(0,L.default)({values:g,defaultWidth:"wide"}),day:(0,L.default)({values:f,defaultWidth:"wide"}),dayPeriod:(0,L.default)({values:u,defaultWidth:"wide",formattingValues:m,defaultFormattingWidth:"wide"})},D=w;S.default=D,I.exports=S.default},9796:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(3421)),_=P(y(8926)),N=/^(\d+)(th|st|nd|rd)?/i,g=/\d+/i,f={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},u={any:[/^b/i,/^(a|c)/i]},m={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},d={any:[/1/i,/2/i,/3/i,/4/i]},w={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},D={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},E={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},b={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},M={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},T={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},x={ordinalNumber:(0,_.default)({matchPattern:N,parsePattern:g,valueCallback:function(F){return parseInt(F,10)}}),era:(0,L.default)({matchPatterns:f,defaultMatchWidth:"wide",parsePatterns:u,defaultParseWidth:"any"}),quarter:(0,L.default)({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(F){return F+1}}),month:(0,L.default)({matchPatterns:w,defaultMatchWidth:"wide",parsePatterns:D,defaultParseWidth:"any"}),day:(0,L.default)({matchPatterns:E,defaultMatchWidth:"wide",parsePatterns:b,defaultParseWidth:"any"}),dayPeriod:(0,L.default)({matchPatterns:M,defaultMatchWidth:"any",parsePatterns:T,defaultParseWidth:"any"})},A=x;S.default=A,I.exports=S.default},2512:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var L=P(y(1924)),_=P(y(5062)),N=P(y(5102)),g=P(y(7839)),f=P(y(9796)),u={code:"en-US",formatDistance:L.default,formatLong:_.default,formatRelative:N.default,localize:g.default,match:f.default,options:{weekStartsOn:0,firstWeekContainsDate:1}},m=u;S.default=m,I.exports=S.default},3239:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var L=P(y(5065)),_=P(y(8734)),N=P(y(2084));function g(f,u){(0,_.default)(2,arguments);var m=(0,N.default)(u);return(0,L.default)(f,-m)}I.exports=S.default},1171:(I,S,y)=>{"use strict";var P=y(4836).default;Object.defineProperty(S,"__esModule",{value:!0}),S.default=N;var L=P(y(8698)),_=P(y(8734));function N(g){(0,_.default)(1,arguments);var f=Object.prototype.toString.call(g);return g instanceof Date||(0,L.default)(g)==="object"&&f==="[object Date]"?new Date(g.getTime()):typeof g=="number"||f==="[object Number]"?new Date(g):((typeof g=="string"||f==="[object String]")&&typeof console!="undefined"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}I.exports=S.default},5171:I=>{I.exports=function(y){return!y||typeof y=="string"?!1:y instanceof Array||Array.isArray(y)||y.length>=0&&(y.splice instanceof Function||Object.getOwnPropertyDescriptor(y,y.length-1)&&y.constructor.name!=="String")}},6851:(I,S,y)=>{"use strict";var P=y(5171),L=Array.prototype.concat,_=Array.prototype.slice,N=I.exports=function(f){for(var u=[],m=0,d=f.length;m<d;m++){var w=f[m];P(w)?u=L.call(u,_.call(w)):u.push(w)}return u};N.wrap=function(g){return function(){return g(N(arguments))}}},4836:I=>{function S(y){return y&&y.__esModule?y:{default:y}}I.exports=S,I.exports.__esModule=!0,I.exports.default=I.exports},8698:I=>{function S(y){"@babel/helpers - typeof";return I.exports=S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(P){return typeof P}:function(P){return P&&typeof Symbol=="function"&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P},I.exports.__esModule=!0,I.exports.default=I.exports,S(y)}I.exports=S,I.exports.__esModule=!0,I.exports.default=I.exports},5721:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(P,L,_,N,g,f,u){var m=new Date(0);return m.setUTCFullYear(P,L,_),m.setUTCHours(N,g,f,u),m}I.exports=S.default},5855:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(N,g,f){var u=_(N,f.timeZone,f.locale);return u.formatToParts?P(u,g):L(u,g)}function P(N,g){for(var f=N.formatToParts(g),u=f.length-1;u>=0;--u)if(f[u].type==="timeZoneName")return f[u].value}function L(N,g){var f=N.format(g).replace(/\u200E/g,""),u=/ [\w-+ ]+$/.exec(f);return u?u[0].substr(1):""}function _(N,g,f){if(f&&!f.code)throw new Error("date-fns-tz error: Please set a language code on the locale object imported from date-fns, e.g. `locale.code = 'en-US'`");return new Intl.DateTimeFormat(f?[f.code,"en-US"]:void 0,{timeZone:g,timeZoneName:N})}I.exports=S.default},2734:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=u;var P=_(y(2712)),L=_(y(5721));function _(M){return M&&M.__esModule?M:{default:M}}var N=36e5,g=6e4,f={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-]\d{2}):?(\d{2})$/};function u(M,T,x){var A,R;if(!M||(A=f.timezoneZ.exec(M),A))return 0;var F;if(A=f.timezoneHH.exec(M),A)return F=parseInt(A[1],10),D(F)?-(F*N):NaN;if(A=f.timezoneHHMM.exec(M),A){F=parseInt(A[1],10);var j=parseInt(A[2],10);return D(F,j)?(R=Math.abs(F)*N+j*g,F>0?-R:R):NaN}if(b(M)){T=new Date(T||Date.now());var G=x?T:m(T),et=d(G,M),$=x?et:w(T,et,M);return-$}return NaN}function m(M){return(0,L.default)(M.getFullYear(),M.getMonth(),M.getDate(),M.getHours(),M.getMinutes(),M.getSeconds(),M.getMilliseconds())}function d(M,T){var x=(0,P.default)(M,T),A=(0,L.default)(x[0],x[1]-1,x[2],x[3]%24,x[4],x[5],0).getTime(),R=M.getTime(),F=R%1e3;return R-=F>=0?F:1e3+F,A-R}function w(M,T,x){var A=M.getTime(),R=A-T,F=d(new Date(R),x);if(T===F)return T;R-=F-T;var j=d(new Date(R),x);return F===j?F:Math.max(F,j)}function D(M,T){return-23<=M&&M<=23&&(T==null||0<=T&&T<=59)}var E={};function b(M){if(E[M])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:M}),E[M]=!0,!0}catch(T){return!1}}I.exports=S.default},7048:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var y=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,P=y;S.default=P,I.exports=S.default},2712:(I,S)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=y;function y(f,u){var m=g(u);return m.formatToParts?L(m,f):_(m,f)}var P={year:0,month:1,day:2,hour:3,minute:4,second:5};function L(f,u){try{for(var m=f.formatToParts(u),d=[],w=0;w<m.length;w++){var D=P[m[w].type];D>=0&&(d[D]=parseInt(m[w].value,10))}return d}catch(E){if(E instanceof RangeError)return[NaN];throw E}}function _(f,u){var m=f.format(u).replace(/\u200E/g,""),d=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(m);return[d[3],d[1],d[2],d[4],d[5],d[6]]}var N={};function g(f){if(!N[f]){var u=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:"America/New_York",year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),m=u==="06/25/2014, 00:00:00"||u==="\u200E06\u200E/\u200E25\u200E/\u200E2014\u200E \u200E00\u200E:\u200E00\u200E:\u200E00";N[f]=m?new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:f,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:f,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return N[f]}I.exports=S.default},3826:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=void 0;var P=_(y(5855)),L=_(y(2734));function _(E){return E&&E.__esModule?E:{default:E}}var N=60*1e3,g={X:function(E,b,M,T){var x=f(T.timeZone,T._originalDate||E);if(x===0)return"Z";switch(b){case"X":return d(x);case"XXXX":case"XX":return m(x);case"XXXXX":case"XXX":default:return m(x,":")}},x:function(E,b,M,T){var x=f(T.timeZone,T._originalDate||E);switch(b){case"x":return d(x);case"xxxx":case"xx":return m(x);case"xxxxx":case"xxx":default:return m(x,":")}},O:function(E,b,M,T){var x=f(T.timeZone,T._originalDate||E);switch(b){case"O":case"OO":case"OOO":return"GMT"+w(x,":");case"OOOO":default:return"GMT"+m(x,":")}},z:function(E,b,M,T){var x=T._originalDate||E;switch(b){case"z":case"zz":case"zzz":return(0,P.default)("short",x,T);case"zzzz":default:return(0,P.default)("long",x,T)}}};function f(E,b){var M=E?(0,L.default)(E,b,!0)/N:b.getTimezoneOffset();if(Number.isNaN(M))throw new RangeError("Invalid time zone specified: "+E);return M}function u(E,b){for(var M=E<0?"-":"",T=Math.abs(E).toString();T.length<b;)T="0"+T;return M+T}function m(E,b){var M=b||"",T=E>0?"-":"+",x=Math.abs(E),A=u(Math.floor(x/60),2),R=u(Math.floor(x%60),2);return T+A+M+R}function d(E,b){if(E%60===0){var M=E>0?"-":"+";return M+u(Math.abs(E)/60,2)}return m(E,b)}function w(E,b){var M=E>0?"-":"+",T=Math.abs(E),x=Math.floor(T/60),A=T%60;if(A===0)return M+String(x);var R=b||"";return M+String(x)+R+u(A,2)}var D=g;S.default=D,I.exports=S.default},6558:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=f;var P=N(y(5616)),L=N(y(3826)),_=N(y(1476));function N(u){return u&&u.__esModule?u:{default:u}}var g=/([xXOz]+)|''|'(''|[^'])+('|$)/g;function f(u,m,d){var w=String(m),D=d||{},E=w.match(g);if(E){var b=(0,_.default)(u,D);w=E.reduce(function(M,T){if(T[0]==="'")return M;var x=M.indexOf(T),A=M[x-1]==="'",R=M.replace(T,"'"+L.default[T[0]](b,T,null,D)+"'");return A?R.substring(0,x-1)+R.substring(x+1):R},w)}return(0,P.default)(u,w,D)}I.exports=S.default},6645:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=g;var P=N(y(6420)),L=N(y(6558)),_=N(y(1132));function N(f){return f&&f.__esModule?f:{default:f}}function g(f,u,m,d){var w=(0,P.default)(d);return w.timeZone=u,(0,L.default)((0,_.default)(f,u),m,w)}I.exports=S.default},4992:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=_;var P=L(y(2734));function L(N){return N&&N.__esModule?N:{default:N}}function _(N,g){return-(0,P.default)(N,g)}I.exports=S.default},722:(I,S,y)=>{"use strict";I.exports={format:y(6558),formatInTimeZone:y(6645),getTimezoneOffset:y(4992),toDate:y(1476),utcToZonedTime:y(1132),zonedTimeToUtc:y(8516)}},1476:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=w;var P=g(y(2084)),L=g(y(3561)),_=g(y(2734)),N=g(y(7048));function g($){return $&&$.__esModule?$:{default:$}}var f=36e5,u=6e4,m=2,d={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:N.default};function w($,X){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if($===null)return new Date(NaN);var W=X||{},q=W.additionalDigits==null?m:(0,P.default)(W.additionalDigits);if(q!==2&&q!==1&&q!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if($ instanceof Date||typeof $=="object"&&Object.prototype.toString.call($)==="[object Date]")return new Date($.getTime());if(typeof $=="number"||Object.prototype.toString.call($)==="[object Number]")return new Date($);if(!(typeof $=="string"||Object.prototype.toString.call($)==="[object String]"))return new Date(NaN);var rt=D($),ft=E(rt.date,q),xt=ft.year,At=ft.restDateString,Ct=b(At,xt);if(isNaN(Ct))return new Date(NaN);if(Ct){var jt=Ct.getTime(),Dt=0,Et;if(rt.time&&(Dt=M(rt.time),isNaN(Dt)))return new Date(NaN);if(rt.timeZone||W.timeZone){if(Et=(0,_.default)(rt.timeZone||W.timeZone,new Date(jt+Dt)),isNaN(Et))return new Date(NaN)}else Et=(0,L.default)(new Date(jt+Dt)),Et=(0,L.default)(new Date(jt+Dt+Et));return new Date(jt+Dt+Et)}else return new Date(NaN)}function D($){var X={},W=d.dateTimePattern.exec($),q;if(W?(X.date=W[1],q=W[3]):(W=d.datePattern.exec($),W?(X.date=W[1],q=W[2]):(X.date=null,q=$)),q){var rt=d.timeZone.exec(q);rt?(X.time=q.replace(rt[1],""),X.timeZone=rt[1].trim()):X.time=q}return X}function E($,X){var W=d.YYY[X],q=d.YYYYY[X],rt;if(rt=d.YYYY.exec($)||q.exec($),rt){var ft=rt[1];return{year:parseInt(ft,10),restDateString:$.slice(ft.length)}}if(rt=d.YY.exec($)||W.exec($),rt){var xt=rt[1];return{year:parseInt(xt,10)*100,restDateString:$.slice(xt.length)}}return{year:null}}function b($,X){if(X===null)return null;var W,q,rt,ft;if($.length===0)return q=new Date(0),q.setUTCFullYear(X),q;if(W=d.MM.exec($),W)return q=new Date(0),rt=parseInt(W[1],10)-1,F(X,rt)?(q.setUTCFullYear(X,rt),q):new Date(NaN);if(W=d.DDD.exec($),W){q=new Date(0);var xt=parseInt(W[1],10);return j(X,xt)?(q.setUTCFullYear(X,0,xt),q):new Date(NaN)}if(W=d.MMDD.exec($),W){q=new Date(0),rt=parseInt(W[1],10)-1;var At=parseInt(W[2],10);return F(X,rt,At)?(q.setUTCFullYear(X,rt,At),q):new Date(NaN)}if(W=d.Www.exec($),W)return ft=parseInt(W[1],10)-1,G(X,ft)?T(X,ft):new Date(NaN);if(W=d.WwwD.exec($),W){ft=parseInt(W[1],10)-1;var Ct=parseInt(W[2],10)-1;return G(X,ft,Ct)?T(X,ft,Ct):new Date(NaN)}return null}function M($){var X,W,q;if(X=d.HH.exec($),X)return W=parseFloat(X[1].replace(",",".")),et(W)?W%24*f:NaN;if(X=d.HHMM.exec($),X)return W=parseInt(X[1],10),q=parseFloat(X[2].replace(",",".")),et(W,q)?W%24*f+q*u:NaN;if(X=d.HHMMSS.exec($),X){W=parseInt(X[1],10),q=parseInt(X[2],10);var rt=parseFloat(X[3].replace(",","."));return et(W,q,rt)?W%24*f+q*u+rt*1e3:NaN}return null}function T($,X,W){X=X||0,W=W||0;var q=new Date(0);q.setUTCFullYear($,0,4);var rt=q.getUTCDay()||7,ft=X*7+W+1-rt;return q.setUTCDate(q.getUTCDate()+ft),q}var x=[31,28,31,30,31,30,31,31,30,31,30,31],A=[31,29,31,30,31,30,31,31,30,31,30,31];function R($){return $%400===0||$%4===0&&$%100!==0}function F($,X,W){if(X<0||X>11)return!1;if(W!=null){if(W<1)return!1;var q=R($);if(q&&W>A[X]||!q&&W>x[X])return!1}return!0}function j($,X){if(X<1)return!1;var W=R($);return!(W&&X>366||!W&&X>365)}function G($,X,W){return!(X<0||X>52||W!=null&&(W<0||W>6))}function et($,X,W){return!($!=null&&($<0||$>=25)||X!=null&&(X<0||X>=60)||W!=null&&(W<0||W>=60))}I.exports=S.default},1132:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=N;var P=_(y(2734)),L=_(y(1476));function _(g){return g&&g.__esModule?g:{default:g}}function N(g,f,u){var m=(0,L.default)(g,u),d=(0,P.default)(f,m,!0),w=new Date(m.getTime()-d),D=new Date(0);return D.setFullYear(w.getUTCFullYear(),w.getUTCMonth(),w.getUTCDate()),D.setHours(w.getUTCHours(),w.getUTCMinutes(),w.getUTCSeconds(),w.getUTCMilliseconds()),D}I.exports=S.default},8516:(I,S,y)=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0}),S.default=u;var P=f(y(6420)),L=f(y(1476)),_=f(y(7048)),N=f(y(2734)),g=f(y(5721));function f(m){return m&&m.__esModule?m:{default:m}}function u(m,d,w){if(typeof m=="string"&&!m.match(_.default)){var D=(0,P.default)(w);return D.timeZone=d,(0,L.default)(m,D)}var E=(0,L.default)(m,w),b=(0,g.default)(E.getFullYear(),E.getMonth(),E.getDate(),E.getHours(),E.getMinutes(),E.getSeconds(),E.getMilliseconds()).getTime(),M=(0,N.default)(d,new Date(b));return new Date(b+M)}I.exports=S.default}},xs={};function _t(I){var S=xs[I];if(S!==void 0)return S.exports;var y=xs[I]={exports:{}};return La[I](y,y.exports,_t),y.exports}_t.n=I=>{var S=I&&I.__esModule?()=>I.default:()=>I;return _t.d(S,{a:S}),S},_t.d=(I,S)=>{for(var y in S)_t.o(S,y)&&!_t.o(I,y)&&Object.defineProperty(I,y,{enumerable:!0,get:S[y]})},_t.o=(I,S)=>Object.prototype.hasOwnProperty.call(I,S),_t.r=I=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(I,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(I,"__esModule",{value:!0})};var Tn={};(()=>{"use strict";_t.r(Tn),_t.d(Tn,{Chart:()=>Ss,createChart:()=>Oa});function I(n){return typeof n=="function"}function S(n){return I(n==null?void 0:n.lift)}function y(n){return function(t){if(S(t))return t.lift(function(e){try{return n(e,this)}catch(s){this.error(s)}});throw new TypeError("Unable to lift unknown Observable type")}}var P=function(n,t){return P=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,s){e.__proto__=s}||function(e,s){for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])},P(n,t)};function L(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");P(n,t);function e(){this.constructor=n}n.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}var _=function(){return _=Object.assign||function(t){for(var e,s=1,r=arguments.length;s<r;s++){e=arguments[s];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},_.apply(this,arguments)};function N(n,t){var e={};for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&t.indexOf(s)<0&&(e[s]=n[s]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(n);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(n,s[r])&&(e[s[r]]=n[s[r]]);return e}function g(n,t,e,s){var r=arguments.length,i=r<3?t:s===null?s=Object.getOwnPropertyDescriptor(t,e):s,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(n,t,e,s);else for(var o=n.length-1;o>=0;o--)(a=n[o])&&(i=(r<3?a(i):r>3?a(t,e,i):a(t,e))||i);return r>3&&i&&Object.defineProperty(t,e,i),i}function f(n,t){return function(e,s){t(e,s,n)}}function u(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)}function m(n,t,e,s){function r(i){return i instanceof e?i:new e(function(a){a(i)})}return new(e||(e=Promise))(function(i,a){function o(h){try{c(s.next(h))}catch(v){a(v)}}function l(h){try{c(s.throw(h))}catch(v){a(v)}}function c(h){h.done?i(h.value):r(h.value).then(o,l)}c((s=s.apply(n,t||[])).next())})}function d(n,t){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},s,r,i,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(c){return function(h){return l([c,h])}}function l(c){if(s)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(e=0)),e;)try{if(s=1,r&&(i=c[0]&2?r.return:c[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,c[1])).done)return i;switch(r=0,i&&(c=[c[0]&2,i.value]),c[0]){case 0:case 1:i=c;break;case 4:return e.label++,{value:c[1],done:!1};case 5:e.label++,r=c[1],c=[0];continue;case 7:c=e.ops.pop(),e.trys.pop();continue;default:if(i=e.trys,!(i=i.length>0&&i[i.length-1])&&(c[0]===6||c[0]===2)){e=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]<i[3])){e.label=c[1];break}if(c[0]===6&&e.label<i[1]){e.label=i[1],i=c;break}if(i&&e.label<i[2]){e.label=i[2],e.ops.push(c);break}i[2]&&e.ops.pop(),e.trys.pop();continue}c=t.call(n,e)}catch(h){c=[6,h],r=0}finally{s=i=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}var w=Object.create?function(n,t,e,s){s===void 0&&(s=e);var r=Object.getOwnPropertyDescriptor(t,e);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(n,s,r)}:function(n,t,e,s){s===void 0&&(s=e),n[s]=t[e]};function D(n,t){for(var e in n)e!=="default"&&!Object.prototype.hasOwnProperty.call(t,e)&&w(t,n,e)}function E(n){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&n[t],s=0;if(e)return e.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&s>=n.length&&(n=void 0),{value:n&&n[s++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function b(n,t){var e=typeof Symbol=="function"&&n[Symbol.iterator];if(!e)return n;var s=e.call(n),r,i=[],a;try{for(;(t===void 0||t-- >0)&&!(r=s.next()).done;)i.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(e=s.return)&&e.call(s)}finally{if(a)throw a.error}}return i}function M(){for(var n=[],t=0;t<arguments.length;t++)n=n.concat(b(arguments[t]));return n}function T(){for(var n=0,t=0,e=arguments.length;t<e;t++)n+=arguments[t].length;for(var s=Array(n),r=0,t=0;t<e;t++)for(var i=arguments[t],a=0,o=i.length;a<o;a++,r++)s[r]=i[a];return s}function x(n,t,e){if(e||arguments.length===2)for(var s=0,r=t.length,i;s<r;s++)(i||!(s in t))&&(i||(i=Array.prototype.slice.call(t,0,s)),i[s]=t[s]);return n.concat(i||Array.prototype.slice.call(t))}function A(n){return this instanceof A?(this.v=n,this):new A(n)}function R(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=e.apply(n,t||[]),r,i=[];return r={},a("next"),a("throw"),a("return"),r[Symbol.asyncIterator]=function(){return this},r;function a(p){s[p]&&(r[p]=function(C){return new Promise(function(O,B){i.push([p,C,O,B])>1||o(p,C)})})}function o(p,C){try{l(s[p](C))}catch(O){v(i[0][3],O)}}function l(p){p.value instanceof A?Promise.resolve(p.value.v).then(c,h):v(i[0][2],p)}function c(p){o("next",p)}function h(p){o("throw",p)}function v(p,C){p(C),i.shift(),i.length&&o(i[0][0],i[0][1])}}function F(n){var t,e;return t={},s("next"),s("throw",function(r){throw r}),s("return"),t[Symbol.iterator]=function(){return this},t;function s(r,i){t[r]=n[r]?function(a){return(e=!e)?{value:A(n[r](a)),done:r==="return"}:i?i(a):a}:i}}function j(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=n[Symbol.asyncIterator],e;return t?t.call(n):(n=typeof E=="function"?E(n):n[Symbol.iterator](),e={},s("next"),s("throw"),s("return"),e[Symbol.asyncIterator]=function(){return this},e);function s(i){e[i]=n[i]&&function(a){return new Promise(function(o,l){a=n[i](a),r(o,l,a.done,a.value)})}}function r(i,a,o,l){Promise.resolve(l).then(function(c){i({value:c,done:o})},a)}}function G(n,t){return Object.defineProperty?Object.defineProperty(n,"raw",{value:t}):n.raw=t,n}var et=Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t};function $(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.prototype.hasOwnProperty.call(n,e)&&w(t,n,e);return et(t,n),t}function X(n){return n&&n.__esModule?n:{default:n}}function W(n,t,e,s){if(e==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?n!==t||!s:!t.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?s:e==="a"?s.call(n):s?s.value:t.get(n)}function q(n,t,e,s,r){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?n!==t||!r:!t.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?r.call(n,e):r?r.value=e:t.set(n,e),e}function rt(n,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?t===n:n.has(t)}function ft(n){var t=function(s){Error.call(s),s.stack=new Error().stack},e=n(t);return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var xt=ft(function(n){return function(e){n(this),this.message=e?e.length+` errors occurred during unsubscription:
7
+ `+e.map(function(s,r){return r+1+") "+s.toString()}).join(`
8
+ `):"",this.name="UnsubscriptionError",this.errors=e}});function At(n,t){if(n){var e=n.indexOf(t);0<=e&&n.splice(e,1)}}var Ct=function(){function n(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return n.prototype.unsubscribe=function(){var t,e,s,r,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var o=E(a),l=o.next();!l.done;l=o.next()){var c=l.value;c.remove(this)}}catch(B){t={error:B}}finally{try{l&&!l.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}else a.remove(this);var h=this.initialTeardown;if(I(h))try{h()}catch(B){i=B instanceof xt?B.errors:[B]}var v=this._finalizers;if(v){this._finalizers=null;try{for(var p=E(v),C=p.next();!C.done;C=p.next()){var O=C.value;try{Et(O)}catch(B){i=i!=null?i:[],B instanceof xt?i=x(x([],b(i)),b(B.errors)):i.push(B)}}}catch(B){s={error:B}}finally{try{C&&!C.done&&(r=p.return)&&r.call(p)}finally{if(s)throw s.error}}}if(i)throw new xt(i)}},n.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)Et(t);else{if(t instanceof n){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(t)}},n.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},n.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},n.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&At(e,t)},n.prototype.remove=function(t){var e=this._finalizers;e&&At(e,t),t instanceof n&&t._removeParent(this)},n.EMPTY=function(){var t=new n;return t.closed=!0,t}(),n}(),jt=Ct.EMPTY;function Dt(n){return n instanceof Ct||n&&"closed"in n&&I(n.remove)&&I(n.add)&&I(n.unsubscribe)}function Et(n){I(n)?n():n.unsubscribe()}var Ut={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},oe={setTimeout:function(n,t){for(var e=[],s=2;s<arguments.length;s++)e[s-2]=arguments[s];var r=oe.delegate;return r!=null&&r.setTimeout?r.setTimeout.apply(r,x([n,t],b(e))):setTimeout.apply(void 0,x([n,t],b(e)))},clearTimeout:function(n){var t=oe.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(n)},delegate:void 0};function xe(n){oe.setTimeout(function(){var t=Ut.onUnhandledError;if(t)t(n);else throw n})}function Pe(){}var Oe=function(){return Jt("C",void 0,void 0)}();function Le(n){return Jt("E",void 0,n)}function Mn(n){return Jt("N",n,void 0)}function Jt(n,t,e){return{kind:n,value:t,error:e}}var Ot=null;function le(n){if(Ut.useDeprecatedSynchronousErrorHandling){var t=!Ot;if(t&&(Ot={errorThrown:!1,error:null}),n(),t){var e=Ot,s=e.errorThrown,r=e.error;if(Ot=null,s)throw r}}else n()}function Ie(n){Ut.useDeprecatedSynchronousErrorHandling&&Ot&&(Ot.errorThrown=!0,Ot.error=n)}var ce=function(n){L(t,n);function t(e){var s=n.call(this)||this;return s.isStopped=!1,e?(s.destination=e,Dt(e)&&e.add(s)):s.destination=Ia,s}return t.create=function(e,s,r){return new me(e,s,r)},t.prototype.next=function(e){this.isStopped?he(Mn(e),this):this._next(e)},t.prototype.error=function(e){this.isStopped?he(Le(e),this):(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped?he(Oe,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,n.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Ct),_n=Function.prototype.bind;function Be(n,t){return _n.call(n,t)}var An=function(){function n(t){this.partialObserver=t}return n.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(s){bt(s)}},n.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(s){bt(s)}else bt(t)},n.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(e){bt(e)}},n}(),me=function(n){L(t,n);function t(e,s,r){var i=n.call(this)||this,a;if(I(e)||!e)a={next:e!=null?e:void 0,error:s!=null?s:void 0,complete:r!=null?r:void 0};else{var o;i&&Ut.useDeprecatedNextContext?(o=Object.create(e),o.unsubscribe=function(){return i.unsubscribe()},a={next:e.next&&Be(e.next,o),error:e.error&&Be(e.error,o),complete:e.complete&&Be(e.complete,o)}):a=e}return i.destination=new An(a),i}return t}(ce);function bt(n){Ut.useDeprecatedSynchronousErrorHandling?Ie(n):xe(n)}function Xt(n){throw n}function he(n,t){var e=Ut.onStoppedNotification;e&&oe.setTimeout(function(){return e(n,t)})}var Ia={closed:!0,next:Pe,error:Xt,complete:Pe};function Wt(n,t,e,s,r){return new Ba(n,t,e,s,r)}var Ba=function(n){L(t,n);function t(e,s,r,i,a,o){var l=n.call(this,e)||this;return l.onFinalize=a,l.shouldUnsubscribe=o,l._next=s?function(c){try{s(c)}catch(h){e.error(h)}}:n.prototype._next,l._error=i?function(c){try{i(c)}catch(h){e.error(h)}finally{this.unsubscribe()}}:n.prototype._error,l._complete=r?function(){try{r()}catch(c){e.error(c)}finally{this.unsubscribe()}}:n.prototype._complete,l}return t.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var s=this.closed;n.prototype.unsubscribe.call(this),!s&&((e=this.onFinalize)===null||e===void 0||e.call(this))}},t}(ce);function yt(n,t){return y(function(e,s){var r=0;e.subscribe(Wt(s,function(i){s.next(n.call(t,i,r++))}))})}var Ps=function(n){return n&&typeof n.length=="number"&&typeof n!="function"};function Ts(n){return I(n==null?void 0:n.then)}var Dn=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Te(n){return n}function ug(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return Ms(n)}function Ms(n){return n.length===0?Te:n.length===1?n[0]:function(e){return n.reduce(function(s,r){return r(s)},e)}}var Pt=function(){function n(t){t&&(this._subscribe=t)}return n.prototype.lift=function(t){var e=new n;return e.source=this,e.operator=t,e},n.prototype.subscribe=function(t,e,s){var r=this,i=Fa(t)?t:new me(t,e,s);return le(function(){var a=r,o=a.operator,l=a.source;i.add(o?o.call(i,l):l?r._subscribe(i):r._trySubscribe(i))}),i},n.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},n.prototype.forEach=function(t,e){var s=this;return e=_s(e),new e(function(r,i){var a=new me({next:function(o){try{t(o)}catch(l){i(l),a.unsubscribe()}},error:i,complete:r});s.subscribe(a)})},n.prototype._subscribe=function(t){var e;return(e=this.source)===null||e===void 0?void 0:e.subscribe(t)},n.prototype[Dn]=function(){return this},n.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Ms(t)(this)},n.prototype.toPromise=function(t){var e=this;return t=_s(t),new t(function(s,r){var i;e.subscribe(function(a){return i=a},function(a){return r(a)},function(){return s(i)})})},n.create=function(t){return new n(t)},n}();function _s(n){var t;return(t=n!=null?n:Ut.Promise)!==null&&t!==void 0?t:Promise}function Ra(n){return n&&I(n.next)&&I(n.error)&&I(n.complete)}function Fa(n){return n&&n instanceof ce||Ra(n)&&Dt(n)}function As(n){return I(n[Dn])}function Ds(n){return Symbol.asyncIterator&&I(n==null?void 0:n[Symbol.asyncIterator])}function Es(n){return new TypeError("You provided "+(n!==null&&typeof n=="object"?"an invalid object":"'"+n+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ha(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Os=Ha();function Ls(n){return I(n==null?void 0:n[Os])}function Is(n){return R(this,arguments,function(){var e,s,r,i;return d(this,function(a){switch(a.label){case 0:e=n.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,A(e.read())];case 3:return s=a.sent(),r=s.value,i=s.done,i?[4,A(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,A(r)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function Bs(n){return I(n==null?void 0:n.getReader)}function Qt(n){if(n instanceof Pt)return n;if(n!=null){if(As(n))return Ya(n);if(Ps(n))return Na(n);if(Ts(n))return ka(n);if(Ds(n))return Rs(n);if(Ls(n))return ja(n);if(Bs(n))return Ua(n)}throw Es(n)}function Ya(n){return new Pt(function(t){var e=n[Dn]();if(I(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Na(n){return new Pt(function(t){for(var e=0;e<n.length&&!t.closed;e++)t.next(n[e]);t.complete()})}function ka(n){return new Pt(function(t){n.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,xe)})}function ja(n){return new Pt(function(t){var e,s;try{for(var r=E(n),i=r.next();!i.done;i=r.next()){var a=i.value;if(t.next(a),t.closed)return}}catch(o){e={error:o}}finally{try{i&&!i.done&&(s=r.return)&&s.call(r)}finally{if(e)throw e.error}}t.complete()})}function Rs(n){return new Pt(function(t){Wa(n,t).catch(function(e){return t.error(e)})})}function Ua(n){return Rs(Is(n))}function Wa(n,t){var e,s,r,i;return m(this,void 0,void 0,function(){var a,o;return d(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),e=j(n),l.label=1;case 1:return[4,e.next()];case 2:if(s=l.sent(),!!s.done)return[3,4];if(a=s.value,t.next(a),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return o=l.sent(),r={error:o},[3,11];case 6:return l.trys.push([6,,9,10]),s&&!s.done&&(i=e.return)?[4,i.call(e)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(r)throw r.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function qt(n,t,e,s,r){s===void 0&&(s=0),r===void 0&&(r=!1);var i=t.schedule(function(){e(),r?n.add(this.schedule(null,s)):this.unsubscribe()},s);if(n.add(i),!r)return i}function za(n,t,e,s,r,i,a,o){var l=[],c=0,h=0,v=!1,p=function(){v&&!l.length&&!c&&t.complete()},C=function(B){return c<s?O(B):l.push(B)},O=function(B){i&&t.next(B),c++;var Y=!1;Qt(e(B,h++)).subscribe(Wt(t,function(k){r==null||r(k),i?C(k):t.next(k)},function(){Y=!0},void 0,function(){if(Y)try{c--;for(var k=function(){var z=l.shift();a?qt(t,a,function(){return O(z)}):O(z)};l.length&&c<s;)k();p()}catch(z){t.error(z)}}))};return n.subscribe(Wt(t,C,function(){v=!0,p()})),function(){o==null||o()}}function Fs(n,t,e){return e===void 0&&(e=1/0),I(t)?Fs(function(s,r){return yt(function(i,a){return t(s,i,r,a)})(Qt(n(s,r)))},e):(typeof t=="number"&&(e=t),y(function(s,r){return za(s,r,n,e)}))}function Hs(n){return n===void 0&&(n=1/0),Fs(Te,n)}var Ys=new Pt(function(n){return n.complete()});function fg(n){return n?Xa(n):Ys}function Xa(n){return new Observable(function(t){return n.schedule(function(){return t.complete()})})}function Ns(n){return n&&I(n.schedule)}function En(n){return n[n.length-1]}function Va(n){return I(En(n))?n.pop():void 0}function Ze(n){return Ns(En(n))?n.pop():void 0}function Ga(n,t){return typeof En(n)=="number"?n.pop():t}function ks(n,t){return t===void 0&&(t=0),y(function(e,s){e.subscribe(Wt(s,function(r){return qt(s,n,function(){return s.next(r)},t)},function(){return qt(s,n,function(){return s.complete()},t)},function(r){return qt(s,n,function(){return s.error(r)},t)}))})}function js(n,t){return t===void 0&&(t=0),y(function(e,s){s.add(n.schedule(function(){return e.subscribe(s)},t))})}function $a(n,t){return Qt(n).pipe(js(t),ks(t))}function Za(n,t){return Qt(n).pipe(js(t),ks(t))}function Ka(n,t){return new Pt(function(e){var s=0;return t.schedule(function(){s===n.length?e.complete():(e.next(n[s++]),e.closed||this.schedule())})})}function Ja(n,t){return new Pt(function(e){var s;return qt(e,t,function(){s=n[Os](),qt(e,t,function(){var r,i,a;try{r=s.next(),i=r.value,a=r.done}catch(o){e.error(o);return}a?e.complete():e.next(i)},0,!0)}),function(){return I(s==null?void 0:s.return)&&s.return()}})}function Us(n,t){if(!n)throw new Error("Iterable cannot be null");return new Pt(function(e){qt(e,t,function(){var s=n[Symbol.asyncIterator]();qt(e,t,function(){s.next().then(function(r){r.done?e.complete():e.next(r.value)})},0,!0)})})}function Qa(n,t){return Us(Is(n),t)}function qa(n,t){if(n!=null){if(As(n))return $a(n,t);if(Ps(n))return Ka(n,t);if(Ts(n))return Za(n,t);if(Ds(n))return Us(n,t);if(Ls(n))return Ja(n,t);if(Bs(n))return Qa(n,t)}throw Es(n)}function Ke(n,t){return t?qa(n,t):Qt(n)}function Lt(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=Ze(n),s=Ga(n,1/0),r=n;return r.length?r.length===1?Qt(r[0]):Hs(s)(Ke(r,e)):Ys}class On{constructor(t,e){this.onTickFunction=e,this.animationTimeLeft=0,this.animationInProgress=!1,this.animationTime=t.duration,this.animationTimeLeft=t.timeLeft===void 0?t.duration:t.timeLeft,this.animationInProgress=!0}tick(){this.animationTimeLeft<=0?this.animationInProgress=!1:this.animationTimeLeft--,this.onTickFunction&&this.onTickFunction()}getProgress(){return 1-this.animationTimeLeft/this.animationTime}finishAnimation(){this.animationInProgress=!1,this.animationTimeLeft=0}}var to=_t(6767),Vt=_t.n(to);class eo extends On{constructor(t,e,s=()=>{}){super(t,s),this.colorConfigs=e,e.forEach(r=>{r.rgbColor=Vt().rgb(r.color),r.initialAlpha=r.rgbColor.valpha,r.currentAnimationColor=r.rgbColor})}tick(){super.tick(),this.animationInProgress&&this.colorConfigs.forEach(t=>{t.initialAlpha===void 0||t.rgbColor===void 0||(t.type==="fading"?t.currentAnimationColor=t.rgbColor.alpha(t.initialAlpha*this.animationTimeLeft/this.animationTime):t.type==="appearing"&&(t.currentAnimationColor=t.rgbColor.alpha(t.initialAlpha*(1-this.animationTimeLeft/this.animationTime))))})}getColor(t){var e,s;return(s=(e=this.colorConfigs[t].currentAnimationColor)==null?void 0:e.toString())!=null?s:"#FFFFFF"}revert(){this.animationTimeLeft=Math.max(this.animationTime-this.animationTimeLeft,1),this.colorConfigs.forEach(t=>{t.type==="fading"?t.type="appearing":t.type="fading"})}}class no extends On{constructor(t,e,s=()=>{}){super(t,s),this.colorConfigs=e,e.forEach(r=>{r.rgbStartColor=Vt().rgb(r.startColor),r.rgbEndColor=Vt().rgb(r.endColor),r.currentAnimationColor=r.type==="appearing"?r.rgbStartColor:r.rgbEndColor})}tick(){super.tick(),this.animationInProgress&&this.colorConfigs.forEach(t=>{const e=1-this.animationTimeLeft/this.animationTime;!t.rgbStartColor||!t.rgbEndColor||(t.type==="fading"?t.currentAnimationColor=this.calculateTransitionColor(t.rgbEndColor,t.rgbStartColor,e):t.type==="appearing"&&(t.currentAnimationColor=this.calculateTransitionColor(t.rgbStartColor,t.rgbEndColor,e)))})}getColor(t){var e,s;return(s=(e=this.colorConfigs[t].currentAnimationColor)==null?void 0:e.toString())!=null?s:"#FFFFFF"}revert(){this.animationTimeLeft=Math.max(this.animationTime-this.animationTimeLeft,1),this.colorConfigs.forEach(t=>{t.type==="fading"?t.type="appearing":t.type="fading"})}moveToLastTick(){this.animationTimeLeft=1}calculateTransitionColor(t,e,s){const r=t.red()-(t.red()-e.red())*s,i=t.green()-(t.green()-e.green())*s,a=t.blue()-(t.blue()-e.blue())*s;return Vt().rgb(r,i,a)}}var so=Math.pow;const Je=14,Qe=[];for(let n=0;n<Je+1;n++)Qe.push(so(10,n));const Ln=5e-13;class wt{static roundToNearest(t,e){return isFinite(t)?wt.isZero(t)?0:(t>0?t+=Ln:t<0&&(t-=Ln),wt.roundDecimal(Math.round(wt.roundDecimal(t/e))*e)):t}static roundUpToNearest(t,e){return wt.roundDecimal(Math.ceil(t/e))*e}static roundDecimal(t){if(isNaN(t)||t===Math.floor(t))return t;const e=Math.sign(t),s=Math.abs(t),r=Math.min(Je,Je-1-Math.floor(Math.log10(s)));for(let i=r;i>=0;i--){const a=Math.floor(Qe[i]*s+.5);if(a<Qe[Je])return e*a/Qe[i]}return Math.round(t)}static makeDecimal(t,e,s){if(isFinite(t)){const r=t.toFixed(e);return s?r.replace(".",s):r}else return""}static compare(t,e,s){return t>e+s?1:t<e-s?-1:(isNaN(t)?1:0)-(isNaN(e)?1:0)}static isZero(t){return wt.compare(t,0,Ln)===0}static cutNumber(t,e,s=0){return{K:i=>i/1e3,M:i=>i/1e6}[e](t).toFixed(s)+e}}function ro(n,t,e){const s=n/t;return s>=e||s<=1/e}function Ws(n,t,e){return Math.max(t,Math.min(n,e))}function io(n){return 1-(Math.pow(2,-10*n)-.0009765625)*1.0009775171065494}function Re(...n){for(const t of n)if(t!==void 0&&isFinite(t))return t;return NaN}const gt=n=>~~n,ao=n=>~~(n+1),pe=n=>~~(n+.5),oo=(n,t)=>n>>t;function te(){const n=()=>Math.random().toString(16).slice(-4);return`${n()+n()}-${n()}-${n()}-${n()}-${n()+n()+n()}`}class lo extends On{constructor(t,e,s){var r;super(e,s),this.viewportModel=t,this.animationConfig=e,this.id=te(),this.xStart=t.xStart,this.xEnd=t.xEnd,this.yStart=t.yStart,this.yEnd=t.yEnd,this.zoomX=t.zoomX,this.zoomY=t.zoomY,this.easingFn=(r=e.easingFn)!=null?r:io}tick(){if(super.tick(),this.animationInProgress){const t=this.easingFn(this.getProgress()),e=this.xStart+(this.animationConfig.targetXStart-this.xStart)*t,s=this.xEnd+(this.animationConfig.targetXEnd-this.xEnd)*t,r=this.yStart+(this.animationConfig.targetYStart-this.yStart)*t,i=this.yEnd+(this.animationConfig.targetYEnd-this.yEnd)*t,a=this.zoomX+(this.animationConfig.targetZoomX-this.zoomX)*t,o=this.zoomY+(this.animationConfig.targetZoomY-this.zoomY)*t;this.viewportModel.apply({xStart:e,xEnd:s,yStart:r,yEnd:i,zoomX:a,zoomY:o,inverseY:this.viewportModel.inverseY})}}finishAnimation(){super.finishAnimation(),this.viewportModel.apply({xStart:this.animationConfig.targetXStart,xEnd:this.animationConfig.targetXEnd,yStart:this.animationConfig.targetYStart,yEnd:this.animationConfig.targetYEnd,zoomX:this.animationConfig.targetZoomX,zoomY:this.animationConfig.targetZoomY,inverseY:this.viewportModel.inverseY})}}var co=Object.defineProperty,ho=Object.defineProperties,uo=Object.getOwnPropertyDescriptors,zs=Object.getOwnPropertySymbols,fo=Object.prototype.hasOwnProperty,go=Object.prototype.propertyIsEnumerable,Xs=(n,t,e)=>t in n?co(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,vo=(n,t)=>{for(var e in t||(t={}))fo.call(t,e)&&Xs(n,e,t[e]);if(zs)for(var e of zs(t))go.call(t,e)&&Xs(n,e,t[e]);return n},mo=(n,t)=>ho(n,uo(t));const Vs=10,In="VIEWPORT_ANIMATION";class po{constructor(t){this.eventBus=t,this.animations={}}startViewportMovementAnimation(t,e,s=In,r){const i=new lo(t,e,r);return this.animations[s]=i,this.ensureIntervalStarted(),i}startColorAlphaAnimation(t,e,s,r){const i=new eo(mo(vo({},r),{duration:r&&r.duration||Vs}),e,s);return this.animations[t]=i,this.ensureIntervalStarted(),i}startColorTransitionAnimation(t,e,s=Vs,r){const i=new no({duration:s},e,r);return this.animations[t]=i,this.ensureIntervalStarted(),i}getAnimation(t){return this.animations[t]}getColorAlphaAnimation(t){return this.getAnimation(t)}getColorTransitionAnimation(t){return this.getAnimation(t)}forceStopAnimation(t){const e=this.animations[t];e&&(e.animationTimeLeft=-1,e.animationInProgress=!1)}ensureIntervalStarted(){this.animationIntervalId||(this.animationIntervalId=window.setInterval(()=>this.tick(),20))}tick(){let t=!0;for(const e of Object.keys(this.animations)){const s=this.animations[e];s.tick(),s.animationInProgress&&(t=!1)}t?this.stopInterval():this.eventBus.fireDraw()}stopInterval(){clearInterval(this.animationIntervalId),this.animationIntervalId=void 0}}var bo=ft(function(n){return function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),V=function(n){L(t,n);function t(){var e=n.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return t.prototype.lift=function(e){var s=new Gs(this,this);return s.operator=e,s},t.prototype._throwIfClosed=function(){if(this.closed)throw new bo},t.prototype.next=function(e){var s=this;le(function(){var r,i;if(s._throwIfClosed(),!s.isStopped){s.currentObservers||(s.currentObservers=Array.from(s.observers));try{for(var a=E(s.currentObservers),o=a.next();!o.done;o=a.next()){var l=o.value;l.next(e)}}catch(c){r={error:c}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}}})},t.prototype.error=function(e){var s=this;le(function(){if(s._throwIfClosed(),!s.isStopped){s.hasError=s.isStopped=!0,s.thrownError=e;for(var r=s.observers;r.length;)r.shift().error(e)}})},t.prototype.complete=function(){var e=this;le(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var s=e.observers;s.length;)s.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(e){return this._throwIfClosed(),n.prototype._trySubscribe.call(this,e)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var s=this,r=this,i=r.hasError,a=r.isStopped,o=r.observers;return i||a?jt:(this.currentObservers=null,o.push(e),new Ct(function(){s.currentObservers=null,At(o,e)}))},t.prototype._checkFinalizedStatuses=function(e){var s=this,r=s.hasError,i=s.thrownError,a=s.isStopped;r?e.error(i):a&&e.complete()},t.prototype.asObservable=function(){var e=new Pt;return e.source=this,e},t.create=function(e,s){return new Gs(e,s)},t}(Pt),Gs=function(n){L(t,n);function t(e,s){var r=n.call(this)||this;return r.destination=e,r.source=s,r}return t.prototype.next=function(e){var s,r;(r=(s=this.destination)===null||s===void 0?void 0:s.next)===null||r===void 0||r.call(s,e)},t.prototype.error=function(e){var s,r;(r=(s=this.destination)===null||s===void 0?void 0:s.error)===null||r===void 0||r.call(s,e)},t.prototype.complete=function(){var e,s;(s=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||s===void 0||s.call(e)},t.prototype._subscribe=function(e){var s,r;return(r=(s=this.source)===null||s===void 0?void 0:s.subscribe(e))!==null&&r!==void 0?r:jt},t}(V),ee=function(n){L(t,n);function t(e){var s=n.call(this)||this;return s._value=e,s}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(e){var s=n.prototype._subscribe.call(this,e);return!s.closed&&e.next(this._value),s},t.prototype.getValue=function(){var e=this,s=e.hasError,r=e.thrownError,i=e._value;if(s)throw r;return this._throwIfClosed(),i},t.prototype.next=function(e){n.prototype.next.call(this,this._value=e)},t}(V);function Gt(n,t){return t===void 0&&(t=Te),n=n!=null?n:Co,y(function(e,s){var r,i=!0;e.subscribe(Wt(s,function(a){var o=t(a);(i||!n(r,o))&&(i=!1,r=o,s.next(a))}))})}function Co(n,t){return n===t}function yo(n){return function(){n.forEach(e=>typeof e=="function"&&e()),n.length=0}}function Bn(n){return n}function $s(n){return n!=null}const gg=()=>{};function vg(n){return n!=null}function wo(n,t,e=So,s=!0){const r=n.filter(i=>t.some(a=>e(i,a)));return s?r.filter((i,a,o)=>o.indexOf(i)===a):r}const Zs=(n,t)=>{const e=t.slice().filter(s=>n.find(r=>r===s));return n.map(s=>{var r;return t.indexOf(s)>=0&&(r=e.shift())!=null?r:s})},So=(n,t)=>n===t,mg=(n,t,e)=>n.filter(s=>t.filter(r=>e(s,r)).length===0),xo=(n,t)=>n===t,Ks=(n,t,e=xo)=>n.length===t.length&&n.every((s,r)=>e(s,t[r]));function pg(n,t,e){const s=n.slice(),r=s[t];return s.splice(t,1),s.splice(e,0,r),s}function Rn(n,t,e){const s=n.length,r=Ws(t,0,s-1),i=Ws(e,0,s-1),a=n[r];return n.splice(r,1),n.splice(i,0,a),n}function bg(n,t,e){const s=n.slice(),r=s.findIndex(t);return r!==-1&&(s.splice(r,1),s.splice(r,0,e)),s}const Cg=n=>{const t={};return n.filter(e=>t[e]?!1:t[e]=!0)},yg=(n,t)=>n.reduce((e,s)=>((e[s[t]]=e[s[t]]||[]).push(s),e),{}),wg=(n,t)=>[].concat(...n.map(e=>[e,t])).slice(0,-1),Sg=n=>Array.isArray(n[0]),Js=n=>Array.isArray(n[0])?n:[n],Po=(n,t,e)=>{const s=[];let r=0;for(const i of n){const a=Math.max(t-r,0),o=Math.max(e-r,-1),l=i.slice(a,o+1);l.length>0&&s.push(l),r+=i.length}return s},To=(n,t)=>n>=0?t[n]:t[t.length+n],It=n=>Array.prototype.flat?n.flat():Fe(n,Bn),Fe=(n,t)=>{if(Array.prototype.flatMap)return n.flatMap(t);const e=[];for(let s=0;s<n.length;s++){const r=n[s];e.push(...t(r,s,n))}return e};function de(n,t,e){const s=e!=null?e:Bn;return!n.length||t!==t?{index:-1,exact:!0}:Fn(n,t,0,n.length,s)}function Fn(n,t,e,s,r){const i=oo(e+s,1),a=r(n[i]);return t===a?{index:i,exact:!0}:e===i?{index:e,exact:!1}:t<a?Fn(n,t,e,i,r):Fn(n,t,i,s,r)}function Ft(n){if(n&&n.length)return n[n.length-1]}function Mo(n){const t=this.indexOf(n);return t!==-1&&this.splice(t,1),this}function _o(n,t){if(!n)return;const e=n.indexOf(t);e!==-1&&n.splice(e,1)}function He(n){if(n)return n[0]}function Ao(n){function t(e,s){const r=n(s);return r==null||!isFinite(r)?e:[Math.max(e[0],r),Math.min(e[1],r)]}return function(e){const s=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY];return e?e.reduce(t,s):s}}function Do(n,t,e,s=()=>0){const r=(a,o)=>{let l=0,c=a.length-1;for(;c>=l;){const h=Math.ceil((l+c)/2);s(a[h])<=o?l=h+1:c=h-1}return c},i=(a,o)=>{let l=0,c=a.length-1;for(;c>=l;){const h=Math.ceil((l+c)/2);s(a[h])>=o?c=h-1:l=h+1}return l};return n.slice(i(n,t),r(n,e)+1)}let Hn;const Yn=()=>(Hn||(Hn=!!navigator.userAgent.match(/Android|iPhone|Opera Mini/)||!1),Hn);function Qs(n,t){let e="";t.textStyle&&(t.textStyle.italic&&(e+="italic "),t.textStyle.bold&&(e+="bold ")),n.font=e+(t.textSize||12)+" "+(t.textFontFamily||"monospace"),n.fillStyle=t.textFill||"#FFFFFF",t.rtl?n.textAlign="right":n.textAlign="start"}function Nn(n){const t=n.font.match(/(\d+.)?\d+(px|pt)/gi);let e="10px";return t&&t.length&&(t[0].includes("pt")?e=+t[0].slice(0,t[0].indexOf("pt"))*96/72+"px":e=t[0]),parseInt(e,10)*1.33}function qs(n,t,e){n.save(),Qs(n,e);const s=Math.ceil(Math.max.apply(Math,t.map(a=>n.measureText(a).width))),r=Nn(n),i=r*t.length;return n.restore(),[s,i,r]}function tr(n){return(n||"").split(/\r\n|\r|\n/)}function Eo(n,t,e,s,r){n.save();const[i,,a]=qs(n,t,r);t.forEach((o,l)=>{var c,h,v;const p=n.measureText(o).width,C=Oo(e,i,p,(c=r.textAlign)!=null?c:"left");r.textStyle&&r.textStyle.underline&&Lo(n,o,C,s+a*l,(h=r.textFill)!=null?h:"",(v=r.textSize)!=null?v:""),n.fillText(o,C,s+a*l)}),n.restore()}function Oo(n,t,e,s){switch(s){case"left":return n;case"right":return n+t-e;default:return n}}function Lo(n,t,e,s,r,i){n.save();const a=n.measureText(t).width,o=e,l=e+a,c=s+2,h=c;let v=parseInt(i,10)/15;v<1&&(v=1),n.beginPath(),n.strokeStyle=r,n.lineWidth=v,n.moveTo(o,c),n.lineTo(l,h),n.stroke(),n.restore()}function xg(n){return`${n}px`}function Ye(n,t,e){const s=Vt().rgb(n).array(),r=s[0],i=s[1],a=s[2];return(r*299+i*587+a*114)/1e3<128?t:e}function Io(n,t,e,s){const r=s.components.navigationMap.timeLabels,i=r.padding,a=er(t,r.dateFormat,e),o=tr(a),l={textFontFamily:r.fontFamily,textSize:`${r.fontSize}px`},[c,h]=qs(n,o,l);return[c+i.x*2,h+i.y*2]}function er(n,t,e){return e(t)(n).split(" ").join(`
9
+ `)}const nr={};function ne(n,t){let e=nr[n];return e!==void 0||(t.save(),t.font=n,e=t.measureText("M").width,nr[n]=e,t.restore()),e}const sr=new Map;function Ht(n,t,e){const s=e+n;let r=sr.get(s);return r||(t.save(),t.font=e,r=t.measureText(n).width,sr.set(s,r),t.restore()),r}function $t(n,t,e=rr){function s(r,i){for(const a in i)a in r?typeof r[a]=="object"&&r[a]!==null&&!Array.isArray(r[a])?s(r[a],i[a]):e!=null&&e.overrideExisting&&(r[a]=i[a]):e!=null&&e.addIfMissing&&(r[a]=i[a]);return r}return s(n,t)}function Pg(n,t,e,s=!1){!n||!t||t.length===0||t.forEach(r=>{const i=e(r),a=n.findIndex(o=>e(o)===i);a===-1?n.push(r):s?$t(n[a],r,{overrideExisting:!0,addIfMissing:!0}):n.splice(a,1,r)})}const rr={overrideExisting:!1,addIfMissing:!0};var Bo=Object.defineProperty,ir=Object.getOwnPropertySymbols,Ro=Object.prototype.hasOwnProperty,Fo=Object.prototype.propertyIsEnumerable,ar=(n,t,e)=>t in n?Bo(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Ho=(n,t)=>{for(var e in t||(t={}))Ro.call(t,e)&&ar(n,e,t[e]);if(ir)for(var e of ir(t))Fo.call(t,e)&&ar(n,e,t[e]);return n};const or="Open Sans Semibold, sans-serif",Yo=null,No=["candle","line","area","bar","scatterPlot","trend","hollow","histogram","baseline"],Tg=n=>Yo.find(t=>t===n)!==void 0,qe=()=>({devexpertsPromoLink:!0,useUTCTimeOverride:!1,shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rtl:!1,scale:{keepZoomXOnYAxisChange:!0,auto:!0,zoomToCursor:!1,lockPriceToBarRatio:!1,autoScaleOnCandles:!0,autoScaleDisableOnDrag:{enabled:!0,edgeAngle:Math.PI/15,yDiff:80},inverse:!1,zoomSensitivity:.25,defaultViewportItems:100},timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,components:{chart:{type:"candle",showCandlesBorder:!0,showActiveCandlesBorder:!0,showWicks:!0,candleLineWidth:1,lineWidth:1,areaLineWidth:1,barLineWidth:1,minWidth:.5,minCandles:10,candlePaddingPercent:.25,highlightActiveCandle:!0,cursor:"default",selectedWidth:3,minCandlesOffset:2,defaultZoomCandleWidth:7,zoomStep:0,histogram:{barCapSize:1}},yAxis:{type:"regular",visible:!0,labelHeight:23,zeroPercentLine:!0,customScale:!0,customScaleDblClick:!0,align:"right",fontSize:12,fontFamily:or,cursor:"ns-resize",resizeDisabledCursor:"default",labelBoxMargin:{top:4,bottom:4,end:8,start:10},typeConfig:{badge:{rounded:!0,paddings:{top:4,bottom:4,end:4,start:4}},plain:{},rectangle:{rounded:!1,paddings:{top:4,bottom:4,end:4,start:4}}},labels:{descriptions:!1,settings:{lastPrice:{mode:"label",type:"badge"},countdownToBarClose:{mode:"none",type:"rectangle"}}}},xAxis:{visible:!0,formatsForLabelsConfig:{lessThanSecond:"HH:mm:ss",second_1:"HH:mm:ss",minute_1:"HH:mm",minute_5:"HH:mm",minute_30:"HH:mm",hour_1:"HH:mm",day_1:"dd.MM",month_1:"MMM",year_1:"YYYY"},fontSize:12,fontFamily:or,cursor:"ew-resize",padding:{top:8,bottom:16},fontStyle:""},events:{visible:!1,eventsVisibility:{"conference-calls":!0,dividends:!0,splits:!0,earnings:!0},height:20,cursor:"default",xAxisLabelFormat:[{format:"d MMM"}],icons:{earnings:{normal:'<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.06066 6.5L6.5 1.06066L11.9393 6.5L6.5 11.9393L1.06066 6.5Z" stroke="#D92C40" stroke-width="1.5"/></svg>',hover:'<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.06066 6.5L6.5 1.06066L11.9393 6.5L6.5 11.9393L1.06066 6.5Z" fill="#D92C40" stroke="#D92C40" stroke-width="1.5"/></svg>'}}},offsets:{visible:!0,right:10,top:10,bottom:20,left:0},waterMark:{visible:!1,fontFamily:"Open Sans, sans-serif",firstRowFontSize:80,firstRowBottomPadding:10,secondRowFontSize:40,secondRowBottomPadding:25,thirdRowFontSize:40,thirdRowBottomPadding:15,position:"center",offsetX:20,offsetY:20,logoWidth:20,logoHeight:20},highLow:{visible:!1,font:"12px sans-serif"},highlights:{visible:!1,fontFamily:"Open Sans",fontSize:13,border:{width:1,dash:[8,4]}},crossTool:{type:"cross-and-labels",discrete:!1,magnetTarget:"none",lineDash:[4,6],xAxisLabelFormat:[{format:"dd.MM.YYYY",showWhen:{periodMoreThen:846e5}},{format:"dd.MM.YYYY HH:mm",showWhen:{periodLessThen:846e5,periodMoreThen:6e3}},{format:"dd.MM.YYYY HH:mm:ss",showWhen:{periodLessThen:6e3}}],xLabel:{padding:{top:4,bottom:4,right:8,left:8},margin:{top:4}},yLabel:{padding:{top:4,bottom:4,end:4,start:4},type:"badge"}},grid:{visible:!0,horizontal:!1,vertical:!0,width:1,dash:[0,0],color:"#FFFFFF"},volumes:{visible:!0,showSeparately:!1,valueLines:15,barCapSize:1,volumeBarSpace:0,volumeFillColor:"#FFFFFF"},navigationMap:{visible:!1,allCandlesHistory:!0,timeLabels:{visible:!1,dateFormat:"dd.MM.YYYY HH:mm",fontFamily:"Open Sans",fontSize:13,padding:{x:10,y:1}},minSliderWindowWidth:10,cursors:{chart:"default",buttonLeft:"pointer",buttonRight:"pointer",leftResizer:"ew-resize",rightResizer:"ew-resize",slider:"grab"},knots:{height:35,width:7,border:0,lineWidth:1}},baseline:{cursor:"ns-resize",dragZone:3,height:1},paneResizer:{cursor:"ns-resize",height:1,visible:!0,fixedMode:!1,dragZone:3}},colors:{candleTheme:{upColor:"rgba(77,153,83,1)",downColor:"rgba(217,44,64,1)",noneColor:"rgba(255,255,255,1)",upWickColor:"rgba(77,153,83,1)",downWickColor:"rgba(217,44,64,1)",noneWickColor:"rgba(255,255,255,1)",borderOpacity:1},barTheme:{upColor:"rgba(77,153,83,1)",downColor:"rgba(217,44,64,1)",noneColor:"rgba(255,255,255,1)"},lineTheme:{upColor:"rgba(77,153,83,1)",downColor:"rgba(217,44,64,1)",noneColor:"rgba(255,255,255,1)"},chartAreaTheme:{backgroundMode:"regular",backgroundColor:"rgba(20,20,19,1)",backgroundGradientTopColor:"red",backgroundGradientBottomColor:"blue",gridColor:"rgba(37,37,36,1)"},scatterPlot:{mainColor:"rgba(255,255,255,1)"},areaTheme:{lineColor:"rgba(127,120,214,1)",startColor:"rgba(169,38,251,1)",stopColor:"rgba(169,38,251,0.8)"},baseLineTheme:{lowerSectionStrokeColor:"rgba(217,44,64,1)",upperSectionStrokeColor:"rgba(77,153,83,1)",lowerSectionFillColor:"rgba(217, 44, 64, 0.07)",upperSectionFillColor:"rgba(77, 153, 83, 0.07)",baselineColor:"rgba(55,55,54,1)"},histogram:{upCap:"rgba(77,153,83,1)",upBottom:"rgba(77,153,83,0.1)",upBright:"rgba(77,153,83,0.4)",downCap:"rgba(217,44,64,1)",downBottom:"rgba(217,44,64,0.1)",downBright:"rgba(217,44,64,0.4)",noneCap:"rgba(255,255,255,1)",noneBottom:"rgba(255,255,255,0.1)",noneBright:"rgba(255,255,255,0.4)"},crossTool:{lineColor:"rgba(107,96,86,1)",labelBoxColor:"rgba(107,96,86,1)",labelTextColor:"rgba(255,255,255,1)"},waterMarkTheme:{firstRowColor:"rgba(255,255,255,0.2)",secondRowColor:"rgba(255,255,255,0.2)",thirdRowColor:"rgba(255,255,255,0.2)"},highlights:{NO_TRADING:{border:"rgba(107,96,86,1)",background:"transparent",label:"transparent"},AFTER_MARKET:{border:"rgba(107,96,86,1)",background:"rgba(38, 251, 149, 0.05)",label:"transparent"},PRE_MARKET:{border:"rgba(107,96,86,1)",background:"rgba(255, 170, 0, 0.05)",label:"transparent"},REGULAR:{border:"rgba(107,96,86,1)",background:"transparent",label:"transparent"}},activeCandleTheme:{upColor:"rgba(98,201,93,1)",downColor:"rgba(255,47,47,1)",noneColor:"rgba(255,255,255,1)",upWickColor:"rgba(98,201,93,1)",downWickColor:"rgba(255,47,47,1)",noneWickColor:"rgba(255,255,255,1)",borderOpacity:.5},volume:{downBarColor:"rgba(99,30,37,1)",upBarColor:"rgba(42,72,44,1)",noneBarColor:"rgba(255,255,255,0.4)",upCapColor:"rgba(42,72,44,1)",downCapColor:"rgba(99,30,37,1)",noneCapColor:"rgba(255,255,255,0.4)"},highLowTheme:{highColor:"rgba(223,222,223,1)",lowColor:"rgba(223,222,223,1)"},instrumentInfo:{textColor:"#aeb1b3"},paneResizer:{lineColor:"rgba(55,55,54,1)",bgColor:"rgba(20,20,19,1)",bgHoverColor:"rgba(55,55,54,0.6)"},events:{earnings:{color:"rgba(217,44,64,1)"},dividends:{color:"rgba(169,38,251,1)"},splits:{color:"rgba(244,187,63,1)"},"conference-calls":{color:"rgba(48,194,97,1)"}},secondaryChartTheme:[{lineTheme:{upColor:"rgba(226,61,25,1)",downColor:"rgba(226,61,25,1)",noneColor:"rgba(226,61,25,1)"},areaTheme:{lineColor:"rgba(226,61,25,1)",startColor:"rgba(226,61,25,0.8)",stopColor:"rgba(226,61,25,0)"}},{lineTheme:{upColor:"rgba(250,191,64,1)",downColor:"rgba(250,191,64,1)",noneColor:"rgba(250,191,64,1)"},areaTheme:{lineColor:"rgba(250,191,64,1)",startColor:"rgba(250,191,64,0.8)",stopColor:"rgba(250,191,64,0)"}},{lineTheme:{upColor:"rgba(169,38,251,1)",downColor:"rgba(169,38,251,1)",noneColor:"rgba(169,38,251,1)"},areaTheme:{lineColor:"rgba(169,38,251,1)",startColor:"rgba(169,38,251,0.8)",stopColor:"rgba(169,38,251,0)"}},{lineTheme:{upColor:"rgba(77,211,240,1)",downColor:"rgba(77,211,240,1)",noneColor:"rgba(77,211,240,1)"},areaTheme:{lineColor:"rgba(77,211,240,1)",startColor:"rgba(77,211,240,0.8)",stopColor:"rgba(77,211,240,0)"}},{lineTheme:{upColor:"rgba(59,203,91,1)",downColor:"rgba(59,203,91,1)",noneColor:"rgba(59,203,91,1)"},areaTheme:{lineColor:"rgba(59,203,91,1)",startColor:"rgba(59,203,91,0.8)",stopColor:"rgba(59,203,91,0)"}}],yAxis:{backgroundColor:"transparent",backgroundHoverColor:"rgba(20,20,19,1)",labelBoxColor:"rgba(20,20,19,1)",labelTextColor:"rgba(128,128,128,1)",labelInvertedTextColor:"rgba(20,20,19,1)",rectLabelTextColor:"rgba(255,255,255,1)",rectLabelInvertedTextColor:"rgba(20,20,19,1)",zeroPercentLine:"rgba(55,55,54,1)"},labels:{lastPrice:{textNegative:"rgba(255,255,255,1)",textPositive:"rgba(255,255,255,1)",textSelected:"rgba(0,0,0,1)",boxNegative:"rgba(217,44,64,1)",boxPositive:"rgba(77,153,83,1)",boxSelected:"rgba(255,255,255,1)"},countdownToBarClose:{textNegative:"rgba(255,255,255,1)",textPositive:"rgba(255,255,255,1)",textSelected:"rgba(255,255,255,1)",boxNegative:"rgba(217,44,64,1)",boxPositive:"rgba(77,153,83,1)",boxSelected:"rgba(255,255,255,1)"},highLow:{high:{boxColor:"rgba(107,96,86,1)",textColor:"rgba(255,255,255,1)",descriptionText:"High"},low:{boxColor:"rgba(107,96,86,1)",textColor:"rgba(255,255,255,1)",descriptionText:"Low"}},bidAsk:{bid:{boxColor:"rgba(77,153,83,1)",textColor:"rgba(255,255,255,1)",descriptionText:"Bid"},ask:{boxColor:"rgba(217,44,64,1)",textColor:"rgba(255,255,255,1)",descriptionText:"Ask"}},prePostMarket:{post:{boxColor:"rgba(38,251,149,1)",textColor:"rgba(20,20,19,1)",descriptionText:"Post"},pre:{boxColor:"rgba(255,170,0,1)",textColor:"rgba(20,20,19,1)",descriptionText:"Pre"}},prevDayClose:{boxColor:"rgba(107,96,86,1)",textColor:"rgba(255,255,255,1)"}},xAxis:{backgroundColor:"transparent",labelTextColor:"rgba(128,128,128,1)"},navigationMap:{backgroundColor:"transparent",buttonColor:"rgba(255,255,255,0.1)",buttonArrowColor:"rgba(212,212,211,1)",knotColor:"rgba(255,255,255,0.1)",knotLineColor:"rgba(212,212,211,1)",sliderColor:"rgba(255,255,255,0.08)",knotBorderColor:"#0b0d1a",timeLabelsTextColor:"rgba(128,128,128,1)",mapColor:"rgba(255,255,255,0.1)",mapFillColor:"rgba(255,255,255,0.1)",mapGradientTopColor:"rgba(255,255,255,0.1)",mapGradientBottomColor:"rgba(255,255,255,0.1)"}},animation:{moveDuration:1e3,candleDuration:200,paneResizer:{bgMode:!0,enabled:!0,duration:40},yAxis:{background:{enabled:!1,duration:40}}},drawingOrder:["OVER_SERIES_CLEAR","MAIN_CLEAR","SERIES_CLEAR","GRID","X_AXIS","Y_AXIS","UNDERLAY_VOLUMES_AREA","DYNAMIC_OBJECTS","WATERMARK","N_MAP_CHART","EVENTS"]});function ko(n,t=qe()){return $t(n,t,rr),n}function Mg(n,t=qe()){const e=Ho({},n);return merge(e,t,DEFAULT_MERGE_OPTIONS),e}function _g(n,t){Object.keys(n).forEach(e=>delete n[e]),Object.keys(t).forEach(e=>n[e]=t[e])}function lr(n){return typeof n=="object"&&n!==null}function cr(n,t){return[...n].map(s=>kn(s,t))}const jo=n=>Array.isArray(n);function kn(n,t){if(!lr(n))return n;if(jo(n))return cr(n,t);{const e=hr({},n,t);return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}}function hr(n,t,e){if(!lr(n))return e.overrideExisting?t:n;if(Array.isArray(n)&&Array.isArray(t)){const r=e.overrideExisting?t:n;return cr(r,e)}const s=Object.create(Object.getPrototypeOf(n));return Object.keys(n).forEach(r=>s[r]=kn(n[r],e)),Object.keys(t).forEach(r=>{r in n?s[r]=hr(n[r],t[r],e):e.addIfMissing&&(s[r]=kn(t[r],e))}),s}const be=n=>`${n.fontSize}px ${n.fontFamily}`;class Uo{constructor(t,e){this.config=t,this.mainCanvasModel=e,this.extentsOrder=new Map,this.yAxisWidthContributors=[]}registerYAxisWidthContributor(t){this.yAxisWidthContributors.push(t)}removeYAxisWidthContributor(t){this.yAxisWidthContributors=this.yAxisWidthContributors.filter(e=>e!==t)}getTextWidth(t){const e=be(this.config.components.yAxis);return Ht(t,this.mainCanvasModel.ctx,e)}getYAxisWidths(){this.extentsOrder.clear();const t=[],e=[];return this.yAxisWidthContributors.forEach(s=>{var r,i,a;const o=s.getYAxisState(),l=o.labelBoxMargin.start+o.labelBoxMargin.end,c=this.getTextWidth(s.getLargestLabel())+l,h=s.getYAxisIndex(),v=s.getPaneUUID(),p=(r=this.extentsOrder.get(v))!=null?r:{left:[],right:[]};if(o.align==="left"){const C=p.left.length;t[C]=Math.max((i=t[C])!=null?i:0,c),p.left.push(h)}else{const C=p.right.length;e[C]=Math.max((a=e[C])!=null?a:0,c),p.right.push(h)}this.extentsOrder.set(v,p)}),{left:t,right:e}}}var Wo=Object.defineProperty,zo=Object.defineProperties,Xo=Object.getOwnPropertyDescriptors,dr=Object.getOwnPropertySymbols,Vo=Object.prototype.hasOwnProperty,Go=Object.prototype.propertyIsEnumerable,ur=(n,t,e)=>t in n?Wo(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,se=(n,t)=>{for(var e in t||(t={}))Vo.call(t,e)&&ur(n,e,t[e]);if(dr)for(var e of dr(t))Go.call(t,e)&&ur(n,e,t[e]);return n},fr=(n,t)=>zo(n,Xo(t));const ht="CHART",jn=class{};let H=jn;H.CANVAS="CANVAS",H.N_MAP="N_MAP",H.X_AXIS="X_AXIS",H.N_MAP_KNOT_L="N_MAP_KNOT_L",H.N_MAP_KNOT_R="N_MAP_KNOT_R",H.N_MAP_BTN_L="N_MAP_BTN_L",H.N_MAP_BTN_R="N_MAP_BTN_R",H.N_MAP_SLIDER_WINDOW="N_MAP_SLIDER_WINDOW",H.N_MAP_CHART="N_MAP_CHART",H.N_MAP_LABEL_R="N_MAP_LABEL_R",H.N_MAP_LABEL_L="N_MAP_LABEL_L",H.PANE_UUID=n=>"PANE_"+n,H.PANE_UUID_Y_AXIS=(n,t=0)=>"PANE_"+n+"_Y_AXIS_"+t,H.PANE_UUID_RESIZER=n=>"PANE_"+n+"_RESIZER",H.ALL_PANES="ALL_PANES",H.CHART_WITH_Y_AXIS="CHART_WITH_Y_AXIS",H.EVENTS="EVENTS",H.CHART=jn.PANE_UUID(ht),H.Y_AXIS=jn.PANE_UUID_Y_AXIS(ht);const gr={x:0,y:0,pageX:0,pageY:0,width:0,height:0},$o=20,vr=35,Un=15,mr=1.5,Wn=Yn()?8*mr:8,Zo=1e-6;class zn{constructor(t,e,s,r,i){this.config=t,this.eventBus=e,this.canvasModel=s,this.formatterFactory=r,this.bounds={},this.canvasOnPageLocation={x:0,y:0,pageX:0,pageY:0,width:0,height:0},this.panesOrder=[],this.panesOrderChangedSubject=new V,this.xAxisHeight=void 0,this.yAxisWidths={right:[0],left:[0]},this.leftRatio=0,this.rightRatio=0,this.boundsChangedSubject=new V,this.barResizerChangedSubject=new V,this._graphsHeightRatio={chart:1},this.graphsHeightRatioChangedSubject=new V,this.boundsChangedSubscriptions={},i.canvasResized.subscribe(a=>{let o=a;o||(o=this.canvasModel.canvas.getBoundingClientRect()),this.updateCanvasOnPageLocation(o),this.recalculateBounds()}),this.yAxisBoundsContainer=new Uo(this.config,this.canvasModel)}get graphsHeightRatio(){return this._graphsHeightRatio}updateYAxisWidths(){const t=this.yAxisBoundsContainer.getYAxisWidths();this.setYAxisWidths(t)}addPaneBounds(t,e){if(this.panesOrder.indexOf(t)===-1){if(this.panesOrder.push(t),e!==void 0){const s=this.panesOrder.indexOf(t);Rn(this.panesOrder,s,e)}this.recalculatePanesHeightRatios(),this.panesOrderChangedSubject.next(this.panesOrder)}}overrideChartHeightRatios(t){const e=se(se({},this.graphsHeightRatio),t),s=Object.values(e).reduce((r,i)=>r+i,0);Math.abs(s-1)<Zo?(this._graphsHeightRatio=e,this.recalculateBounds()):console.error(`Result ratio should be equal 1, but equal ${s}`)}movePaneUp(t){const e=this.panesOrder.indexOf(t);e!==-1&&(Rn(this.panesOrder,e,e-1),this.recalculateBounds(),this.eventBus.fireDraw(),this.panesOrderChangedSubject.next(this.panesOrder))}movePaneDown(t){const e=this.panesOrder.indexOf(t);e!==-1&&(Rn(this.panesOrder,e,e+1),this.recalculateBounds(),this.eventBus.fireDraw(),this.panesOrderChangedSubject.next(this.panesOrder))}reorderPanes(t){this.panesOrder=Zs(this.panesOrder,t),this.recalculateBounds(),this.panesOrderChangedSubject.next(this.panesOrder)}removedPaneBounds(t){_o(this.panesOrder,t),delete this.graphsHeightRatio[t],delete this.bounds[H.PANE_UUID(t)],this.yAxisWidths.left.concat(this.yAxisWidths.right).forEach((e,s)=>delete this.bounds[H.PANE_UUID_Y_AXIS(t,s)]),delete this.bounds[H.PANE_UUID_RESIZER(t)],this.recalculatePanesHeightRatios(),this.panesOrderChangedSubject.next(this.panesOrder)}recalculateBounds(){const t=this.canvasOnPageLocation.width,e=this.canvasOnPageLocation.height,s=this.config.components.paneResizer.height,r=this.getBounds(H.CANVAS);r.x=0,r.y=0,r.width=t,r.height=e;const i=this.yAxisWidths,a=this.getNavMapBounds(r),o=this.getXAxisBounds(a,r),l=e-o.height-a.height,c=i.left.reduce((J,K)=>J+K,0),h=i.right.reduce((J,K)=>J+K,0),v=0,p=r.width-h,C=v+c,O=0,B=r.width-c-h;let Y=O;this.panesOrder.forEach((J,K)=>{var U;const Q=this.graphsHeightRatio[this.panesOrder[K]],it=this.config.components.paneResizer.visible;it&&(K!==0?Me(this.bounds,H.PANE_UUID_RESIZER(J),0,Y,r.width,s,this.canvasOnPageLocation):Me(this.bounds,H.PANE_UUID_RESIZER(J),0,0,0,0,this.canvasOnPageLocation));const at=Me(this.bounds,H.PANE_UUID(J),C,it?Y+s:Y,B,it?l*Q-this.config.components.paneResizer.height:l*Q,this.canvasOnPageLocation);if(this.config.components.yAxis.visible){const nt=this.yAxisBoundsContainer.extentsOrder.get(J);if(nt===void 0)return;const ot=it?Y+s:Y,dt=it?l*Q-s:l*Q;let ct=C-((U=i.left[0])!=null?U:0),St=p;nt.left.forEach((ut,vt)=>{var pt;Me(this.bounds,H.PANE_UUID_Y_AXIS(J,ut),ct,ot,i.left[vt],dt,this.canvasOnPageLocation),ct-=(pt=i.left[vt+1])!=null?pt:0}),nt.right.forEach((ut,vt)=>{Me(this.bounds,H.PANE_UUID_Y_AXIS(J,ut),St,ot,i.right[vt],dt,this.canvasOnPageLocation),St+=i.right[vt]})}else Me(this.bounds,H.PANE_UUID_Y_AXIS(J),0,0,0,0,this.canvasOnPageLocation);Y=at.y+at.height});const k=this.getBounds(H.ALL_PANES);k.x=C,k.y=O,k.width=B,k.height=Y;const z=this.getBounds(H.CHART_WITH_Y_AXIS),Z=this.getBounds(H.PANE_UUID(ht));this.getEventsBounds(Z),this.copyBounds(Z,z),z.width=r.width,this.recalculateNavigationMapElementBounds(),this.updateAllBoundsPageCoordinates(),this.notifyBoundsSubscribers()}updateCanvasOnPageLocation(t){this.canvasOnPageLocation=fr(se({},this.canvasOnPageLocation),{x:t.x,y:t.y,width:t.width,height:t.height})}updateAllBoundsPageCoordinates(){for(const t of Object.keys(this.bounds)){const e=this.bounds[t];e.pageX=e.x+this.canvasOnPageLocation.x,e.pageY=e.y+this.canvasOnPageLocation.y}}getEventsBounds(t){const e=this.getBounds(H.EVENTS);return this.config.components.events.visible?(e.x=0,e.y=t.y+t.height-this.config.components.events.height,e.width=t.width,e.height=this.config.components.events.height):this.applyDefaultBounds(e),e}getNavMapBounds(t){const e=this.getBounds(H.N_MAP);return this.config.components.navigationMap.visible?(e.x=0,e.y=t.height-vr,e.width=t.width,e.height=vr):this.applyDefaultBounds(e),e}getXAxisBounds(t,e){const s=this.getBounds(H.X_AXIS);return this.config.components.xAxis.visible?(s.x=0,s.y=e.height-this.getXAxisHeight()-t.height,s.width=e.width,s.height=this.getXAxisHeight()):this.applyDefaultBounds(s),s}getXAxisHeight(){var t,e;if(!this.xAxisHeight){const s=this.config.components.xAxis.fontSize+"px "+this.config.components.xAxis.fontFamily,r=ne(s,this.canvasModel.ctx);this.xAxisHeight=r+((t=this.config.components.xAxis.padding.top)!=null?t:0)+((e=this.config.components.xAxis.padding.bottom)!=null?e:0)}return this.xAxisHeight}setYAxisWidths(t){(!Ks(this.yAxisWidths.left,t.left)||!Ks(this.yAxisWidths.right,t.right))&&(this.yAxisWidths=t,this.recalculateBounds())}setXAxisHeight(t){t!==this.xAxisHeight&&(this.xAxisHeight=t,this.recalculateBounds())}setPanesOrder(t){this.panesOrder=t,this.recalculateBounds()}recalculatePanesHeightRatios(){this.calculateGraphsHeightRatios(),this.recalculateBounds()}calculateGraphsHeightRatios(){let t=this.graphsHeightRatio[ht];const e=[];e.push(...this.panesOrder.filter(v=>v!==ht)),this.panesOrder.forEach(v=>{this.graphsHeightRatio[v]===0&&delete this.graphsHeightRatio[v]});const s=e.map(v=>this.graphsHeightRatio[v]===void 0?void 0:this.graphsHeightRatio[v]),r=s.filter(v=>v!==void 0).length,i=s.filter(v=>v===void 0).length;let a=0,o=0,l=1,c=0;i>0&&([l,c]=Jo(e.length),t*=l),r===0&&(t=1-c*i),o=1-t-c*i,s.forEach(v=>{v&&(o-=v*l)}),a=o/(e.length+1);const h=s.map(v=>v?v*l+a:c+a);t+=a,this._graphsHeightRatio={},this.graphsHeightRatio[ht]=t,h.forEach((v,p)=>{const C=e[p];this.graphsHeightRatio[C]=v})}recalculateNavigationMapElementBounds(){var t,e,s,r;if(this.config.components.navigationMap.visible){const i=this.getBounds(H.N_MAP),{height:a,width:o}=this.config.components.navigationMap.knots,l=a!=null?a:0,c=Yn()?o*mr:o!=null?o:0,h=l?i.y+(i.height-l)/2:i.y,v=(e=(t=this.config.components.navigationMap)==null?void 0:t.timeLabels)==null?void 0:e.visible,p=Q=>Io(this.canvasModel.ctx,Q,this.formatterFactory,this.config)[0],C=It((r=(s=this.mainCandleSeries)==null?void 0:s.getSeriesInViewport())!=null?r:[]),O=v&&C.length?p(C[0].candle.timestamp):0,B=v&&C.length?p(C[C.length-1].candle.timestamp):0,Y=Math.max(O,B);if(v){const Q=this.getBounds(H.N_MAP_LABEL_L);Q.x=i.x,Q.y=i.y,Q.width=Y,Q.height=i.height;const it=this.getBounds(H.N_MAP_LABEL_R);it.x=i.x+i.width-Y,it.y=i.y,it.width=Y,it.height=i.height}const k=this.getBounds(H.N_MAP_BTN_L);k.x=i.x+Y,k.y=i.y,k.width=Un,k.height=i.height;const z=this.getBounds(H.N_MAP_BTN_R);z.x=i.x+i.width-Un-Y,z.y=i.y,z.width=Un,z.height=i.height;const Z=this.getBounds(H.N_MAP_KNOT_L);Z.x=(z.x-k.x-k.width)*this.leftRatio+k.x+k.width,Z.y=h,Z.width=c!=null?c:Wn,Z.height=l!=null?l:i.height;const J=this.getBounds(H.N_MAP_KNOT_R);J.x=(z.x-k.x-k.width)*this.rightRatio+k.x+k.width-Wn,J.y=h,J.width=c!=null?c:Wn,J.height=l!=null?l:i.height;const K=this.getBounds(H.N_MAP_SLIDER_WINDOW);K.x=Z.x+Z.width,K.y=i.y,K.width=J.x-K.x,K.height=i.height;const U=this.getBounds(H.N_MAP_CHART);U.x=k.x+k.width,U.y=i.y,U.width=z.x-U.x,U.height=i.height}}isVolumesInSeparatePane(){return this.config.components.volumes.visible&&this.config.components.volumes.showSeparately}getBounds(t){return this.bounds[t]===void 0&&(this.bounds[t]=this.copyOf(gr)),this.bounds[t]}getCanvasOnPageLocation(){return this.canvasOnPageLocation}getBoundsPanes(){return this.panesOrder.reduce((t,e)=>fr(se({},t),{[e]:this.bounds[H.PANE_UUID(e)]}),{})}getBoundsHitTest(t,e=tn){const{extensionX:s,extensionY:r,wholePage:i}=se(se({},tn),e);return i?(a,o)=>{const l=this.getBounds(t);return a>l.pageX-s&&a<l.pageX+l.width+s&&o>l.pageY-r&&o<l.pageY+l.height+r}:(a,o)=>{const l=this.getBounds(t);return a>l.x-s&&a<l.x+l.width+s&&o>l.y-r&&o<l.y+l.height+r}}static hitTestOf(t,e=tn){const{extensionX:s,extensionY:r,wholePage:i}=se(se({},tn),e);return i?(a,o)=>a>t.pageX-s&&a<t.pageX+t.width+s&&o>t.pageY-r&&o<t.pageY+t.height+r:(a,o)=>a>t.x-s&&a<t.x+t.width+s&&o>t.y-r&&o<t.y+t.height+r}isChartBoundsAvailable(){const t=this.getBounds(H.CANVAS);return t.width>0&&t.height>0}resizePaneVertically(t,e){const s=this.panesOrder.indexOf(t),r=this.getBounds(H.PANE_UUID_RESIZER(t));this.doResizePaneVertically(s,r.y-e),this.barResizerChangedSubject.next()}doResizePaneVertically(t,e){const s=t-1,r=this.getBounds(H.ALL_PANES).height,i=this.config.components.paneResizer.height+$o,a=r*this.graphsHeightRatio[this.panesOrder[t]],o=r*this.graphsHeightRatio[this.panesOrder[s]],l=a+e>i,c=o-e>i;if(l&&c){const h=e/r;this.graphsHeightRatio[this.panesOrder[t]]+=h,this.graphsHeightRatio[this.panesOrder[s]]-=h,this.recalculateBounds()}}notifyBoundsSubscribers(){Object.keys(this.boundsChangedSubscriptions).forEach(t=>{this.boundsChangedSubscriptions[t].next(this.getBounds(t))}),this.boundsChangedSubject.next()}observeBoundsChanged(t){let e=this.boundsChangedSubscriptions[t];return e||(e=new ee(this.getBounds(t)),this.boundsChangedSubscriptions[t]=e),e.pipe(yt(s=>this.copyOf(s)),Gt((s,r)=>this.sameBounds(s,r)))}observeAnyBoundsChanged(){return this.boundsChangedSubject.asObservable()}copyOf(t){return se({},t)}copyBounds(t,e){e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height}sameBounds(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}applyDefaultBounds(t){this.copyBounds(gr,t)}setMainCandleSeries(t){this.mainCandleSeries=t}}const Ko={0:1,1:.8,2:.6,3:.5,4:.4,5:.2},Jo=n=>{var t;const e=(t=Ko[n])!=null?t:.4,s=(1-e)/n;return[e,s]},Ag=(n,t)=>n.x>t.x&&n.x<t.x+t.width&&n.y>t.y&&n.y<t.y+t.height,Qo=(n,t)=>n>t.y&&n<t.y+t.height,Me=(n,t,e,s,r,i,a)=>{const o=n[t];if(o)return o.x=e,o.y=s,o.pageX=e+a.x,o.pageY=s+a.y,o.width=r,o.height=i,o;const l={x:e,y:s,pageX:e+a.x,pageY:s+a.y,width:r,height:i};return n[t]=l,l},pr=(n,t)=>Math.min(Math.max(n,t.y),t.y+t.height),tn={extensionX:0,extensionY:0,wholePage:!1},br=(n,t)=>n.width===t.width&&n.height===t.height;var qo=function(n){L(t,n);function t(e,s){return n.call(this)||this}return t.prototype.schedule=function(e,s){return s===void 0&&(s=0),this},t}(Ct),en={setInterval:function(n,t){for(var e=[],s=2;s<arguments.length;s++)e[s-2]=arguments[s];var r=en.delegate;return r!=null&&r.setInterval?r.setInterval.apply(r,x([n,t],b(e))):setInterval.apply(void 0,x([n,t],b(e)))},clearInterval:function(n){var t=en.delegate;return((t==null?void 0:t.clearInterval)||clearInterval)(n)},delegate:void 0},tl=function(n){L(t,n);function t(e,s){var r=n.call(this,e,s)||this;return r.scheduler=e,r.work=s,r.pending=!1,r}return t.prototype.schedule=function(e,s){var r;if(s===void 0&&(s=0),this.closed)return this;this.state=e;var i=this.id,a=this.scheduler;return i!=null&&(this.id=this.recycleAsyncId(a,i,s)),this.pending=!0,this.delay=s,this.id=(r=this.id)!==null&&r!==void 0?r:this.requestAsyncId(a,this.id,s),this},t.prototype.requestAsyncId=function(e,s,r){return r===void 0&&(r=0),en.setInterval(e.flush.bind(e,this),r)},t.prototype.recycleAsyncId=function(e,s,r){if(r===void 0&&(r=0),r!=null&&this.delay===r&&this.pending===!1)return s;s!=null&&en.clearInterval(s)},t.prototype.execute=function(e,s){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(e,s);if(r)return r;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,s){var r=!1,i;try{this.work(e)}catch(a){r=!0,i=a||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),i},t.prototype.unsubscribe=function(){if(!this.closed){var e=this,s=e.id,r=e.scheduler,i=r.actions;this.work=this.state=this.scheduler=null,this.pending=!1,At(i,this),s!=null&&(this.id=this.recycleAsyncId(r,s,null)),this.delay=null,n.prototype.unsubscribe.call(this)}},t}(qo),Xn={now:function(){return(Xn.delegate||Date).now()},delegate:void 0},Cr=function(){function n(t,e){e===void 0&&(e=n.now),this.schedulerActionCtor=t,this.now=e}return n.prototype.schedule=function(t,e,s){return e===void 0&&(e=0),new this.schedulerActionCtor(this,t).schedule(s,e)},n.now=Xn.now,n}(),el=function(n){L(t,n);function t(e,s){s===void 0&&(s=Cr.now);var r=n.call(this,e,s)||this;return r.actions=[],r._active=!1,r}return t.prototype.flush=function(e){var s=this.actions;if(this._active){s.push(e);return}var r;this._active=!0;do if(r=e.execute(e.state,e.delay))break;while(e=s.shift());if(this._active=!1,r){for(;e=s.shift();)e.unsubscribe();throw r}},t}(Cr),yr=new el(tl),nl=yr;function sl(n,t){return y(function(e,s){var r=t!=null?t:{},i=r.leading,a=i===void 0?!0:i,o=r.trailing,l=o===void 0?!1:o,c=!1,h=null,v=null,p=!1,C=function(){v==null||v.unsubscribe(),v=null,l&&(Y(),p&&s.complete())},O=function(){v=null,p&&s.complete()},B=function(k){return v=Qt(n(k)).subscribe(Wt(s,C,O))},Y=function(){if(c){c=!1;var k=h;h=null,s.next(k),!p&&B(k)}};e.subscribe(Wt(s,function(k){c=!0,h=k,!(v&&!v.closed)&&(a?Y():B(k))},function(){p=!0,!(l&&c&&v&&!v.closed)&&s.complete()}))})}function rl(n){return n instanceof Date&&!isNaN(n)}function il(n,t,e){n===void 0&&(n=0),e===void 0&&(e=nl);var s=-1;return t!=null&&(Ns(t)?e=t:s=t),new Pt(function(r){var i=rl(n)?+n-e.now():n;i<0&&(i=0);var a=0;return e.schedule(function(){r.closed||(r.next(a++),0<=s?this.schedule(void 0,s):r.complete())},i)})}function Ne(n,t,e){t===void 0&&(t=yr);var s=il(n,t);return sl(function(){return s},e)}class tt{constructor(){this.subscriptions=[],this._state="initial",this.entities=[]}doActivate(){}doDeactivate(){this.subscriptions.forEach(t=>t()),this.subscriptions=[]}enable(){this._state!=="active"&&(this._state="deactivated",this.activate())}disable(){this._state!=="disabled"&&(this.deactivate(),this._state="disabled")}activate(){this._state!=="disabled"&&(this._state!=="active"&&(this.doActivate(),this._state="active"),this.entities.forEach(t=>t.activate()))}deactivate(){this._state!=="disabled"&&(this._state!=="deactivated"&&(this.doDeactivate(),this._state="deactivated"),this.entities.forEach(t=>t.deactivate()))}getState(){return this._state}addSubscription(t){this.subscriptions.push(t)}addRxSubscription(t){t&&this.subscriptions.push(t.unsubscribe.bind(t))}addChildEntity(t){this.entities.push(t),this._state==="active"&&t.activate()}removeChildEntity(t){this.entities=this.entities.filter(e=>e!==t)}}class al extends tt{constructor(t,e,s,r){super(),this.element=t,this.canvasInputListener=e,this.canvasBoundsContainer=s,this.hitTestCanvasModel=r,this.normalLayer=new Map,this.extensionLayer=new Map,this.cursorChangedSubject=new V}doActivate(){super.doActivate(),this.canvasInputListener.observeMouseMoveNoDrag().pipe(Ne(100,void 0,{trailing:!0})).subscribe(t=>{const e=this.hitTestCanvasModel.resolveCursor(t);if(e!==void 0){this.updateCursor(e);return}t&&(this.normalLayer.forEach(s=>{s.hitTest(t.x,t.y)&&this.updateCursor(s.cursor)}),this.extensionLayer.forEach(s=>{s.hitTest(t.x,t.y)&&this.updateCursor(s.cursor)}))})}setCursorForBounds(t,e,s,r=0){const i=zn.hitTestOf(e,{extensionY:r});r?this.extensionLayer.set(t,{cursor:s,hitTest:i}):this.normalLayer.set(t,{cursor:s,hitTest:i})}setCursorForCanvasEl(t,e,s){this.observeCursorType(t,e,s)}removeCursorForCanvasEl(t){this.normalLayer.delete(t),this.extensionLayer.delete(t)}observeCursorChanged(){return this.cursorChangedSubject.pipe(Gt())}observeCursorType(t,e,s){const r=s?this.canvasBoundsContainer.getBoundsHitTest(t,{extensionY:s}):this.canvasBoundsContainer.getBoundsHitTest(t);s?this.extensionLayer.set(t,{cursor:e,hitTest:r}):this.normalLayer.set(t,{cursor:e,hitTest:r})}updateCursor(t){this.element.style.cursor!==t&&(this.element.style.cursor=t,this.cursorChangedSubject.next(t))}}const ol=n=>{const t=n.canvasArea!==null,e=n.snapshotCanvas!==null,s=n.backgroundCanvas!==null,r=n.mainCanvas!==null,i=n.yAxisLabelsCanvas!==null,a=n.crossToolCanvas!==null,o=n.hitTestCanvas!==null,l=n.chartResizer!==null,c=n.chartContainer!==null,h=n.dynamicObjectsCanvas!==null;return t&&e&&s&&r&&i&&a&&o&&l&&c&&h},ll=n=>`<div data-element="chartResizer" style="position: relative; min-height: 20px; height: 100%; width: 100%; touch-action: manipulation; z-index: 0;">
10
10
  <div data-element="chartContainer" style="position: absolute; height: 100%; width: 100%;" class="chart chartArea--graph">
11
11
  <div data-element="canvasArea" style="position: relative; height: 100%; width: 100%; touch-action: manipulation;">
12
12
  <canvas data-element="snapshotCanvas" style="z-index: 0"></canvas>
13
13
  <canvas data-element="backgroundCanvas" style="z-index: 1"></canvas>
14
14
  <canvas data-element="mainCanvas" style="z-index: 2"></canvas>
15
- <canvas data-element="staticDrawingCanvas" style="z-index: 3"></canvas>
16
- <canvas data-element="dataSeriesCanvas" style="z-index: 5"></canvas>
17
- <canvas data-element="overDataSeriesCanvas" style="z-index: 6"></canvas>
18
- <canvas data-element="dynamicDrawingCanvas" style="z-index: 7"></canvas>
19
- <canvas data-element="yAxisLabelsCanvas" style="z-index: 8"></canvas>
20
- <canvas data-element="crossToolCanvas" style="z-index: 9"></canvas>
21
- <canvas data-element="hitTestCanvas" style="z-index: 10"></canvas>
15
+ <canvas data-element="dynamicObjectsCanvas" style="z-index: 3"></canvas>
16
+ <canvas data-element="yAxisLabelsCanvas" style="z-index: 4"></canvas>
17
+ <canvas data-element="crossToolCanvas" style="z-index: 5"></canvas>
18
+ <canvas data-element="hitTestCanvas" style="z-index: 6"></canvas>
22
19
  ${n?` <p style="position: absolute; visibility: hidden;">If you have any suggestions or are experiencing any issues, please feel free to contact us at <a href="https://devexperts.com/dxcharts/">devexperts.com</a></p>
23
20
  `:""} </div>
24
21
  </div>
25
22
  </div>
26
- `;function dl(n){const e=document.createElement("template");return e.innerHTML=hl(n.devexpertsPromoLink),e}function ul(n){const e={},t=Array.from(n.querySelectorAll("[data-element]"));if(t.length!==0&&t.forEach(r=>{var s;e[(s=r.getAttribute("data-element"))!=null?s:""]=r}),cl(e))return e;throw new Error("Some chart elements are missing")}function fl(n){if(n.length>1){const e=n.reduce((s,i,a)=>{if(a!==n.length-1){const o=n[a+1].timestamp-i.timestamp;s[o]?s[o]++:s[o]=1}return s},{});let t=0,r;for(const s of Object.keys(e)){const i=parseInt(s,10),a=e[i];a>t&&i>0&&(t=a,r=i)}if(r)return r}}const kt=(n,e,t,r=1e3)=>{var s,i,a,o;const l=(i=(s=Yt(t))==null?void 0:s.timestamp)!=null?i:0,c=(o=(a=Ue(t))==null?void 0:a.timestamp)!=null?o:0;return n>c?e?{index:t.length-1+Math.ceil((n-c)/r),exact:!0}:{index:t.length-1,exact:!0}:n<l?e?{index:ve((n-l)/r),exact:!0}:{index:-1,exact:!0}:ct(t,n,h=>h.timestamp)},Vn=1;function sn(n,e){return e===n?"none":e>n?"up":"down"}function vl(n,e){return e>n?"up":"down"}function gl(n,e,t=!1){const{expansion:r,impVolatility:s,vwap:i,volume:a,timestamp:o}=n;let l=n.hi,c=n.lo,h=n.open;const v=n.close;t&&(l=v,c=v,h=v);let p=n.idx;return e!==void 0&&(p=e),{hi:l,lo:c,open:h,close:v,timestamp:o,volume:a,expansion:r,idx:p,impVolatility:s,vwap:i}}const ys={color:"#FF00FF",lineWidth:1,hoveredLineWidth:2},ws={paintConfig:[ys],type:"LINEAR",highLowActive:!0,visible:!0,labelLastValue:"viewport",labelMode:"label",labelAppearanceType:"badge"};var pl=Object.defineProperty,Ss=Object.getOwnPropertySymbols,ml=Object.prototype.hasOwnProperty,bl=Object.prototype.propertyIsEnumerable,xs=(n,e,t)=>e in n?pl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Cl=(n,e)=>{for(var t in e||(e={}))ml.call(e,t)&&xs(n,t,e[t]);if(Ss)for(var t of Ss(e))bl.call(e,t)&&xs(n,t,e[t]);return n};class yl{constructor(e,t,r,s){this.series=e,this.config=t,this.yAxisBoundsProvider=r,this.axisState=s}getUnorderedLabels(){if(this.config.visible){const t=this.config.labelLastValue==="series"?this.series.getLastDataSeriesPoint:this.series.getLastVisualSeriesPoint,r=this.yAxisBoundsProvider(),s=this.config.labelMode,i=this.config.labelAppearanceType,a=t();if(a!==void 0){const o=this.series.view.toY(a.close);if(isFinite(o)){const l=this.series.valueFormatter(a.close),c=this.getLabelDrawConfig();return[{labels:[Cl({y:o,description:this.series.name,mode:s,labelType:i,labelText:l},c)],axisState:this.axisState,bounds:r}]}}}return[]}getLabelDrawConfig(){var e;const t=this.series.config,s=((e=t.paintConfig[0])!=null?e:ys).color;return{textColor:Ht(s,"white","black"),bgColor:s,paddingBottom:t.labelPaddingBottom,paddingEnd:t.labelPaddingEnd,paddingTop:t.labelPaddingTop}}}let $e=window.devicePixelRatio,an=window.matchMedia(`screen and (resolution: ${window.devicePixelRatio}dppx)`);const Gn=()=>{an.removeEventListener("change",Gn),$e=window.devicePixelRatio,an=window.matchMedia(`screen and (resolution: ${window.devicePixelRatio}dppx)`),an.addEventListener("change",Gn)};an.addEventListener("change",Gn);const wl=()=>$e,Sl=n=>pt($e*n)/$e,se=n=>ve($e*n)/$e,Ms=n=>lo($e*n)/$e,Wt=n=>JSON.parse(JSON.stringify(n));function $n(n){return Object.entries(n)}const Ps=(n,e)=>{for(const[t,r]of Array.from(n.entries()))if(r===e)return t};function Ts(n){return Object.keys(n)}function _s(n,e){if(Object.is(n,e))return!0;if(typeof n!="object"||n===null||typeof e!="object"||e===null)return!1;const t=Object.keys(n),r=Object.keys(e);if(t.length!==r.length)return!1;for(let s=0,i=t.length;s<i;s++)if(!hasOwnProperty.call(e,t[s])||!_s(n[t[s]],e[t[s]]))return!1;return!0}function As(n){n===void 0&&(n={});var e=n.connector,t=e===void 0?function(){return new G}:e,r=n.resetOnError,s=r===void 0?!0:r,i=n.resetOnComplete,a=i===void 0?!0:i,o=n.resetOnRefCountZero,l=o===void 0?!0:o;return function(c){var h,v,p,y=0,E=!1,R=!1,N=function(){v==null||v.unsubscribe(),v=void 0},k=function(){N(),h=p=void 0,E=R=!1},U=function(){var Z=h;k(),Z==null||Z.unsubscribe()};return w(function(Z,K){y++,!R&&!E&&N();var q=p=p!=null?p:t();K.add(function(){y--,y===0&&!R&&!E&&(v=Zn(U,l))}),q.subscribe(K),!h&&y>0&&(h=new vt({next:function($){return q.next($)},error:function($){R=!0,N(),v=Zn(k,s,$),q.error($)},complete:function(){E=!0,N(),v=Zn(k,a),q.complete()}}),Ke(Z).subscribe(h))})(c)}}function Zn(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];if(e===!0){n();return}if(e!==!1){var s=new vt({next:function(){s.unsubscribe(),n()}});return Ke(e.apply(void 0,g([],P(t)))).subscribe(s)}}const on=(n,e)=>n/e,Pe=(n,e)=>n/e,tt=(n,e)=>n*e,Ds=(n,e)=>(n-e)*100/e,Es=(n,e)=>n*e/100+e,Ls=n=>Math.log2(n),Kn=n=>Math.pow(2,n);class xl extends te{constructor(){super(...arguments),this._xStart=0,this._xEnd=0,this._yStart=0,this._yEnd=0,this._zoomX=1,this._zoomY=1,this._inverseY=!1,this.changed=new G,this.xChanged=this.changed.pipe(ye(()=>({start:this.xStart,end:this.xEnd})),Ve((e,t)=>e.start===t.start&&e.end===t.end),As()),this.yChanged=this.changed.pipe(ye(()=>({start:this.yStart,end:this.yEnd})),Ve((e,t)=>e.start===t.start&&e.end===t.end),As())}toX(e){return this.getBounds().x+Pe(e-this.xStart,this.zoomX)}xPixels(e){return Pe(e,this.zoomX)}toY(e){return this.inverseY?this.getBounds().y+Pe(e-this.yStart,this.zoomY):this.getBounds().y+this.getBounds().height-Pe(e-this.yStart,this.zoomY)}yPixels(e){return Pe(e,this.zoomY)}fromX(e){const t=e-this.getBounds().x;return tt(t+Pe(this.xStart,this.zoomX),this.zoomX)}fromY(e){const t=e-this.getBounds().y;return this.inverseY?tt(t+Pe(this.yStart,this.zoomY),this.zoomY):tt(this.getBounds().height-t+Pe(this.yStart,this.zoomY),this.zoomY)}recalculateZoomX(){this.zoomX=this.calculateZoomX(this.xStart,this.xEnd)}recalculateZoomY(){this.zoomY=this.calculateZoomY(this.yStart,this.yEnd)}calculateZoomX(e,t){return on(t-e,this.getBounds().width)}calculateZoomY(e,t){return on(t-e,this.getBounds().height)}recalculateZoom(e=!0){this.recalculateZoomX(),this.recalculateZoomY(),e&&this.fireChanged()}setXScale(e,t,r=!0){this.xStart=e,this.xEnd=t,this.recalculateZoomX(),r&&this.fireChanged()}setYScale(e,t,r=!0){this.yStart=e,this.yEnd=t,this.recalculateZoomY(),r&&this.fireChanged()}export(){return{xStart:this.xStart,xEnd:this.xEnd,yStart:this.yStart,yEnd:this.yEnd,zoomX:this.zoomX,zoomY:this.zoomY,inverseY:this.inverseY}}apply(e){this.xStart=e.xStart,this.xEnd=e.xEnd,this.yStart=e.yStart,this.yEnd=e.yEnd,this.zoomX=e.zoomX,this.zoomY=e.zoomY,this.inverseY=e.inverseY,this.fireChanged()}fireChanged(){this.changed.next()}get xStart(){return this._xStart}set xStart(e){this._xStart=e}get xEnd(){return this._xEnd}set xEnd(e){this._xEnd=e}get yStart(){return this._yStart}set yStart(e){this._yStart=e}get yEnd(){return this._yEnd}set yEnd(e){this._yEnd=e}get zoomX(){return this._zoomX}set zoomX(e){this._zoomX=e}get zoomY(){return this._zoomY}set zoomY(e){this._zoomY=e}get inverseY(){return this._inverseY}set inverseY(e){this._inverseY=e}isViewportValid(){return this.xStart!==this.xEnd&&this.yStart!==this.yEnd&&isFinite(this.yStart)&&isFinite(this.yEnd)}}const Ml=(n,e)=>!Ts(n).some(t=>n[t]!==e[t]);class Pl{constructor(e,t){this.scaleModel=e,this.dataSeries=t,this.prevAnimationId=""}getBaselineForPercent(e){const t=this.scaleModel.currentAnimation;let r;if(t!=null&&t.animationInProgress){t.id!==this.prevAnimationId&&(this.initialBaseline=void 0,this.targetBaseline=void 0,this.prevAnimationId=t.id);const s=t.easingFn(t.getProgress());this.initialBaseline===void 0&&(this.initialBaseline=e(ct(this.dataSeries.visualPoints,t.xStart,i=>i.centerUnit).index)),this.targetBaseline===void 0&&(this.targetBaseline=e(ct(this.dataSeries.visualPoints,t.animationConfig.targetXStart,i=>i.centerUnit).index)),r=this.initialBaseline+(this.targetBaseline-this.initialBaseline)*s}else r=e();return r}}class Is{constructor(e,t,r,s){this.dataSeries=e,this.scaleModel=t,this.getAxisType=r,this.getBaseLine=s,this.toY=i=>this.scaleModel.toY(this.toAxisUnits(i)),this.toX=i=>this.scaleModel.toX(i),this.xPixels=i=>this.scaleModel.xPixels(i),this.yPixels=i=>this.scaleModel.yPixels(i),this.percentAnimationHandler=new Pl(this.scaleModel,this.dataSeries)}toAxisUnits(e,t=this.getBaseLine){switch(this.getAxisType()){case"percent":const r=this.percentAnimationHandler.getBaselineForPercent(t);return Ds(e,r);case"logarithmic":return Ls(e);case"regular":return e}}priceFromY(e){const t=this.scaleModel.fromY(e);return this.fromAxisUnits(t)}fromAxisUnits(e){switch(this.getAxisType()){case"percent":return Es(e,this.getBaseLine());case"logarithmic":return Kn(e);case"regular":return e}}}var Tl=Object.defineProperty,_l=Object.defineProperties,Al=Object.getOwnPropertyDescriptors,Os=Object.getOwnPropertySymbols,Dl=Object.prototype.hasOwnProperty,El=Object.prototype.propertyIsEnumerable,Bs=(n,e,t)=>e in n?Tl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ll=(n,e)=>{for(var t in e||(e={}))Dl.call(e,t)&&Bs(n,t,e[t]);if(Os)for(var t of Os(e))El.call(e,t)&&Bs(n,t,e[t]);return n},Il=(n,e)=>_l(n,Al(e));class Ut{constructor(e,t){this.centerUnit=e,this.close=t}y(e){return se(e.toY(this.close))}x(e){return se(e.toX(this.centerUnit))}clone(){return new Ut(this.centerUnit,this.close)}}class Rs extends te{constructor(e,t,r=Wt(ws)){var s;super(),this.extentComponent=e,this.id=t,this.name="",this.hovered=!1,this._dataPoints=[],this.pricePrecisions=[2],this.linkedDataSeriesModels=[],this._dataPointsFlat=[],this._visualPoints=[],this._visualPointsFlat=[],this.dataIdxStart=0,this.dataIdxEnd=0,this.getPaintConfig=i=>{var a;return(a=this.config.paintConfig[i])!=null?a:this.config.paintConfig[0]},this.getBaseLine=(i=this.dataIdxStart)=>{var a,o;return(o=(a=this.visualPoints[i])==null?void 0:a.close)!=null?o:1},this.getTextForPoint=i=>`${i.close}`,this.getLastVisualSeriesPoint=()=>{const i=this.visualPoints,a=ct(i,this.scaleModel.xEnd,o=>o.centerUnit).index;return i[a]},this.getLastDataSeriesPoint=()=>{const i=this.visualPoints;return Ue(i)},this.config=Ge(r,ws),this.scaleModel=e.scaleModel,this.view=new Is(this,this.scaleModel,()=>this.extentComponent.getAxisType(),this.getBaseLine),this.yAxisLabelProvider=new yl(this,this.config,e.getYAxisBounds,(s=e.yAxisComponent)==null?void 0:s.state),this.highLowProvider=Bl(this),e.addDataSeries(this),this.activate()}get dataPoints2D(){return this._dataPoints}get dataPoints(){return this._dataPointsFlat}set dataPoints(e){this._dataPoints=Kr(e),this._dataPointsFlat=this._dataPoints.flat(),this.visualPoints=this._toVisualPoints(this._dataPoints)}get visualPoints(){return this._visualPointsFlat}get visualPoints2D(){return this._visualPoints}set visualPoints(e){this._visualPoints=Kr(e),this._visualPointsFlat=this._visualPoints.flat()}doActivate(){this.addRxSubscription(this.scaleModel.xChanged.subscribe(()=>this.recalculateDataViewportIndexes())),this.addRxSubscription(this.scaleModel.scaleInversedSubject.subscribe(()=>this.recalculateVisualPoints()))}setDataPoints(e){this.dataPoints=e,this.extentComponent.paneComponent.updateView()}_toVisualPoints(e){return e.map(t=>this.toVisualPoints(t))}moveToExtent(e){var t;this.extentComponent.removeDataSeries(this),this.extentComponent=e,this.scaleModel=e.scaleModel,this.view=new Is(this,this.scaleModel,()=>this.extentComponent.getAxisType(),this.getBaseLine),this.yAxisLabelProvider.yAxisBoundsProvider=e.getYAxisBounds,this.yAxisLabelProvider.axisState=(t=e.yAxisComponent)==null?void 0:t.state,this.deactivate(),this.activate(),e.addDataSeries(this)}toVisualPoints(e){return e.map((t,r)=>({centerUnit:r,close:t.close}))}setType(e){this.config.type=e,this.extentComponent.dataSeriesCanvasModel.fireDraw()}recalculateVisualPoints(){this.visualPoints=this._toVisualPoints(this.dataPoints2D)}recalculateDataViewportIndexes(e=this.scaleModel.xStart,t=this.scaleModel.xEnd){const{dataIdxStart:r,dataIdxEnd:s}=this.calculateDataViewportIndexes(e,t);this.dataIdxStart=r,this.dataIdxEnd=s}calculateDataViewportIndexes(e,t){const r=ct(this.visualPoints,e,i=>i.centerUnit).index,s=ct(this.visualPoints,t,i=>i.centerUnit).index;return{dataIdxStart:r,dataIdxEnd:s}}valueFormatter(e){return qn(e)}getSeriesInViewport(e,t){let r=this.dataIdxStart,s=this.dataIdxEnd;if(t!==void 0&&e!==void 0){const i=this.calculateDataViewportIndexes(e,t);r=i.dataIdxStart,s=i.dataIdxEnd}return To(this.visualPoints2D,r,s)}}const Ol=n=>{const e={high:Number.MIN_SAFE_INTEGER,low:Number.MAX_SAFE_INTEGER,highIdx:0,lowIdx:0};for(let t=0;t<n.length;t++){const r=n[t];r.close>e.high&&(e.high=r.close,e.highIdx=t),r.close<e.low&&(e.low=r.close,e.lowIdx=t)}return e},Bl=n=>({isHighLowActive:()=>n.config.highLowActive,calculateHighLow:e=>{const t=Ol(n.getSeriesInViewport(e==null?void 0:e.xStart,e==null?void 0:e.xEnd).flat());return Il(Ll({},t),{high:n.view.toAxisUnits(t.high),low:n.view.toAxisUnits(t.low)})}}),qn=n=>{const t=i=>Math.ceil(Math.log(Math.abs(i))*Math.LOG10E),s=((i,a=5)=>Math.max(0,a-Math.max(0,t(i))))(n);return we.makeDecimal(n,s)};class ln extends Ut{constructor(e,t,r,s,i,a,o,l,c=!1,h=!1,v=!1){super(e,s),this.startUnit=e-t/2,this.width=t,this.open=r,this.high=i,this.low=a,this.name=o,this.candle=l,this.hasBorder=c,this.isActive=h,this.isHollow=v}bodyHeight(e){return se(Math.abs(e.toY(this.open)-e.toY(this.close)))}candleHeight(e){return se(Math.abs(e.toY(this.high)-e.toY(this.low)))}bodyAsVLine(e){if(this.width<2)return[this.centerUnit,this.yLineStart(e),this.width,this.candleHeight(e)]}bodyRect(e){return[this.startUnit,this.yBodyStart(e),this.width,this.bodyHeight(e)]}getCandle(){return this.candle}yBodyKeyPoints(e){const t=se(e.toY(this.high)),r=se(e.toY(this.low)),s=se(e.toY(this.open)),i=se(e.toY(this.close)),[a,o]=s>i?[i,s]:[s,i],[l,c]=t>r?[r,t]:[t,r];return[l,a,o,c]}yLineEnd(e){return se(Math.max(e.toY(this.high),e.toY(this.low)))}yLineStart(e){return se(Math.min(e.toY(this.high),e.toY(this.low)))}yBodyStart(e){return se(Math.min(e.toY(this.open),e.toY(this.close)))}yBodyEnd(e){return se(Math.max(e.toY(this.open),e.toY(this.close)))}xCenter(e){return this.x(e)}xStart(e){return Sl(e.toX(this.startUnit))}}const At=60,Fs=(n,e,t,r,s=At)=>{const i=zt(n,r,s);i.volume=t;let a;if(e.length===0)a=0;else if(r>=e.length){const o=e[e.length-1],c=(r-(e.length-1))*t;a=o.centerUnit+c}else{const o=e[0],c=-r*t;a=o.centerUnit-c}return new ln(a,t,i.open,i.close,i.lo,i.hi,sn(i.open,i.close),i)},Rl=(n,e,t,r,s=At)=>{const i=Fl(n,r,s);let a;if(e.length===0)a=0;else if(r>=e.length){const o=e[e.length-1],c=(r-(e.length-1))*t;a=o.centerUnit+c}else{const o=e[0],c=-r*t;a=o.centerUnit-c}return new Ut(a,i.close)},zt=(n,e,t=At)=>({hi:NaN,lo:NaN,open:NaN,close:NaN,timestamp:Ys(n,e,t),volume:NaN,expansion:!0,idx:e}),Fl=(n,e,t=At)=>({close:NaN,timestamp:Ys(n,e,t)});function Ys(n,e,t=At){var r,s;const i=pt(e);if(n.length===0)return 0;const a=Ue(n);if(i>=n.length&&a)return Hs(a,n.length-1,i,t);const o=Yt(n);return i<0&&o?Hs(o,0,i,t):(s=(r=n[i])==null?void 0:r.timestamp)!=null?s:0}const Hs=(n,e,t,r=At)=>n.timestamp+(t-(e!=null?e:0))*r;class Yl{constructor(e){this.type=e,this.mainDataPoints=[],this.mainVisualPoints=[],this.dataUpdatedSubject=new G,this.dataSetSubject=new G,this.dataRemovedSubject=new G,this.dataPrependSubject=new G,this.meanDataWidth=1,this.period=1}dataFromTimestamp(e,t=!0){const r=kt(e,t,this.mainDataPoints,this.period);return this.dataFromIdx(r.index)}recalculatePeriod(){const e=fl(this.mainDataPoints);e&&(this.period=e)}dataFromIdx(e){const t=this.mainVisualPoints[e];return t||(this.type==="candle"?Fs(this.mainDataPoints,this.mainVisualPoints,this.meanDataWidth,e,this.period):Rl(this.mainDataPoints,this.mainVisualPoints,this.meanDataWidth,e,this.period))}}var Hl=Object.defineProperty,Ns=Object.getOwnPropertySymbols,Nl=Object.prototype.hasOwnProperty,kl=Object.prototype.propertyIsEnumerable,ks=(n,e,t)=>e in n?Hl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Wl=(n,e)=>{for(var t in e||(e={}))Nl.call(e,t)&&ks(n,t,e[t]);if(Ns)for(var t of Ns(e))kl.call(e,t)&&ks(n,t,e[t]);return n};class Ul{constructor(e,t){this.canvasModel=e,this.config=t,this.prevState={},this.prevWidth=0,this.prevHeight=0}draw(){if(_s(this.config.colors.chartAreaTheme,this.prevState)&&this.prevHeight===this.canvasModel.height&&this.prevWidth===this.canvasModel.width)return;this.canvasModel.clear();const e=this.canvasModel.ctx;if(this.config.colors.chartAreaTheme.backgroundMode==="gradient"){const t=e.createLinearGradient(0,0,this.canvasModel.width,this.canvasModel.height);t.addColorStop(0,this.config.colors.chartAreaTheme.backgroundGradientTopColor),t.addColorStop(1,this.config.colors.chartAreaTheme.backgroundGradientBottomColor),e.fillStyle=t}else e.fillStyle=this.config.colors.chartAreaTheme.backgroundColor;e.fillRect(0,0,this.canvasModel.width,this.canvasModel.height),this.prevState=Wl({},this.config.colors.chartAreaTheme),this.prevWidth=this.canvasModel.width,this.prevHeight=this.canvasModel.height}getCanvasIds(){return[this.canvasModel.canvasId]}}const cn=(n,e,t,r,s,i,a)=>{const o=wl(),l=[t*o,r*o,s*o,i*o];let c=n.getImageData(...l);if(a!==void 0){const h=c.data[3]/255;if(h===1)for(let v=3;v<c.data.length;v+=4)c.data[v]=ve(c.data[v]*a);else for(let v=0;v<c.data.length;v++){const p=c.data[v];c.data[v]=v%4===3?ve(p*a):ve(h*p)}c=new ImageData(c.data,c.width,c.height,{colorSpace:c.colorSpace})}e.putImageData(c,l[0],l[1])},Ws=(n,{x:e,width:t,activeCandle:r})=>new ln(e,t,n.open,n.close,n.hi,n.lo,sn(n.open,n.close),n,!0,Jn(n,r)),zl=(n,{x:e,width:t,activeCandle:r,prevCandle:s})=>{var i;return new ln(e,t,n.open,n.close,n.hi,n.lo,vl((i=s==null?void 0:s.close)!=null?i:n.close,n.close),n,!0,Jn(n,r),n.close>n.open)},Xl=(n,{x:e,width:t,activeCandle:r,prevCandle:s})=>{var i;return new ln(e,t,n.open,n.close,n.hi,n.lo,sn((i=s==null?void 0:s.close)!=null?i:n.close,n.close),n,!0,Jn(n,r),n.close>n.open)},Jn=(n,e)=>{const t=e&&e.idx===n.idx;return t!=null?t:!1},Us=()=>Vn,bt=class{static autoDetectIncrementOfValueRange(n){const e=this.getDigitsInNumber(n);return n===0?.01:Math.pow(10,e-3)}static getDigitsInNumber(n){const e=r=>ve(Math.log10((r^r>>31)-(r>>31)))+1;let t=e(n);return t===1&&n<1&&(t=e(n*1e9)-9),t}static getPriceIncrement(n,e=[]){if(!this.validatePriceIncrementsOrPrecisions(e))return this.DEFAULT_INCREMENT;if(isNaN(n))return Math.round(e[0]);n=Math.abs(n);let t=1;const r=1e-6;for(;t<e.length&&n>e[t]+Math.min(e[t-1],e[t+1])*r;)t+=2;return t>=e.length||n<e[t]-Math.min(e[t-1],e[t+1])*r?e[t-1]:Math.min(e[t-1],e[t+1])}static getPricePrecision(n,e){if(!this.validatePriceIncrementsOrPrecisions(e))return 0;if(isNaN(n))return Math.round(e[0]);n=Math.abs(n);let t=1;for(;t<e.length&&n>e[t];)t+=2;return Math.round(e[t-1])}static roundPriceToIncrement(n,e,t){const r=bt.getPriceIncrement(t||n,e);return we.roundToNearest(n,r)}static computePrecisions(n){const e=[...n];for(let t=0;t<n.length;t+=2)e[t]=bt.calculatePrecision(n[t]);for(let t=1;t<n.length;t+=2)e[t]=n[t]+Math.min(n[t-1],n[t+1])*bt.RELATIVE_EPS;return e}static calculatePrecision(n){let e=n>1?Math.abs(Math.floor(n)-n):n;for(let t=0;t<bt.MAXIMUM_PRECISION;t++){const r=Math.floor(e+.5),s=Math.abs(e*bt.RELATIVE_EPS);if(r>=e-s&&r<=e+s)return t;e*=10}return bt.MAXIMUM_PRECISION}static validatePriceIncrementsOrPrecisions(n){return!(n.length===0||!Array.isArray(n)||n.findIndex(e=>e!==0)===-1)}};let ze=bt;ze.DEFAULT_INCREMENT=.01,ze.DEFAULT_PRECISION=2,ze.RELATIVE_EPS=1e-8,ze.MAXIMUM_PRECISION=10;var jl=Object.defineProperty,Vl=Object.defineProperties,Gl=Object.getOwnPropertyDescriptors,zs=Object.getOwnPropertySymbols,$l=Object.prototype.hasOwnProperty,Zl=Object.prototype.propertyIsEnumerable,Xs=(n,e,t)=>e in n?jl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Kl=(n,e)=>{for(var t in e||(e={}))$l.call(e,t)&&Xs(n,t,e[t]);if(zs)for(var t of zs(e))Zl.call(e,t)&&Xs(n,t,e[t]);return n},ql=(n,e)=>Vl(n,Gl(e));const Jl=n=>({isHighLowActive:()=>!0,calculateHighLow:e=>{const t=e?e.xStart:n.scaleModel.xStart,r=e?e.xEnd:n.scaleModel.xEnd,{dataIdxStart:s,dataIdxEnd:i}=n.calculateDataViewportIndexes(t,r),a=n.visualPoints.slice(s,i+1),o=js(a),l=()=>{var c,h;return(h=(c=n.visualPoints[s])==null?void 0:c.close)!=null?h:1};return ql(Kl({},o),{low:n.view.toAxisUnits(o.low,l),high:n.view.toAxisUnits(o.high,l)})}}),js=n=>{const e={high:Number.MIN_SAFE_INTEGER,low:Number.MAX_SAFE_INTEGER,highIdx:0,lowIdx:0};for(let t=0;t<n.length;t++){const r=n[t];r.high>e.high&&(e.high=r.high,e.highIdx=t),r.low<e.low&&(e.low=r.low,e.lowIdx=t)}return e},Ql=30,ec=(n,e,t)=>{const r=n.startViewportMovementAnimation(e,{duration:Ql,targetXStart:t.xStart,targetXEnd:t.xEnd,targetYStart:t.yStart,targetYEnd:t.yEnd,targetZoomX:t.zoomX,targetZoomY:t.zoomY});e.currentAnimation=r};class tc{constructor(e,t){this.delegate=e,this.auto=!0,this.highLowPostPorcessor={},this.highLowProviders=t!=null?t:{}}setHighLowProvider(e,t){this.highLowProviders[e]=t}deleteHighLowProvider(e){delete this.highLowProviders[e]}setHighLowPostProcessor(e,t){this.highLowPostPorcessor[e]=t}setAutoAndRecalculateState(e,t){this.auto=t,t&&nc(this.delegate,e,Object.values(this.highLowProviders),Object.values(this.highLowPostPorcessor))}}const nc=(n,e,t,r)=>{const s=t.filter(o=>o.isHighLowActive()).map(o=>o.calculateHighLow(e)),i=Vs(s),a=r.reduce((o,l)=>l(o),i);e.yStart=a.low,e.yEnd=a.high,e.zoomY=n.calculateZoomY(e.yStart,e.yEnd)};function Vs(n){if(n.length===0)return rc();let e=n[0].high,t=n[0].low;return n.forEach(r=>{isFinite(r.high)&&r.high>=e&&(e=r.high),isFinite(r.low)&&r.low<=t&&(t=r.low)}),{low:t,high:e}}const rc=()=>({high:Number.MIN_SAFE_INTEGER,low:Number.MAX_SAFE_INTEGER});var sc=Object.defineProperty,Gs=Object.getOwnPropertySymbols,ic=Object.prototype.hasOwnProperty,ac=Object.prototype.propertyIsEnumerable,$s=(n,e,t)=>e in n?sc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Zs=(n,e)=>{for(var t in e||(e={}))ic.call(e,t)&&$s(n,t,e[t]);if(Gs)for(var t of Gs(e))ac.call(e,t)&&$s(n,t,e[t]);return n};const oc=(n,e,t,r)=>{var s,i,a,o;const l=Zs({},n),c=(i=(s=e[t])==null?void 0:s.startUnit)!=null?i:0,h=(o=(a=_o(-t,e))==null?void 0:a.startUnit)!=null?o:0;let v=n.xStart,p=n.xEnd;return l.xStart>=h&&(v=h,p=p-(l.xStart-h)),l.xEnd<c&&(v=c-tt(r.width,l.zoomX),p=c),l.xStart=v,l.xEnd=p,l},lc=(n,e,t,r)=>{const s=Zs({},e),i=r(),a=s.xEnd-s.xStart,o=a<t.minCandles,l=i.width/t.minWidth,c=a>l;if(i.width>0){if(c)return s.xStart=s.xEnd-l,s.zoomX=on(s.xEnd-s.xStart,i.width),s;if(o)return s.xEnd=n.xEnd,s.xStart=s.xEnd-t.minCandles,s.zoomX=on(s.xEnd-s.xStart,i.width),s}return s},cc=(n,e)=>n/e,hc=(n,e)=>n/e,wv=(n,e)=>n*e,Ks=(n,e)=>{const t=n.zoomY;n.zoomY=hc(n.zoomX,e);const r=n.zoomY/t,s=n.yEnd-n.yStart,a=s*r-s;n.yEnd=n.yEnd+a},dc=(n,e)=>{const t=n.xStart;n.xStart=e,n.xEnd=n.xEnd+(e-t)},uc=(n,e)=>{const t=n.yStart;n.yStart=e,n.yEnd=n.yEnd+(e-t)},qs=(n,e,t,r,s)=>{const i=(e.xEnd-e.xStart)*r,a=i*t,o=i*(1-t);return s?(e.xStart=e.xStart+a,e.xEnd=e.xEnd-o):(e.xStart=e.xStart-a,e.xEnd=e.xEnd+o),e.zoomX=n.calculateZoomX(e.xStart,e.xEnd),e},fc=(n,e,t,r)=>qs(n,e,1,t,r);var vc=Object.defineProperty,Js=Object.getOwnPropertySymbols,gc=Object.prototype.hasOwnProperty,pc=Object.prototype.propertyIsEnumerable,Qs=(n,e,t)=>e in n?vc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,hn=(n,e)=>{for(var t in e||(e={}))gc.call(e,t)&&Qs(n,t,e[t]);if(Js)for(var t of Js(e))pc.call(e,t)&&Qs(n,t,e[t]);return n};const mc=()=>({high:Number.NEGATIVE_INFINITY,low:Number.POSITIVE_INFINITY,highIdx:0,lowIdx:0});class ei extends xl{constructor(e,t,r){super(),this.config=e,this.getBounds=t,this.canvasAnimation=r,this.scaleInversedSubject=new G,this.history=[],this.zoomXYRatio=0,this.xConstraints=[],this.scalePostProcessor=(s,i)=>this.xConstraints.reduce((a,o)=>o(s,a),i),this.state=Wt(e.scale),this.autoScaleModel=new tc(this),this.offsets=this.config.components.offsets,this.addXConstraint((s,i)=>lc(s,i,this.config.components.chart,this.getBounds))}addXConstraint(e){this.xConstraints=[...this.xConstraints,e]}updateOffsets(e){this.offsets=hn(hn({},this.offsets),e),this.doAutoScale(!0)}getOffsets(){return this.offsets}zoomXToPercent(e,t,r=!1,s=this.config.scale.zoomSensitivity){this.config.components.yAxis.type==="percent"&&this.haltAnimation();const i=this.export();qs(this,i,e,s,t),this.zoomXTo(i,r)}zoomXToEnd(e,t=this.config.scale.zoomSensitivity){this.config.components.yAxis.type==="percent"&&this.haltAnimation();const r=this.export();fc(this,r,t,e),this.zoomXTo(r)}haltAnimation(){var e;(e=this.currentAnimation)!=null&&e.animationInProgress&&(this.currentAnimation.finishAnimation(),this.doAutoScale())}zoomXTo(e,t){const r=hn({},e),s=this.scalePostProcessor(r,e);this.state.lockPriceToBarRatio&&Ks(s,this.zoomXYRatio),this.state.auto&&this.autoScaleModel.setAutoAndRecalculateState(s,!0),t?this.apply(s):ec(this.canvasAnimation,this,s)}setXScale(e,t){const r=this.export();super.setXScale(e,t,!1);const s=this.export(),i=this.scalePostProcessor(r,s);this.state.lockPriceToBarRatio&&Ks(i,this.zoomXYRatio),this.state.auto&&this.autoScaleModel.setAutoAndRecalculateState(i,!0),this.apply(i)}moveXStart(e){const t=this.export(),r=hn({},t);this.haltAnimation(),dc(t,e);const s=this.scalePostProcessor(r,t);this.state.auto&&this.autoScaleModel.setAutoAndRecalculateState(s,!0),this.apply(s)}moveYStart(e){if(this.haltAnimation(),!this.state.auto){const t=this.export();uc(t,e),this.apply(t)}}doAutoScale(e=!1){if(!this.isViewportAnimationInProgress()&&this.state.auto||e){const t=this.export();this.autoScaleModel.setAutoAndRecalculateState(t,!0),Ml(t,this.export())||this.apply(t)}}isViewportAnimationInProgress(){const e=this.currentAnimation;return e==null?void 0:e.animationInProgress}pushToHistory(e){this.history.push(e)}popFromHistory(){return this.history.pop()}clearHistory(){this.history=[]}isDefaultXBounds(){return this.xStart===0&&this.xEnd===0}isDefaultYBounds(){return this.yStart===0&&this.yEnd===0}isScaleReady(){return!this.isDefaultXBounds()&&!this.isDefaultYBounds()}autoScale(e=!0){this.config.components.yAxis.type==="percent"?this.state.auto=!0:this.state.auto=e,e&&(this.clearHistory(),this.doAutoScale())}setLockPriceToBarRatio(e=!1){const{type:t}=this.config.components.yAxis;if(t==="percent"||t==="logarithmic"){this.state.lockPriceToBarRatio=!1;return}e&&this.recalculateZoomXYRatio(),this.state.lockPriceToBarRatio=e}recalculateZoomXYRatio(){this.zoomXYRatio=cc(this.zoomX,this.zoomY)}}class bc extends ei{constructor(e,t,r,s){super(t,r,s),this.delegate=e,this.config=t,this.getBounds=r}doActivate(){this.addRxSubscription(this.delegate.xChanged.subscribe(()=>this.doAutoScale(this.state.auto)))}get xStart(){return this.delegate.xStart}set xStart(e){this.delegate.xStart=e}get xEnd(){return this.delegate.xEnd}set xEnd(e){this.delegate.xEnd=e}get zoomX(){return this.delegate.zoomX}set zoomX(e){this.delegate.zoomX=e}observeXChanged(){return this.delegate.xChanged}fireChanged(){this.delegate.changed.next(),this.changed.next()}}const Cc=tn().colors;class ht extends Rs{constructor(e,t,r,s,i,a,o,l=Cc){super(e,t),this.eventBus=r,this.candlesTransformersByChartType=a,this.candleWidthByChartType=o,this.colors=l,this.zippedHighLow=mc(),this.lastPriceMovement="none",this.lastVisualCandleChangedSubject=new G,this.meanCandleWidth=Vn,this._instrument=i,this.instrument=i,this.highLowProvider=Jl(this),this.scaleModel=s,this.name=i.symbol}get dataPoints(){return super.dataPoints}set dataPoints(e){super.dataPoints=e,this.applyPriceMovement()}get instrument(){return this._instrument}set instrument(e){var t;this._instrument=e,this.pricePrecisions=ze.computePrecisions((t=e.priceIncrements)!=null?t:[.01])}recalculateDataViewportIndexes(e=this.scaleModel.xStart,t=this.scaleModel.xEnd){super.recalculateDataViewportIndexes(e,t),this.recalculateZippedHighLow(),this.eventBus.fireDraw()}applyPriceMovement(){const e=Ue(this.dataPoints);e&&(this.lastPriceMovement=sn(e.open,e.close))}recalculateVisualPoints(){super.recalculateVisualPoints(),this.recalculateMeanCandleWidth(this.visualPoints)}recalculateZippedHighLow(){return this.zippedHighLow=js(this.visualPoints.slice(this.dataIdxStart,this.dataIdxEnd))}updateCurrentPrice(e){this.previousPrice=this.currentPrice||e,this.currentPrice=e,this.currentPrice!==this.previousPrice&&(this.lastPriceMovement=this.currentPrice>this.previousPrice?"up":"down")}updateCandleSeriesColors(e){this.colors=Ge(e,this.colors),this.recalculateVisualPoints()}observeLastVisualCandleChanged(){return this.lastVisualCandleChangedSubject.asObservable()}doDeactivate(){super.doDeactivate()}toVisualPoints(e,t=0){var r,s;if(e.length===0)return[];const i=this.config.type,a=[];let o=t;const l=(r=this.candleWidthByChartType[i])!=null?r:Us;for(let c=0;c<e.length;c++){const h=e[c],v=e[c-1],p=l(h),y=o+p/2,E=(s=this.candlesTransformersByChartType[i])!=null?s:Ws;a.push(E(h,{x:y,width:p,prevCandle:v,activeCandle:this.activeCandle})),o+=p}return a}recalculateMeanCandleWidth(e){e.length!==0?this.meanCandleWidth=e.reduce((t,r)=>t+r.width,0)/e.length:this.meanCandleWidth=Vn}setActiveCandle(e){this.activeCandle=e,this.recalculateVisualPoints()}clearData(){this.dataPoints=[],this.clearVisualCandles(),this.clearPrices()}clearPrices(){this.previousPrice=void 0,this.currentPrice=void 0,this.lastPriceMovement="none"}clearVisualCandles(){this.visualPoints=[]}}function Sv(n){switch(n){case"line":case"area":return!0;default:return!1}}class yc{constructor(e){this.config=e}draw(e,t,r,s){if(r instanceof ht){const i=Ie(t);if(i.length===0)return;s.singleColor?e.strokeStyle=s.singleColor:e.strokeStyle=r.colors.areaTheme.lineColor,r.hovered?e.lineWidth=this.config.selectedWidth:e.lineWidth=this.config.areaLineWidth;const a=r.extentComponent.getBounds(),o=i[0],l=r.view.toX(o.centerUnit);for(let c=0;c<i.length;c++){const h=i[c-1],v=i[c+1],p=i[c],y=r.view.toX(p.centerUnit),E=r.view.toY(p.close),R=a.y+a.height;if(h===void 0)e.beginPath(),e.lineTo(ve(y),R),e.moveTo(ve(y),E);else if(v===void 0){e.lineTo(ve(y),E),e.stroke(),e.lineTo(ve(y),R),e.lineTo(ve(l),R),e.closePath();let N;s.singleColor?e.fillStyle=s.singleColor:e.fillStyle=r.colors.areaTheme.startColor&&r.colors.areaTheme.stopColor?(N=e.createLinearGradient(0,0,0,a.height),N.addColorStop(0,r.colors.areaTheme.startColor),N.addColorStop(1,r.colors.areaTheme.stopColor),N):"",e.fill()}else e.lineTo(ve(y),E)}}}}function ti(n,e,t,r,s,i=4,a=!0,o=!1){n.save(),n.beginPath(),n.moveTo(e+i,t),n.lineTo(e+r-i,t),n.quadraticCurveTo(e+r,t,e+r,t+i),n.lineTo(e+r,t+s-i),n.quadraticCurveTo(e+r,t+s,e+r-i,t+s),n.lineTo(e+i,t+s),n.quadraticCurveTo(e,t+s,e,t+s-i),n.lineTo(e,t+i),n.quadraticCurveTo(e,t,e+i,t),n.closePath(),a&&n.fill(),o&&n.stroke(),n.restore()}function wc(n,e,t,r,s,i,a,o,l,c,h=4,v=!0,p=!1){const y=c==="right"?o:-o,E=c==="right"?h:-h,R=h;n.save(),n.beginPath(),l?n.moveTo(i+E,a):n.moveTo(i,a),l?(n.lineTo(i+y-E,a),n.quadraticCurveTo(i+y,a,i+y,a-R),n.lineTo(i+y,t+R),n.quadraticCurveTo(i+y,t,i+y-E,t),n.lineTo(e+E,t)):(n.lineTo(i+y,a),n.lineTo(i+y,t),n.lineTo(e,t)),l?(n.quadraticCurveTo(e,t,e-E/3,t+R/3),n.lineTo(r+E/3,s-R/3),n.quadraticCurveTo(r,s,r+E/3,s+R/3),n.lineTo(i-E/3,a-R/3),n.quadraticCurveTo(i,a,i+E/3,a)):(n.lineTo(r,s),n.lineTo(i,a)),n.closePath(),v&&n.fill(),p&&n.stroke(),n.restore()}function Sc(n,e,t,r,s,i=1){n.save(),n.lineWidth=i,n.beginPath(),n.moveTo(e,t),n.lineTo(r,s),n.stroke(),n.closePath(),n.restore()}function Ct(n,e){n.save(),n.lineWidth%2&&n.translate(.5,.5),e(),n.restore()}function ni(n,e,t){const r=Math.min(e.x,t.x)+.5,s=Math.min(e.y,t.y),i=Math.abs(e.x-t.x),a=Math.abs(e.y-t.y);n.fillRect(r,s,i,a)}const xv=n=>Array.isArray(n[0])?n:[n];class xc{constructor(e,t,r){this.paneManager=e,this.canvasModel=t,this.seriesDrawers=r}draw(){const e=this.canvasModel.ctx;Tt(Object.values(this.paneManager.paneComponents),t=>t.yExtentComponents).forEach(t=>{e.save(),yt(e,t.getBounds()),t.dataSeries.forEach(r=>this.drawSeries(e,r)),e.restore()})}drawSeries(e,t){if(t.config.visible){const r=t.config.type,s=this.seriesDrawers[r];if(s){const i=t.getSeriesInViewport(t.scaleModel.xStart-1,t.scaleModel.xEnd+1);i&&i.length>=1&&s.draw(e,i,t,{})}else console.error(`Data series drawer with type ${r} isn't registered!`)}}getCanvasIds(){return[this.canvasModel.canvasId]}}const yt=(n,e)=>{n.beginPath(),n.rect(e.x,e.y,e.width,e.height),n.clip(),n.closePath()},Dt=(n,e,t,r,s=e)=>{r.forceBold?n.lineWidth=r.forceBold:t.hovered?n.lineWidth=s:n.lineWidth=e};class Mc{constructor(e){this.config=e}setFillStyle(e,t,r,s){if(t.singleColor)e.strokeStyle=t.singleColor;else{const i=r.colors.barTheme;i&&(e.strokeStyle=i[`${s.name}Color`])}}draw(e,t,r,s){if(r instanceof ht){const i=Ie(t);Dt(e,this.config.barLineWidth,r,s),Ct(e,()=>{for(const a of i){this.setFillStyle(e,s,r,a),e.beginPath();const o=se(r.view.toX(a.centerUnit)),l=se(r.view.toX(a.startUnit)),[c,h,v,p]=a.yBodyKeyPoints(r.view),y=se(r.view.xPixels(a.width)/2),E=se(r.view.toY(a.close)),R=se(r.view.toY(a.open));this.config.showWicks?(e.moveTo(o,c),e.lineTo(o,p)):(e.moveTo(o,h),e.lineTo(o,v)),e.moveTo(o,E),e.lineTo(o+y,E),e.moveTo(l,R),e.lineTo(o,R),e.stroke()}})}}}class Pc{constructor(e,t){this.baseLineModel=e,this.canvasBoundContainer=t}draw(e,t,r,s){if(s!==void 0&&r instanceof ht){const i=Ie(t),a=this.baseLineModel.baselineYPercents,o=this.canvasBoundContainer.getBounds(Y.CHART),l=o.y+o.height*(a/100),c=i[0];for(let h=0;h<i.length;h++){const v=i[h],p=i[h-1],y=i[h+1],E=r.view.toX(c.centerUnit),R=r.view.toX(v.centerUnit),N=r.view.toY(v.close),k=p?r.view.toY(p.close)<l:!1,U=N<l;if(p!==void 0&&k!==U){ri(e,r,s,k);const Z=r.view.toX(p.centerUnit),K=r.view.toY(p.close),q=R-Z,$=N-K,J=q/$,ne=N-l,oe=J*ne,le=Z+(q-oe);e.lineTo(le,l),e.stroke(),e.lineTo(E,l),e.closePath(),e.fill(),e.beginPath(),e.moveTo(le,l)}p===void 0?(e.beginPath(),e.moveTo(R,N)):y===void 0?(ri(e,r,s,U),e.lineTo(R,N),e.stroke(),e.lineTo(R,l),e.lineTo(E,l),e.closePath(),e.fill(),e.beginPath(),e.moveTo(E,l),e.lineTo(R,l),e.strokeStyle=r.colors.baseLineTheme.baselineColor,e.stroke()):e.lineTo(R,N)}}}}const ri=(n,e,t,r)=>{t.singleColor?(n.fillStyle=t.singleColor,n.strokeStyle=t.singleColor):(n.fillStyle=r?e.colors.baseLineTheme.upperSectionFillColor:e.colors.baseLineTheme.lowerSectionFillColor,n.strokeStyle=r?e.colors.baseLineTheme.upperSectionStrokeColor:e.colors.baseLineTheme.lowerSectionStrokeColor)};class Tc{constructor(e){this.config=e,this.pixelLength=1,this.lineWidthCU=1,this.halfLineWidthCU=1}draw(e,t,r,s){if(r instanceof ht){const i=Ie(t);Dt(e,this.config.candleLineWidth,r,s,this.config.candleLineWidth),Ct(e,()=>{this.pixelLength=1/$e,this.halfLineWidthCU=e.lineWidth/2,this.lineWidthCU=e.lineWidth;for(const a of i){const{candleTheme:o,activeCandleTheme:l}=r.colors;o&&l&&this.drawCandle(e,s,r,a)}})}}drawCandle(e,t,r,s){const{candleTheme:i,activeCandleTheme:a}=r.colors,o=s.name,l=s.isActive?a:i,c=s.isHollow;t.singleColor?e.fillStyle=t.singleColor:c?e.fillStyle=l[`${o}WickColor`]:e.fillStyle=l[`${o}Color`];const h=se(r.view.toX(s.startUnit)),v=se(r.view.xPixels(s.width)),p=s.bodyHeight(r.view),[y,E,R,N]=s.yBodyKeyPoints(r.view),k=E===R?E+1:R,U=y===N?y+1:N,Z=l[`${o}Color`],K=o==="none"?Z:l[`${o}WickColor`];e.fillStyle=Z,t.singleColor?e.strokeStyle=t.singleColor:e.strokeStyle=K;const q=c||(s.hasBorder&&s.isActive?this.config.showActiveCandlesBorder:this.config.showCandlesBorder),$=this.config.showWicks;if(v<2)e.beginPath(),e.moveTo(h,$?y:E),e.lineTo(h,$?U:k),e.stroke();else if(v<3)e.beginPath(),e.moveTo(h,$?y:E),e.lineTo(h,$?U:k),e.moveTo(h+1,E),e.lineTo(h+1,k),e.stroke();else if(v===3){const J=v/$e;this.drawCandlesWicks(e,h+J,y,U,E,k),c||(e.beginPath(),e.moveTo(h+J,E),e.lineTo(h+J,k),e.stroke()),this.drawCandleBorder(e,t,l,s,h+this.halfLineWidthCU,E+this.halfLineWidthCU,v-this.lineWidthCU,p-this.lineWidthCU)}else{const J=se(r.view.toX(s.centerUnit));this.drawCandlesWicks(e,J,y,U,E,k-1);const ne=this.config.candlePaddingPercent,oe=Math.max(se(v*ne/2),this.pixelLength),le=h+oe,re=v-oe*2;c||(t.singleColor&&(e.fillStyle=t.singleColor),e.fillRect(le,E,re,p)),q&&this.drawCandleBorder(e,t,l,s,le+this.halfLineWidthCU,E+this.halfLineWidthCU,re-this.lineWidthCU,p-this.lineWidthCU)}}drawCandlesWicks(e,t,r,s,i,a){this.config.showWicks&&(e.beginPath(),e.moveTo(t,r),e.lineTo(t,i),e.moveTo(t,a),e.lineTo(t,s),e.stroke())}drawCandleBorder(e,t,r,s,i,a,o,l){if(t.singleColor)e.strokeStyle=t.singleColor;else{const c=s.name;e.strokeStyle=c==="none"?r[`${c}Color`]:r[`${c}WickColor`]}e.strokeRect(i,a,o,l)}}class _c{constructor(e){this.config=e}draw(e,t,r,s){if(r instanceof ht){const i=t.flat(),a=r.scaleModel.getBounds(),o=a.y+a.height;for(const l of i){e.beginPath();const c=l.name,h=this.config.barCapSize,v=r.colors.histogram;if(v===void 0)return;s.singleColor?e.fillStyle=s.singleColor:e.fillStyle=v[`${c}Bright`];const p=l.xStart(r.view),y=se(r.view.toY(l.close)),E=se(r.view.xPixels(l.width));e.fillRect(p,y,E,h);const R=e.createLinearGradient(0,y+h,0,o);s.singleColor?e.fillStyle=s.singleColor:(R.addColorStop(0,v[`${c}Cap`]),R.addColorStop(1,v[`${c}Bottom`]),e.fillStyle=R),E===0?(e.beginPath(),e.strokeStyle=R,e.moveTo(p,y+h),e.lineTo(p,o),e.stroke(),e.closePath()):e.fillRect(p,y+h,E,o-y-h)}}}}class Ac{constructor(e){this.config=e}draw(e,t,r,s){if(r instanceof ht){const i=Ie(t);Dt(e,this.config.lineWidth,r,s,this.config.selectedWidth);const a=r.colors.lineTheme;e.lineCap="round",s.singleColor&&(e.strokeStyle=s.singleColor);for(let o=1;o<i.length;o++){const l=i[o-1],c=i[o],h=c.name;s.singleColor||(e.strokeStyle=a[`${h}Color`]);const v=r.view.toX(l.centerUnit),p=r.view.toY(l.close),y=r.view.toX(c.centerUnit),E=r.view.toY(c.close);e.beginPath(),e.moveTo(v,p),e.lineTo(y,E),e.stroke()}}}}const Dc=1.5;class Ec{constructor(e){this.config=e}draw(e,t,r,s){var i;e.fillStyle=(i=s.singleColor)!=null?i:this.config.mainColor;for(const a of Ie(t)){e.beginPath();const o=se(r.view.toX(a.centerUnit)),l=se(r.view.toY(a.close));e.arc(o,l,Dc,0,Math.PI*2,!0),e.fill()}}}const Lc=["candle","bar","line","area","scatterPlot","hollow","histogram","baseline","trend"];class Ic{constructor(e,t,r){this.drawer=e,this.config=t,this.chartBounds=r}draw(e,t,r,s){this.isChartTypeAllowed()&&(this.beforeDraw(e),this.drawer.draw(e,t,r,s),this.afterDraw(e,r))}beforeDraw(e){e.restore(),e.save(),yt(e,this.chartBounds())}isChartTypeAllowed(){return Lc.includes(this.config.components.chart.type)}afterDraw(e,t){e.restore(),e.save(),yt(e,t.scaleModel.getBounds())}}class Oc{constructor(e){this.chartModel=e}draw(e,t,r,s){t.forEach((i,a)=>{var o;const l=r.getPaintConfig(a);e.fillStyle=(o=s.singleColor)!=null?o:l.color,i.forEach(c=>{const h=this.chartModel.getVisualCandle(pt(c.centerUnit)),v=c.close;if(h&&v===1){const p=this.chartModel.scaleModel.zoomX,y=se(Pe(h.width,p)),E=se(h.bodyHeight(this.chartModel.scaleModel)),R=h.xCenter(this.chartModel.scaleModel)-y/2,N=h.yBodyStart(this.chartModel.scaleModel),k=this.chartModel.config.components.chart.candlePaddingPercent,U=se(y*k/2),Z=R+U,K=y-U*2;e.fillRect(Z,N,K,E)}})})}}const si=(n,e,t)=>{n.length!==0&&n.forEach((r,s)=>{const{centerUnit:i,close:a}=r,o=t.toX(i),l=t.toY(a);s===0?e.moveTo(o,l):e.lineTo(o,l)})},Bc=/^(#)([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,Rc=/^\s*(rgba?)\s*[(]\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*[\d.]+\s*)?[)]\s*$/i;function Fc(n){const e=Bc.exec(n)||Rc.exec(n);let t=[];return e&&(t=e.slice(2,5),e[1]==="#")?t.map(function(r){return parseInt(r,16)}):t}const ii={};function Yc(n,e){let t=ii[n+e];if(!t){const r=Fc(n);t=r&&"rgba("+r.join(",")+","+e+")",ii[n+e]=t}return t}class Hc{constructor(){}draw(e,t,r,s){r.config.visible&&(t.forEach((i,a)=>{var o;const l=r.getPaintConfig(a);Dt(e,l.lineWidth,r,s,l.hoveredLineWidth);const c=(o=s.singleColor)!=null?o:l.color;e.strokeStyle=c,this.drawLine(e,i,r.view)}),r.linkedDataSeriesModels.forEach((i,a)=>{if(oi(i.config.type)&&oi(r.config.type)&&i.config.visible){const o=[],l=r,c=l.getSeriesInViewport(l.scaleModel.xStart-1,l.scaleModel.xEnd+1),h=i.getSeriesInViewport(i.scaleModel.xStart-1,i.scaleModel.xEnd+1);c.forEach((v,p)=>{const y=Math.min(v.length,h[p].length);for(let N=0;N<y;N++){const k=[v[N].clone(),h[p][N].clone()];o.push({diffPoints:k})}const E=l.getPaintConfig(p).color,R=i.getPaintConfig(a).color;this.drawDifference(e,E,R,o,l,i,s)})}}))}drawLine(e,t,r){e.beginPath(),si(t,e,r),e.stroke()}drawDifference(e,t,r,s,i,a,o){const[l,c]=[[],[]];s.forEach(p=>{const[y,E]=p.diffPoints;l.push(y),c.push(E)});const h=ai(l,i.view),v=ai(c,a.view);this.fillCloud(e,r,h,v,o),this.fillCloud(e,t,v,h,o)}fillCloud(e,t,r,s,i){var a,o,l,c;e.save(),e.beginPath();const h=(o=(a=Yt(r))==null?void 0:a.x)!=null?o:0,v=(c=(l=Ue(r))==null?void 0:l.x)!=null?c:0;e.lineTo(h,0),r.forEach(p=>{e.lineTo(p.x,p.y)}),e.lineTo(v,0),e.closePath(),e.clip(),e.beginPath(),r.forEach((p,y)=>{y===0?e.moveTo(p.x,p.y):e.lineTo(p.x,p.y)}),s.slice().reverse().forEach(p=>{e.lineTo(p.x,p.y)}),e.closePath(),e.fillStyle=i.singleColor?i.singleColor:Yc(t||"#383838",.3),e.fill(),e.restore()}}const ai=(n,e)=>n.map(t=>{const{centerUnit:r,close:s}=t,i=e.toX(r),a=e.toY(s);return{x:i,y:a}}),oi=n=>n==="DIFFERENCE";class Nc{constructor(){}draw(e,t,r,s){const i=r.view.toY(0);t.forEach((a,o)=>{var l;const c=r.getPaintConfig(o);Dt(e,c.lineWidth,r,s,c.hoveredLineWidth),e.strokeStyle=(l=s.singleColor)!=null?l:c.color,e.beginPath(),a.forEach(h=>{const v=r.view.toX(h.centerUnit),p=r.view.toY(h.close);e.moveTo(v,ve(i)),e.lineTo(v,ve(p))}),e.stroke()})}}class kc{constructor(){}draw(e,t,r,s){t.forEach((i,a)=>{var o;const l=r.getPaintConfig(a);Dt(e,l.lineWidth,r,s,l.hoveredLineWidth),e.strokeStyle=(o=s.singleColor)!=null?o:l.color,this.drawLinePath(e,i,r.view)})}drawLinePath(e,t,r){e.beginPath(),si(t,e,r),e.stroke()}}class Wc{constructor(){}draw(e,t,r,s){t.forEach((i,a)=>{var o;const l=r.getPaintConfig(a),c=l.lineWidth;e.fillStyle=(o=s.singleColor)!=null?o:l.color,e.lineWidth=1,i.forEach(h=>{e.beginPath();const v=r.view.toX(h.centerUnit),p=r.view.toY(h.close);e.arc(v,p,c,0,Math.PI*2),e.fill()})})}}class Uc{constructor(e){this.config=e}draw(e,t,r,s){e.save(),t.forEach((i,a)=>{var o;const l=r.getPaintConfig(a);e.fillStyle=(o=s.singleColor)!=null?o:l.color;const c=l.lineWidth+"px "+this.config.components.yAxis.fontFamily;e.font=c,i.forEach(h=>{const v=r.getTextForPoint(h),p=Re(v,e,c),y=Qe(c,e),E=r.view.toX(h.centerUnit)-p/2,R=r.view.toY(h.close)+y;e.fillText(v,E,R)})}),e.restore()}}class zc{constructor(){}draw(e,t,r,s){t.forEach((i,a)=>{var o;const l=r.getPaintConfig(a);e.fillStyle=(o=s.singleColor)!=null?o:l.color,i.forEach(c=>{const h=r.view.toX(c.centerUnit),v=r.view.toY(c.close);this.drawCandleTriangle(e,h,v,l.lineWidth)})})}drawCandleTriangle(e,t,r,s){e.beginPath(),e.moveTo(t-s/2,r),e.lineTo(t,r-s),e.lineTo(t+s/2,r),e.fill()}}const Qn="resized_local",Xt="draw",Mv="draw_last_candle",Et={width:20,height:20};class li{constructor(e,t,r,s,i,a={}){this.eventBus=e,this.canvas=t,this.drawingManager=r,this.resizer=i,this.width=0,this.height=0,this.prevHeight=0,this.prevWidth=0,this.type=er;var o;s.push(this),this.parent=Vc(t);const l=t.getContext("2d",a);if(l===null)throw new Error("Couldn't get 2d context????");this.context=l,this._canvasId=(o=t.getAttribute("data-element"))!=null?o:"",this.updateCanvasWidthHeight(t,this.getChartResizerElement().getBoundingClientRect())}updateDPR(e){const{width:t,height:r}=e,s=window.devicePixelRatio;this.canvas.style.height=r+"px",this.canvas.style.width=t+"px",this.canvas.width=t*s,this.canvas.height=r*s,this.width=t,this.height=r,this.ctx.scale(s,s)}get canvasId(){return this._canvasId}get ctx(){return this.context}clear(){this.context.clearRect(0,0,this.width,this.height)}isLinked(){var e,t;return(t=(e=this.type)==null?void 0:e.linked)!=null?t:!1}fireDraw(){this.eventBus.fireDraw([this.canvasId])}updateCanvasWidthHeight(e,t=this.getChartResizerElement().getBoundingClientRect()){e.clientWidth!==this.width&&(e.width=e.clientWidth,this.width=e.clientWidth);const r=t.height;r!==this.height&&(e.style.height=r+"px",this.height=r,e.height=r,this.prevHeight=r)}getChartResizerElement(){var e;return(e=this.resizer)!=null?e:this.parent}isReady(){return this.width>Et.width&&this.height>Et.height}}const er={name:"candle"},Xc={candle:er,bar:{name:"candle"},line:{name:"line",linked:!0},area:{name:"area",linked:!0}};function jc(n,e,t,r,s,i,a){var o;const l=wt(n,e,s,i,a,t);return l.type=(o=Xc[r])!=null?o:er,l}function wt(n,e,t,r,s,i,a){const o=new li(n,e,r,s,i,a);return ci(o,t),o}function ci(n,e){const t=n.canvas;e.fixedSize&&(t.width=e.fixedSize.width,t.height=e.fixedSize.height,t.style.width=e.fixedSize.width+"px",t.style.height=e.fixedSize.height+"px",n.width=e.fixedSize.width,n.height=e.fixedSize.height),t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.direction="ltr"}function Vc(n){let e=n;for(;e;){if(e.nodeType===1&&e.hasAttribute("data-chart-container"))return e;if(e.parentElement!==null)e=e.parentElement;else break}return e}let tr=!1,nr=0;const dn=new Map,rr=new Map,hi=()=>{tr||(tr=!0,nr=requestAnimationFrame(()=>{rr.forEach((n,e)=>{n(),rr.delete(e)}),dn.forEach((n,e)=>{n(),dn.delete(e)}),tr=!1}))},di=(n,e)=>{dn.set(n,e),hi()},Av=n=>{dn.delete(n)},sr=(n,e)=>{rr.set(n,e),hi()},un="HIT_TEST_",Dv=null;class Gc{constructor(e,t){this.chartResizeHandler=t,this.drawingOrder=[],this.drawersMap={},this.canvasIdsList=[],this.animFrameId=`draw_${Je()}`,this.drawHitTestCanvas=()=>{this.drawingOrder.forEach(r=>{r.indexOf(un)!==-1&&this.drawersMap[r].draw()})},e.on(Xt,r=>{t.wasResized()&&(this.canvasIdsList&&(r&&r.length!==0?this.canvasIdsList=this.canvasIdsList.concat(r):this.canvasIdsList=void 0),di(this.animFrameId,()=>{this.forceDraw(this.canvasIdsList),this.canvasIdsList=[],this.drawHitTestCanvas()}))})}redrawCanvasesImmediate(){this.chartResizeHandler.fireUpdates(),this.forceDraw()}drawLastBar(){this.drawingOrder.forEach(e=>{if(e.indexOf(un)===-1){const t=this.drawersMap[e];t.drawLastBar&&t.drawLastBar()}})}forceDraw(e){this.isDrawable()&&this.drawingOrder.forEach(t=>{if(t.indexOf(un)===-1){const r=this.drawersMap[t];if(!e||e.length===0){r.draw();return}xo(e,r.getCanvasIds()).length&&r.draw()}})}isDrawable(){var e,t,r,s;return((t=(e=this.chartResizeHandler.previousBCR)==null?void 0:e.height)!=null?t:0)>Et.width&&((s=(r=this.chartResizeHandler.previousBCR)==null?void 0:r.width)!=null?s:0)>Et.height}drawHitTestOnly(){this.drawHitTestCanvas()}addDrawer(e,t=Je()){this.drawingOrder.indexOf(t)===-1&&this.drawingOrder.push(t),this.drawersMap[t]=e}addDrawerAfter(e,t,r){this.addDrawer(e,t);const s=this.drawingOrder.indexOf(t);this.drawingOrder.splice(s,1);const i=this.drawingOrder.indexOf(r);this.drawingOrder.splice(i+1,0,t),this.reorderDrawers(this.drawingOrder)}addDrawerBefore(e,t,r){this.addDrawer(e,t);const s=this.drawingOrder.indexOf(r);if(s!==-1){const i=this.drawingOrder.indexOf(t);return this.drawingOrder.splice(i,1),this.drawingOrder.splice(s,0,t),this.reorderDrawers(this.drawingOrder),!0}return!1}getDrawerByName(e){return this.drawersMap[e]}getNameByDrawer(e){for(const t in this.drawersMap)if(this.drawersMap[t]===e)return t}removeDrawerByName(e){const t=this.drawersMap[e];this.removeDrawer(t)}removeDrawer(e){Object.keys(this.drawersMap).forEach(t=>{if(this.drawersMap[t]===e){delete this.drawersMap[t];const r=this.drawingOrder.indexOf(t);r!==-1&&this.drawingOrder.splice(r,1)}})}reorderDrawers(e){this.drawingOrder=$r(this.drawingOrder,e)}}class ui{static paneResizer(e){return`PANE_RESIZER_${e}`}}class $c{constructor(e,t,r){this.seriesDrawers=e,this.canvasModel=t,this.paneManager=r}draw(){const e=this.canvasModel.ctx;Tt(Object.values(this.paneManager.paneComponents),t=>t.yExtentComponents).forEach(t=>{e.save(),yt(e,t.getBounds()),t.dataSeries.forEach(r=>this.drawSeries(e,r)),e.restore()})}drawSeries(e,t){if(t.config.visible){const r=t.config.type,s=this.seriesDrawers[r];if(s){const i={singleColor:this.canvasModel.idToColor(t.id),forceBold:7};s.draw(e,t.getSeriesInViewport(t.scaleModel.xStart-1,t.scaleModel.xEnd+1),t,i)}}}getCanvasIds(){return[this.canvasModel.canvasId]}}const fi={disableChartPanning:!0};class vi extends te{constructor(e,t,r,s,i){super(),this.hitTest=e,this.dragCallbacks=t,this.canvasInputListener=r,this.chartPanComponent=s,this.dragComponentOptions=i,this.dragging=!1,this.draggedPixels=0,this.onDragStart=a=>{this.dragging=!0,this.draggedPixels=0,this.dragCallbacks.onDragStart&&this.dragCallbacks.onDragStart(a),this.dragComponentOptions.disableChartPanning&&this.chartPanComponent.deactivatePanHandlers()},this.onDragTick=a=>{this.dragging&&(this.draggedPixels+=a,this.dragCallbacks.onDragTick({delta:a,draggedPixels:this.draggedPixels}))},this.onDragEnd=()=>{this.dragging&&(this.dragging=!1,this.dragCallbacks.onDragEnd&&this.dragCallbacks.onDragEnd(this.draggedPixels),this.dragComponentOptions.disableChartPanning&&this.chartPanComponent.activateChartPanHandlers())}}doActivate(){super.doActivate()}doDeactivate(){super.doDeactivate()}}class fn extends vi{constructor(e,t,r,s,i=fi){super(e,t,r,s,i)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeYDragStart(this.hitTest).subscribe(this.onDragStart)),this.addRxSubscription(this.canvasInputListener.observeYDrag().subscribe(this.onDragTick)),this.addRxSubscription(this.canvasInputListener.observeYDragEnd().subscribe(this.onDragEnd))}doDeactivate(){super.doDeactivate()}}const Zc="BASELINE_RESIZER";class Kc extends te{constructor(e,t,r,s,i,a,o){super(),this.chartModel=e,this.canvasModel=r,this.canvasInputListener=s,this.config=i,this.canvasBoundContainer=a,this.cursorHandler=o,this.resizerBounds={x:0,y:0,pageX:0,pageY:0,height:0,width:0},this.baselineYPercents=50,this.ht=Xn.hitTestOf(this.resizerBounds,{extensionY:this.config.components.paneResizer.dragZone}),this.dragTickCb=c=>{const{delta:h}=c,v=this.canvasBoundContainer.getBounds(Y.CHART),p=this.canvasInputListener.getCurrentPoint().y;h!==0&&el(p,v)&&(this.moveBaseLine(p),this.canvasModel.fireDraw())};const l=new fn(this.ht,{onDragTick:this.dragTickCb},s,t);this.addChildEntity(l)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasBoundContainer.observeBoundsChanged(Y.CHART).subscribe(()=>this.recalculateBounds())),this.chartModel.chartTypeChanged.subscribe(e=>{e==="baseline"?this.cursorHandler.setCursorForBounds("BASELINE_RESIZER",this.resizerBounds,this.config.components.baseline.cursor,this.config.components.baseline.dragZone):this.cursorHandler.removeCursorForCanvasEl("BASELINE_RESIZER")})}recalculateBounds(){const e=this.canvasBoundContainer.getBounds(Y.CHART),t=this.canvasBoundContainer.getBounds(Y.Y_AXIS);this.resizerBounds.x=e.x,this.resizerBounds.width=e.width+t.width,this.resizerBounds.height=this.config.components.baseline.height;const r=e.y+e.height*(this.baselineYPercents/100);this.resizerBounds.y=r,this.canvasBoundContainer.bounds[Zc]=this.resizerBounds}moveBaseLine(e){const t=this.canvasBoundContainer.getBounds(Y.CHART);this.baselineYPercents=(e-t.y)*100/t.height,this.resizerBounds.y=e}doDeactivate(){super.doDeactivate()}}const vn=n=>{var e;const t=Ft(n.close,n.open,n.hi,n.lo);if(!isFinite(t))throw new Error("Received candle without any price");const r=Ft(n.hi,Math.max(n.open,n.close),t),s=Ft(n.lo,Math.min(n.open,n.close),t),i=Ft(n.open,n.lo,t),a=Ft(n.close,n.hi,t);return{hi:r,lo:s,open:i,close:a,timestamp:n.timestamp,volume:(e=n.volume)!=null?e:0,expansion:n.expansion,idx:n.idx,impVolatility:n.impVolatility}},gi=n=>{for(let e=0;e<n.length;++e)n[e].idx=e},pi=n=>{n.forEach(e=>{e.idx=void 0})};class qc{constructor(){}draw(e,t,r){const s=r.view.toY(0),i=Ie(t),a=[[],[]];i.forEach((o,l,c)=>{a[o.close<this.previousValue(c,l)?1:0].push(o)}),a.forEach((o,l)=>{const c=r.getPaintConfig(l);e.strokeStyle=l===0?c.color:c.aditionalColor||"#FF00FF",e.lineWidth=c.lineWidth,e.beginPath(),o.forEach(h=>{const v=r.view.toX(h.centerUnit),p=r.view.toY(h.close);e.moveTo(v,ve(s)),e.lineTo(v,ve(p))}),e.stroke()})}previousValue(e,t){do t--;while(t>=0&&!isFinite(e[t]&&e[t].close));return e[t]?e[t].close:Number.NaN}}var Jc=Object.defineProperty,mi=Object.getOwnPropertySymbols,Qc=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable,bi=(n,e,t)=>e in n?Jc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,th=(n,e)=>{for(var t in e||(e={}))Qc.call(e,t)&&bi(n,t,e[t]);if(mi)for(var t of mi(e))eh.call(e,t)&&bi(n,t,e[t]);return n};class nh{constructor(){this.symbol="MOCK",this.priceIncrements=[.01]}}class rh extends te{constructor(e,t,r,s,i,a,o,l,c,h,v,p){super(),this.chartModel=e,this.canvasModel=t,this.config=r,this.scaleModel=s,this.canvasBoundsContainer=i,this.drawingManager=a,this.hitTestCanvasModel=o,this.canvasInputListener=l,this.dataSeriesDrawers={},this.strToBarType=E=>{var R;return(R=this.barTypeValues.find(N=>N===E))!=null?R:"candle"},this.addChildEntity(this.chartModel),this.registerDefaultCandlesTransformers(),this.baselineModel=new Kc(this.chartModel,h,this.canvasModel,this.canvasInputListener,this.config,this.canvasBoundsContainer,p),this.addChildEntity(this.baselineModel);const y=new $c(this.dataSeriesDrawers,this.hitTestCanvasModel,v);this.drawingManager.addDrawerBefore(y,un+"DATA_SERIES","HIT_TEST_EVENTS"),this.dataSeriesDrawer=new xc(v,t,this.dataSeriesDrawers),this.drawingManager.addDrawer(this.dataSeriesDrawer,"DATA_SERIES"),this.registerDefaultDataSeriesDrawers(),this.backgroundDrawer=new Ul(c,this.config),a.addDrawer(this.backgroundDrawer,"MAIN_BACKGROUND"),p.setCursorForCanvasEl(Y.PANE_UUID(ae),r.components.chart.cursor)}doActivate(){super.doActivate()}registerDefaultCandlesTransformers(){this.registerCandlesTransformer("candle",Ws),this.registerCandlesTransformer("trend",Xl),this.registerCandlesTransformer("hollow",zl)}get barTypeValues(){return Ts(this.dataSeriesDrawers)}registerCandlesTransformer(e,t){this.chartModel.registerCandlesTransformer(e,t)}registerLastCandleLabelHandler(e,t){this.chartModel.registerLastCandleLabelHandler(e,t)}registerCandlesWidthCalculator(e,t){this.chartModel.registerCandlesWidthCalculator(e,t)}registerDefaultDataSeriesDrawers(){const e=new Tc(this.config.components.chart);this.registerDataSeriesTypeDrawer("candle",e),this.registerDataSeriesTypeDrawer("trend",e),this.registerDataSeriesTypeDrawer("hollow",e),this.registerDataSeriesTypeDrawer("bar",new Mc(this.config.components.chart)),this.registerDataSeriesTypeDrawer("line",new Ac(this.config.components.chart)),this.registerDataSeriesTypeDrawer("scatterPlot",new Ec(this.config.colors.scatterPlot)),this.registerDataSeriesTypeDrawer("area",new yc(this.config.components.chart)),this.registerDataSeriesTypeDrawer("baseline",new Pc(this.baselineModel,this.canvasBoundsContainer)),this.registerDataSeriesTypeDrawer("histogram",new _c(this.config.components.chart.histogram));const t=()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID(ae));this.registerDataSeriesTypeDrawer("LINEAR",new kc),this.registerDataSeriesTypeDrawer("HISTOGRAM",new Nc),this.registerDataSeriesTypeDrawer("TREND_HISTOGRAM",new qc),this.registerDataSeriesTypeDrawer("POINTS",new Wc),this.registerDataSeriesTypeDrawer("COLOR_CANDLE",new Ic(new Oc(this.chartModel),this.config,t)),this.registerDataSeriesTypeDrawer("TEXT",new Uc(this.config)),this.registerDataSeriesTypeDrawer("TRIANGLE",new zc),this.registerDataSeriesTypeDrawer("DIFFERENCE",new Hc)}setChartType(e){this.config.components.chart.type=e,this.chartModel.rememberCurrentTimeframe(),this.chartModel.mainCandleSeries.setType(e),this.chartModel.mainCandleSeries.updateCandleSeriesColors(th({},this.config.colors)),this.chartModel.mainCandleSeries.recalculateVisualPoints(),this.chartModel.chartTypeChanged.next(e)}resetChartScale(){this.chartModel.doBasicScale()}setTimestampRange(e,t){return this.chartModel.setTimestampRange(e,t)}setXScale(e,t){return this.scaleModel.setXScale(e,t)}setShowWicks(e){this.config.components.chart.showWicks=e,this.canvasModel.fireDraw()}setMainSeries(e){var t;const r=(t=e.instrument)!=null?t:this.chartModel.mainCandleSeries.instrument;this.chartModel.mainCandleSeries.instrument=r,this.chartModel.setAllSeries({candles:e.candles,instrument:r},this.chartModel.getSecondarySeries().map(s=>{var i;const a=(i=s.instrument)!=null?i:this.chartModel.mainCandleSeries.instrument,o=s.dataPoints;return pi(o),{candles:o,instrument:a}})),this.updatePriceIncrementsIfNeeded(r)}setSecondarySeries(e){var t;const r=(t=e.instrument)!=null?t:this.chartModel.mainCandleSeries.instrument,s=this.chartModel.setSecondaryCandleSeries(e.candles,r);if(this.updatePriceIncrementsIfNeeded(r),s)return s}setAllSeries(e,t=[]){var r;const s=(r=e.instrument)!=null?r:this.chartModel.mainCandleSeries.instrument;this.updatePriceIncrementsIfNeeded(s),t.forEach(i=>{var a;const o=(a=i.instrument)!=null?a:this.chartModel.mainCandleSeries.instrument;this.updatePriceIncrementsIfNeeded(o)}),this.chartModel.setAllSeries(e,t)}toXFromCandleIndex(e){return this.chartModel.toX(e)}toXFromTimestamp(e){return this.chartModel.candleFromTimestamp(e).xCenter(this.chartModel.scaleModel)}toY(e){return this.chartModel.toY(e)}updateAllSeries(e,t=[]){this.chartModel.updateAllSeries(e,t),this.canvasModel.fireDraw()}removeDataFrom(e){this.chartModel.removeDataFrom(e)}removeSecondarySeries(e){this.chartModel.removeSecondaryCandleSeries(e)}prependCandles(e,t){this.chartModel.prependCandles(e,t)}addLastCandle(e,t){this.chartModel.addLastCandle(e,t)}updateLastCandle(e,t){this.chartModel.updateLastCandle(e,t)}updateCandles(e,t){this.chartModel.updateCandles(e,t)}setOffsets(e){this.chartModel.setOffsets(e)}getDataSeriesDrawer(e){return this.dataSeriesDrawers[e]}registerDataSeriesTypeDrawer(e,t){this.dataSeriesDrawers[e]=t}updatePriceIncrementsIfNeeded(e){(!e.priceIncrements||!ze.validatePriceIncrementsOrPrecisions(e.priceIncrements))&&(e.priceIncrements=[ze.autoDetectIncrementOfValueRange(this.scaleModel.yEnd-this.scaleModel.yStart)])}observeOffsetsChanged(){return this.chartModel.offsetsChanged}observeChartTypeChanged(){return this.chartModel.chartTypeChanged}observeCandlesChanged(){return this.chartModel.observeCandlesChanged()}observeCandlesUpdated(){return this.chartModel.candlesUpdatedSubject}observeCandlesPrepended(){return this.chartModel.candlesPrependSubject}}class sh extends ht{constructor(e,t,r,s,i,a,o,l,c){super(t,r,s,i,a,o,l,c),this.baseModel=e}set visualPoints(e){super.visualPoints=e,this.baseModel.mainVisualPoints=super.visualPoints}get visualPoints(){return super.visualPoints}set dataPoints(e){super.dataPoints=e,this.baseModel.mainDataPoints=super.dataPoints}get dataPoints(){return super.dataPoints}recalculateMeanCandleWidth(e){super.recalculateMeanCandleWidth(e),this.baseModel.meanDataWidth=this.meanCandleWidth}}const ih=n=>e=>{if(e.length!==0){const t=e.slice(Math.max(e.length-n.state.defaultViewportItems,0)),r=t[0],s=t[t.length-1];n.setXScale(r.startUnit,s.startUnit+s.width+n.offsets.right),n.doAutoScale(!0),n.recalculateZoomXYRatio(),n.fireChanged()}},ah=(n,e)=>(t,r=null)=>{const[s,i]=t,a=e.candleFromTimestamp(s).startUnit,o=e.candleFromTimestamp(i).startUnit,l=r===null?0:e.mainCandleSeries.meanCandleWidth*2,c=r?a-l:a+l,h=r?o+l:o-l;n.setXScale(c,h)};var oh=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,Ci=Object.getOwnPropertySymbols,hh=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable,yi=(n,e,t)=>e in n?oh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,jt=(n,e)=>{for(var t in e||(e={}))hh.call(e,t)&&yi(n,t,e[t]);if(Ci)for(var t of Ci(e))dh.call(e,t)&&yi(n,t,e[t]);return n},ir=(n,e)=>lh(n,ch(e));class uh{constructor(e){this.config=e,this.usedChartColors={},this.symbolsToColorKeys={},this.secondaryChartColorsPool=this.createColorPool(this.config.colors.secondaryChartTheme),this.usedChartColors=Object.keys(this.secondaryChartColorsPool).reduce((t,r)=>ir(jt({},t),{[r]:0}),{})}createColorPool(e){return e.reduce((t,r,s)=>(t[`color${s}`]=ir(jt({},Wt(this.config.colors)),{lineTheme:jt({},r.lineTheme),areaTheme:jt({},r.areaTheme)}),t),{})}takeColorFromPool(e){let t=Number.MAX_SAFE_INTEGER,r="";for(const[s,i]of Object.entries(this.usedChartColors))i<t&&(t=i,r=s);return this.usedChartColors[r]=this.usedChartColors[r]+1,this.symbolsToColorKeys[e]=r,this.secondaryChartColorsPool[r]}addColorToPool(e){const t=this.symbolsToColorKeys[e];this.usedChartColors[t]&&(this.usedChartColors[t]=this.usedChartColors[t]-1)}updateColorConfig(e,t){var r,s;const i=this.secondaryChartColorsPool[this.usedChartColors[e]];if(i){const a=t;this.secondaryChartColorsPool[this.usedChartColors[e]]=ir(jt({},t),{lineTheme:Object.assign(i.lineTheme,(r=a.lineTheme)!=null?r:{}),areaTheme:Object.assign(i.areaTheme,(s=a.areaTheme)!=null?s:{})})}}}var fh=Object.defineProperty,wi=Object.getOwnPropertySymbols,vh=Object.prototype.hasOwnProperty,gh=Object.prototype.propertyIsEnumerable,Si=(n,e,t)=>e in n?fh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,gn=(n,e)=>{for(var t in e||(e={}))vh.call(e,t)&&Si(n,t,e[t]);if(wi)for(var t of wi(e))gh.call(e,t)&&Si(n,t,e[t]);return n};class ph extends te{constructor(e,t,r,s,i,a,o,l,c,h){super(),this.chartBaseModel=e,this.paneManager=t,this.bus=r,this.canvasModel=s,this.config=i,this.scaleModel=a,this.formatterFactory=o,this.mainCanvasParent=l,this.canvasBoundsContainer=c,this.chartResizeHandler=h,this.prevChartWidth=0,this.prevYWidth=0,this.candleSeries=[],this.nextCandleTimeStampSubject=new G,this.axisTypeSetSubject=new G,this.chartTypeChanged=new G,this.mainInstrumentChangedSubject=new G,this.scaleInversedSubject=new G,this.offsetsChanged=new G,this.candlesTransformersByChartType={},this.lastCandleLabelsByChartType={},this.candleWidthByChartType={},this.lastTimeFrame=[0,0],this.FAKE_CANDLES_DEFAULT=100,this.toY=p=>this.mainCandleSeries.view.toY(p),this.chartTypeChanged.next(this.config.components.chart.type),this.secondaryChartColors=new uh(this.config);const v=new sh(this.chartBaseModel,this.paneManager.paneComponents[ae].mainYExtentComponent,this.paneManager.hitTestController.getNewDataSeriesHitTestId(),this.bus,this.scaleModel,new nh,this.candlesTransformersByChartType,this.candleWidthByChartType,gn({},this.config.colors));v.config.type=this.config.components.chart.type,this.candleSeries.push(v),a.addXConstraint((p,y)=>oc(y,this.mainCandleSeries.visualPoints,this.config.components.chart.minCandlesOffset,a.getBounds())),this.basicScaleViewportTransformer=ih(a),this.timeFrameViewportTransformer=ah(a,this),this.pane=this.paneManager.paneComponents[ae]}get mainCandleSeries(){return this.candleSeries[0]}get secondaryCandleSeries(){return this.candleSeries.filter(e=>e!==this.mainCandleSeries)}get candlesUpdatedSubject(){return this.chartBaseModel.dataUpdatedSubject}get candlesSetSubject(){return this.chartBaseModel.dataSetSubject}get candlesRemovedSubject(){return this.chartBaseModel.dataRemovedSubject}get candlesPrependSubject(){return this.chartBaseModel.dataPrependSubject}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasBoundsContainer.observeBoundsChanged(Y.PANE_UUID(ae)).pipe(Ve(ms)).subscribe(e=>{this.handleChartResize(e)}))}handleChartResize(e){if(e.width>Et.width&&e.height>Et.height){const t=this.getEffectiveChartWidth(),r=this.getEffectiveYAxisWidth();if(this.prevChartWidth===0){this.scaleModel.isViewportValid()?this.scaleModel.recalculateZoom():this.doBasicScale(),this.prevChartWidth=t,this.prevYWidth=r;return}if(r!==this.prevYWidth){if(this.config.scale.keepZoomXOnYAxisChange){const i=tt(r-this.prevYWidth,this.scaleModel.zoomX);this.scaleModel.setXScale(this.scaleModel.xStart,this.scaleModel.xEnd-i)}else this.scaleModel.recalculateZoomX();this.prevYWidth=r,this.prevChartWidth=t;return}const s=tt(t-this.prevChartWidth,this.scaleModel.zoomX);this.scaleModel.setXScale(this.scaleModel.xStart-s,this.scaleModel.xEnd),this.scaleModel.recalculateZoomY(),this.prevYWidth=r,this.prevChartWidth=t}}setMainCandleSeries(e,t){this.mainCandleSeries.instrument=t,this.setAllSeries({candles:e,instrument:t},this.getSecondarySeries().map(r=>{const s=r.dataPoints;return pi(s),{candles:s,instrument:r.instrument}}))}setSecondaryCandleSeries(e,t=this.mainCandleSeries.instrument,r=!0){const s=pn(e.map(vn)),i=this.reindexCandlesBasedOnSeries(this.mainCandleSeries.dataPoints,s),a=this.secondarySeriesAdjustments(this.mainCandleSeries.dataPoints,i),l=this.secondaryCandleSeries.some(c=>c.instrument.symbol===t.symbol)?this.secondaryCandleSeries.find(c=>c.instrument.symbol===t.symbol):this.createSecondaryCandleSeriesModel(t);if(l)return l.dataPoints=a,r&&(this.scaleModel.doAutoScale(),l.recalculateVisualPoints(),this.candlesSetSubject.next(),this.bus.fireDraw([this.canvasModel.canvasId])),l}setAllSeries(e,t=[]){var r;this.mainCandleSeries.instrument=(r=e.instrument)!=null?r:this.mainCandleSeries.instrument,e.instrument&&this.mainInstrumentChangedSubject.next(e.instrument),this.rememberCurrentTimeframe();const s=pn(e.candles.map(vn));this.mainCandleSeries.clearData(),gi(s),this.mainCandleSeries.dataPoints=s,this.secondaryCandleSeries.filter(i=>t.filter(a=>{var o;return((o=a.instrument)==null?void 0:o.symbol)===i.instrument.symbol}).length===0).forEach(i=>this.removeSecondaryCandleSeries(i)),t.map(i=>this.setSecondaryCandleSeries(i.candles,i.instrument,!1)),this.candleSeries.forEach(i=>{i.recalculateDataViewportIndexes(),i.recalculateVisualPoints()}),this.chartBaseModel.recalculatePeriod(),this.autoScaleOnCandles(),this.scaleModel.doAutoScale(),this.candlesSetSubject.next(),this.bus.fireDraw([this.canvasModel.canvasId])}autoScaleOnCandles(){this.scaleModel.state.autoScaleOnCandles&&(this.doBasicScale(),this.scaleModel.autoScale(!0))}doBasicScale(){this.basicScaleViewportTransformer(this.mainCandleSeries.visualPoints),this.bus.fireDraw()}doPreviousTimeFrameScale(e=null){this.timeFrameViewportTransformer(this.lastTimeFrame,e),this.scaleModel.state.autoScaleOnCandles&&this.scaleModel.doAutoScale(!0),this.bus.fireDraw()}rememberCurrentTimeframe(){this.mainCandleSeries.visualPoints.length!==0&&(this.lastTimeFrame=[this.candleFromX(this.scaleModel.toX(this.scaleModel.xStart),!0).timestamp,this.candleFromX(this.scaleModel.toX(this.scaleModel.xEnd),!0).timestamp])}updateAllSeries(e,t=[]){e=gn({},e),e.instrument||(e.instrument=this.mainCandleSeries.instrument);const r=[e,...t];if(!this.candleSeries.every(l=>r.find(c=>{var h;return((h=c.instrument)==null?void 0:h.symbol)===l.instrument.symbol}))||t.length!==this.secondaryCandleSeries.length){console.error("All series update failed. Instruments for series are different.");return}const s=pn(e.candles.map(vn)),i=Mi(this.mainCandleSeries.dataPoints,s),a=i.candles;gi(a),this.mainCandleSeries.dataPoints=a,t.map(l=>{var c,h,v,p;const y=pn(l.candles.map(vn)),E=Mi((p=(v=this.findSecondarySeriesBySymbol((h=(c=l.instrument)==null?void 0:c.symbol)!=null?h:""))==null?void 0:v.dataPoints)!=null?p:[],y).candles;return this.setSecondaryCandleSeries(E,l.instrument,!1)}),this.candleSeries.forEach(l=>{l.recalculateVisualPoints(),l.recalculateDataViewportIndexes()});const o=this.chartBaseModel.mainVisualPoints.slice(0,i.prepended).reduce((l,c)=>l+c.width,0);this.scaleModel.moveXStart(this.scaleModel.xStart+o),this.candlesPrependSubject.next({prependedCandlesWidth:o,preparedCandles:s}),this.chartBaseModel.recalculatePeriod(),this.candlesUpdatedSubject.next(),this.bus.fireDraw()}removeDataFrom(e){Object.values(this.paneManager.paneComponents).forEach(t=>{t.dataSeries.forEach(r=>{const s=ct(r.dataPoints,e,a=>a.timestamp),i=s.exact?s.index:s.index+1;r.dataPoints=r.dataPoints.slice(0,i)})}),this.candlesRemovedSubject.next(),this.candlesUpdatedSubject.next(),this.canvasModel.fireDraw()}createSecondaryCandleSeriesModel(e){const t=gn(gn({},this.config.colors),this.secondaryChartColors.takeColorFromPool(e.symbol));return this.createCandleSeriesModel(e,t)}createCandleSeriesModel(e,t){const r=new ht(this.paneManager.paneComponents[ae].mainYExtentComponent,this.paneManager.hitTestController.getNewDataSeriesHitTestId(),this.bus,this.scaleModel,e,this.candlesTransformersByChartType,this.candleWidthByChartType,t);return r.config.type="line",this.candleSeries.push(r),r}removeSecondaryCandleSeries(e){return this.secondaryChartColors.addColorToPool(e.instrument.symbol),this.candleSeries=this.candleSeries.filter(t=>t!==e),e.deactivate(),this.paneManager.paneComponents[ae].removeDataSeries(e),this.scaleModel.doAutoScale(),e.colors}secondarySeriesAdjustments(e,t){const r=[];return e.forEach(s=>{var i;const a=(i=s.idx)!=null?i:0,o=t[a];if(o)r.push(o);else{let l=xi(t,a,-1);if(l||(l=xi(t,a,1)),l){const c=gl(l,a,!0);r.push(c)}}}),r}updateSecondaryCandleSeriesConfig(e,t,r){const s=Ge(e,tn().colors);this.secondaryChartColors.updateColorConfig(t,s);const i=this.findSecondarySeriesBySymbol(t);i&&(i.config.type=r,i.updateCandleSeriesColors(s),this.bus.fireDraw([this.canvasModel.canvasId])),this.bus.fireDraw([this.canvasModel.canvasId])}setAutoScale(e){this.scaleModel.autoScale(e)}getEffectiveYAxisWidth(){return this.canvasBoundsContainer.getBounds(Y.PANE_UUID_Y_AXIS(ae)).width}getEffectiveChartWidth(){return this.canvasBoundsContainer.getBounds(Y.PANE_UUID(ae)).width}getEffectiveChartHeight(){return this.canvasBoundsContainer.getBounds(Y.PANE_UUID(ae)).height}setOffsets(e){this.scaleModel.updateOffsets(e);const t=this.getCandlesCountWithRightOffset(),r=this.mainCandleSeries.visualPoints;this.hasCandles()&&t>=r.length&&this.scaleModel.setXScale(this.scaleModel.xStart,this.candleFromIdx(t).startUnit),this.offsetsChanged.next(),this.bus.fireDraw()}getOffsets(){return this.scaleModel.getOffsets()}fromY(e){return this.scaleModel.fromY(e)}priceFromY(e,t){return(t!=null?t:this.mainCandleSeries).view.priceFromY(e)}fromX(e){return this.scaleModel.fromX(e)}toX(e){const t=this.candleFromIdx(e);return this.scaleModel.toX(t.centerUnit)}getBaseLine(){return this.mainCandleSeries.getBaseLine()}candleFromX(e,t=!1,r=this.mainCandleSeries){const s=this.scaleModel.fromX(e);return this.candleFromUnit(s,t,r)}candleFromUnit(e,t=!1,r=this.mainCandleSeries){var s,i;const a=ct(r.visualPoints,e,v=>v.startUnit),o=r.visualPoints,l=this.getLastVisualCandle();o[a.index]!==void 0&&(e<0||l&&e>l.startUnit+l.width)&&(a.index+=pt((e-o[a.index].centerUnit)/this.mainCandleSeries.meanCandleWidth));const c=a.index,h=Math.max(Math.min(o.length-1,c),0);return(c<0||c>=o.length)&&t?zt(this.mainCandleSeries.dataPoints,c,this.chartBaseModel.period):(i=(s=o[h])==null?void 0:s.candle)!=null?i:zt(this.mainCandleSeries.dataPoints,h,this.chartBaseModel.period)}candleFromTimestamp(e,t=!0){return this.chartBaseModel.dataFromTimestamp(e,t)}candleFromIdx(e){return this.chartBaseModel.dataFromIdx(e)}isReady(){return this.canvasModel.isReady()&&this.hasCandles()}registerCandlesTransformer(e,t){this.candlesTransformersByChartType[e]=t}registerCandlesWidthCalculator(e,t){this.candleWidthByChartType[e]=t}registerLastCandleLabelHandler(e,t){this.lastCandleLabelsByChartType[e]=t}hasCandles(){return this.mainCandleSeries.visualPoints.length!==0}getVisualCandle(e){var t,r,s;const i=e-((s=(r=(t=this.mainCandleSeries.visualPoints[0])==null?void 0:t.candle)==null?void 0:r.idx)!=null?s:0);return this.mainCandleSeries.visualPoints[i]}getFirstIdx(){return this.mainCandleSeries.dataIdxStart}getLastIdx(){return this.mainCandleSeries.dataIdxEnd}getFirstTimestamp(e=!0){return e?this.candleFromIdx(this.getFirstIdx()).candle.timestamp:this.candleFromUnit(this.scaleModel.xStart,!0).timestamp}getLastTimestamp(e=!0){return e?this.candleFromIdx(this.getLastIdx()).candle.timestamp:this.candleFromUnit(this.scaleModel.xEnd,!0).timestamp}setTimestampRange(e,t){const r=this.candleFromTimestamp(e).startUnit,s=this.candleFromTimestamp(t),i=s.startUnit+s.width;return this.scaleModel.setXScale(r,i)}getLastCandle(){const e=this.mainCandleSeries.dataPoints;return Ue(e)}getLastVisualCandle(){const e=this.mainCandleSeries.visualPoints;return Ue(e)}getMaxCandlesFitLength(){return ve(this.getEffectiveChartWidth()/this.config.components.chart.minWidth)}getSecondarySeries(){return this.secondaryCandleSeries}isSeriesInstrument(e,t){return e.instrument.symbol===t}findSeriesBySymbol(e){return this.candleSeries.filter(t=>this.isSeriesInstrument(t,e))}findSecondarySeriesBySymbol(e){return this.secondaryCandleSeries.find(t=>this.isSeriesInstrument(t,e))}reindexCandlesBasedOnSeries(e,t){return t.reduce((r,s)=>{const i=s.timestamp,a=kt(i,!1,e,this.chartBaseModel.period);return a.index>=0&&a.index<e.length&&(s.idx=a.index,r[a.index]=s),r},[])}getPeriod(){return this.chartBaseModel.period}isCandleInViewport(e){return this.getFirstIdx()<=e&&e<=this.getLastIdx()}updateCandles(e,t=this.mainCandleSeries.instrument.symbol){const r=this.mainCandleSeries.instrument.symbol===t,s=this.findSeriesBySymbol(t);if(s.length===0){console.warn("updateCandles failed. Can't find series",t);return}s.forEach(i=>{const a=i.dataPoints;let o=!1,l=!1,c;e.forEach(h=>{var v;if(!h)return;const p=kt(h.timestamp,!0,a,this.getPeriod()),y=Math.min(p.index,a.length);o=o||y===a.length,a[y]=h,h.idx=y,i.dataPoints=a,i.recalculateDataViewportIndexes(),l=l||this.isCandleInViewport(y);const E=y>=a.length-1,R=c&&h.timestamp<c.timestamp;if(E&&!R&&(c=h),o&&c&&r&&l){const N=(v=this.candleWidthByChartType[this.config.components.chart.type])!=null?v:Us;this.scaleModel.moveXStart(this.scaleModel.xStart+N(c))}}),c&&i.updateCurrentPrice(c.close),l&&c&&e.length===1?this.bus.fireDraw([this.canvasModel.canvasId]):i.recalculateVisualPoints()}),this.scaleModel.doAutoScale(),this.candlesUpdatedSubject.next()}observeCandlesChanged(){return Me(this.candlesSetSubject,this.candlesUpdatedSubject)}getCandles(){return this.mainCandleSeries.dataPoints}getCandlesWithFake(e=0,t){let r=this.getCandles().slice();const s=this.getCandlesCount(),i=t!=null?t:s+this.FAKE_CANDLES_DEFAULT;r=r.slice(Math.max(0,e),Math.min(s,i));const a=[],o=[];for(let c=s;c<i;c++)a.push(zt(this.mainCandleSeries.dataPoints,c,this.getPeriod()));const l=Math.min(0,i);for(let c=e;c<l;c++)o.push(zt(this.mainCandleSeries.dataPoints,c,this.getPeriod()));return[...o,...r,...a]}getCandlesCount(){return this.mainCandleSeries.dataPoints.length}getCandlesCountWithRightOffset(){return this.getCandlesCount()+this.getOffsets().right}clearData(){this.candleSeries.forEach(e=>e.clearData())}prependCandles(e,t){const r=e.slice(),s=[];return t.forEach(i=>{const o=kt(i.timestamp,!1,e).index;o<0?s.push(i):e[o].timestamp===i.timestamp?r[o]=i:console.warn(`Couldn't update candle with timestamp ${i.timestamp}`)}),{prepended:s.length,candles:[...s,...r]}}addLastCandle(e,t=this.mainCandleSeries.instrument.symbol){this.updateCandles([e],t)}updateLastCandle(e,t=this.mainCandleSeries.instrument.symbol){this.updateCandles([e],t)}}const pn=n=>n.slice().sort((e,t)=>e.timestamp===t.timestamp?0:e.timestamp>t.timestamp?1:-1),xi=(n,e,t)=>{if(e>=n.length)return n[n.length-1];for(let r=e;r<n.length&&r>=0;r+=t){const s=n[r];if(s)return s}},Mi=(n,e)=>{const t=n.slice(),r=[],s=[];return e.forEach(i=>{const o=kt(i.timestamp,!0,n).index;o<0?r.push(i):o>=n.length?s.push(i):n[o].timestamp===i.timestamp?t[o]=i:console.warn(`Couldn't update candle with timestamp ${i.timestamp}`)}),{prepended:r.length,appended:s.length,candles:[...r,...t,...s]}};class Lt{constructor(e){this.canvasModel=e}draw(){this.canvasModel.clear()}getCanvasIds(){return[this.canvasModel.canvasId]}}class ar{constructor(e){this.drawers=e!=null?e:new Map}draw(){this.drawers.forEach(e=>e.draw())}addDrawer(e,t){const r=t!=null?t:"drawer"+this.drawers.size;this.drawers.set(r,e)}drawLastBar(){this.drawers.forEach(e=>e.drawLastBar&&e.drawLastBar())}removeDrawer(e){const t=Ps(this.drawers,e);t?this.drawers.delete(t):console.warn("Couldn't find drawer type")}removeDrawerByName(e){this.drawers.delete(e)}getDrawer(e){return this.drawers.get(e)}moveTop(e){const t=Ps(this.drawers,e);t?this.moveTopByName(t):console.warn("Couldn't find drawer type")}moveTopByName(e){if(this.drawers.size===1)return;const t=this.drawers.get(e);this.drawers.delete(e),t&&this.drawers.set(e,t)}getSize(){return this.drawers.size}getAll(){return this.drawers}getCanvasIds(){const e=Ie(Array.from(this.drawers).map(([,r])=>r.getCanvasIds())),t=new Set([...e]);return Array.from(t)}}class mh{constructor(e,t,r){this.model=e,this.crossToolCanvasModel=t,this.crossToolTypeDrawers=r}draw(){const e=this.crossToolTypeDrawers[this.model.type];e?this.model.currentHover&&e.draw(this.crossToolCanvasModel.ctx,this.model.currentHover):console.error(`No cross tool drawer type registered for drawer type ${this.model.type}`)}getCanvasIds(){return[this.crossToolCanvasModel.canvasId]}}class bh extends te{constructor(e,t,r,s){super(),this.config=e,this.crossToolCanvasModel=t,this.crossEventProducer=r,this.hoverProducer=s,this.currentHoverSubject=new lt(null),this.type="cross-and-labels",this.type=e.type}get currentHover(){return this.currentHoverSubject.getValue()}set currentHover(e){this.currentHoverSubject.next(e)}setType(e){this.type=e}doActivate(){super.doActivate(),this.addRxSubscription(this.hoverProducer.hoverSubject.subscribe(e=>{this.crossEventProducer.crossSubject.getValue()!==null&&e!==null?this.updateHover(e):this.currentHover=null,this.fireDraw()}))}fireDraw(){this.type!=="none"&&this.crossToolCanvasModel.fireDraw()}updateHover(e,t=this.config.magnetTarget){if(this.currentHover===null?this.currentHover={x:e.x,y:0,time:e.timeFormatted,paneId:e.paneId}:(this.currentHover.x=e.x,this.currentHover.time=e.timeFormatted),e.candleHover&&e.paneId===ae)switch(t){case"O":this.currentHover.y=e.candleHover.openY;break;case"C":this.currentHover.y=e.candleHover.closeY;break;case"H":this.currentHover.y=e.candleHover.highY;break;case"L":this.currentHover.y=e.candleHover.lowY;break;case"OHLC":this.currentHover.y=e.candleHover.closestOHLCY;break;case"none":this.currentHover.y=e.y;break}else this.currentHover.y=e.y;this.currentHoverSubject.next(this.currentHover)}}const Xe=4;function Ch(n,e,t,r,s,i,a,o=!1){var l,c,h,v,p,y,E;const R=i.align,N=(l=s.textFont)!=null?l:mt(i),k=s.bgColor,U=(c=s.textColor)!=null?c:Ht(k,a.labelTextColor,a.labelInvertedTextColor),Z=(h=s.paddingTop)!=null?h:Xe,K=(v=s.paddingBottom)!=null?v:Xe,q=(p=s.paddingEnd)!=null?p:Xe,$=pt(Qe(N,n)/2),J=r-$-Z,oe=r+$+K-J;if((r<e.y+oe/2||r>e.y+e.height-oe/2)&&!o)return;n.save(),n.fillStyle=k,n.strokeStyle=k;const le=pt(e.width/6),re=R==="right"?e.x:e.x+e.width,ce=R==="right"?re+le:re-le,fe=i.labelBoxMargin.end,de=fe-q,ue=e.width-le-de;wc(n,ce,J,re,J+pt(oe/2),ce,J+oe,ue,(E=(y=i.typeConfig.badge)==null?void 0:y.rounded)!=null?E:!1,R),n.fillStyle=U,n.font=N;const pe=R==="right"?e.x+e.width-Re(t,n,N)-fe:e.x+fe;n.fillText(t,pe,r+$-1),n.restore()}function yh(n,e,t,r,s,i,a,o=!1){var l,c,h,v,p,y,E,R,N,k,U;const Z=i.align,K=(l=s.textFont)!=null?l:mt(i),q=s.bgColor,$=(c=s.textColor)!=null?c:Ht(q,a.labelTextColor,a.labelInvertedTextColor),J=(h=i.typeConfig.rectangle)==null?void 0:h.paddings,ne=(p=(v=s.paddingTop)!=null?v:J==null?void 0:J.top)!=null?p:Xe,oe=(E=(y=s.paddingBottom)!=null?y:J==null?void 0:J.bottom)!=null?E:Xe,le=(N=(R=s.paddingEnd)!=null?R:J==null?void 0:J.end)!=null?N:Xe,re=s.paddingStart,ce=Qe(K,n),fe=r-ce/2-ne,ue=r+ce/2+oe-fe,pe=(U=s.rounded)!=null?U:(k=i.typeConfig.rectangle)==null?void 0:k.rounded;if((r<e.y+ue/2||r>e.y+e.height-ue/2)&&!o)return;n.save(),n.fillStyle=q,n.strokeStyle=q;const me=i.labelBoxMargin.end;n.font=K;const Fe=Re(t,n,K),Ye=me-le,He=re!==void 0?Fe+re+le:e.width-Ye,ft=Z==="right"?e.x+e.width-Ye-He:e.x+Ye,Mn=Z==="right"?e.x+e.width-Fe-me:me;pe?ti(n,ft,fe,He,ue,4,!0):n.fillRect(ft,fe,He,ue),n.fillStyle=$,n.fillText(t,Mn,r+ce/2-1),n.restore()}function wh(n,e,t,r,s,i,a,o=!1,l){var c,h,v,p,y,E,R,N,k;const U=i.align,Z=(c=s.textFont)!=null?c:mt(i),K=s.bgColor,q=(h=s.textColor)!=null?h:Ht(K,a.labelTextColor,a.labelInvertedTextColor),$=(v=i.typeConfig.rectangle)==null?void 0:v.paddings,J=(y=(p=s.paddingTop)!=null?p:$==null?void 0:$.top)!=null?y:Xe,ne=(R=(E=s.paddingBottom)!=null?E:$==null?void 0:$.bottom)!=null?R:Xe,oe=(k=(N=s.paddingEnd)!=null?N:$==null?void 0:$.end)!=null?k:Xe,le=s.paddingStart,re=Qe(Z,n),ce=r-re/2-J,de=r+re/2+ne-ce;if((r<e.y+de/2||r>e.y+e.height-de/2)&&!o)return;n.save(),n.fillStyle=K,n.strokeStyle=K;const ue=i.labelBoxMargin.end;n.font=Z;const pe=Re(t,n,Z),me=ue-oe,Fe=le!==void 0?pe+le+oe:e.width-me,Ye=U==="right"?e.x+e.width-me-Fe:e.x+me,He=U==="right"?e.x+e.width-pe-ue:ue;l&&cn(l,n,Ye,ce,Fe,de),n.fillStyle=q,n.fillText(t,He,r+re/2-1),n.restore()}function Sh(n,e,t=Xe){return Qe(n,e)/2+t}const xh="badge",Pi=4,Ti={badge:Ch,rectangle:yh,plain:wh};function _i(n,e,t,r,s,i,a,o){var l,c,h,v,p;const y=s.y,E=s.labelText,R=(l=s.mode)!=null?l:"label",N=(c=s.labelType)!=null?c:xh,k=s.description,U=(h=s.textFont)!=null?h:mt(a),Z=s.bgColor,K=(v=s.lineColor)!=null?v:Z,q=Re(k!=null?k:"",n,U)+8,$=ve(s.y),J=Qe(U,n),ne=y-J/2,le=y+J/2-ne;n.save(),n.fillStyle=Z,n.strokeStyle=K;const re=i.getBounds(Y.PANE_UUID(ae)),ce=Ti[N],fe=a.labels.descriptions,de=Mh(t,$,le),ue=()=>fe&&Ph(e,n,t,r,s,a.align,a);let pe,me;const Fe=2;a.align==="right"?(pe=re.x,me=fe?re.x+re.width-q:re.x+re.width+Fe):(pe=fe?re.x+q:re.x-Fe,me=re.x+re.width);const Ye=(p=s.lineY)!=null?p:s.y,He=()=>de&&Ct(n,()=>Sc(n,pe,Ye,me,Ye,1)),ft=()=>ce(n,t,E,y,s,a,o,!1,e);switch(R){case"line":He(),ue();break;case"line-label":He(),ue(),ft();break;case"label":ue(),ft();break;case"none":break}n.restore()}const Mh=(n,e,t)=>e>n.y+t/2&&e<n.y+n.height-t/2;function Ph(n,e,t,r,s,i="right",a){var o,l,c;const h=s.description;if(!h||h.length===0)return;const v=s.y,p=mt(a),y=Re(h,e,p),E=Qe(p,e),R=(o=s.paddingTop)!=null?o:Pi,N=(l=s.paddingBottom)!=null?l:Pi,k=v-E/2-R,Z=v+E/2+N-k;if(v<t.y+Z/2||v>t.y+t.height-Z/2)return;e.save();const K=y+5,q=4,$=y+q*2,J=r.x+r.width,ne=i==="right"?J-$:r.x+q;cn(n,e,ne,k,K,Z,.8),e.fillStyle=(c=s.descColor)!=null?c:s.bgColor,e.font=p;const oe=i==="right"?J-y-q*2:r.x+q*2;e.fillText(h,oe,v+E/2-1),e.restore()}class Ai{constructor(e,t,r,s=()=>!0,i){this.config=e,this.canvasBoundsContainer=t,this.paneManager=r,this.crossDrawPredicate=s,this.noLines=i}draw(e,t){this.crossDrawPredicate()&&Ct(e,()=>this.drawCrossTool(e,t))}drawCrossTool(e,t){var r,s,i,a,o;const l=this.canvasBoundsContainer.getBounds(Y.ALL_PANES),c=this.canvasBoundsContainer.getBoundsHitTest(Y.ALL_PANES,{extensionY:1e-4}),h=(r=this.config.components.xAxis.padding.top)!=null?r:0,v=(i=this.config.components.yAxis.typeConfig[(s=this.config.components.crossTool.yLabel.type)!=null?s:"badge"])==null?void 0:i.paddings,p=(a=v==null?void 0:v.start)!=null?a:0,y=(o=this.paneManager.paneComponents[t.paneId])==null?void 0:o.ht;if(c(t.x,l.y)){const E={start:[l.x,t.y],end:[l.x+l.width+p,t.y]},R={start:[t.x,l.y],end:[t.x,l.y+l.height+h]},N=y==null?void 0:y(t.x,t.y);this.noLines||(e.strokeStyle=this.config.colors.crossTool.lineColor,e.setLineDash(this.config.components.crossTool.lineDash),e.beginPath(),N&&(e.moveTo(...E.start),e.lineTo(...E.end)),e.moveTo(...R.start),e.lineTo(...R.end),e.stroke()),N&&this.drawYLabel(e,t),this.drawXLabel(e,t)}}drawXLabel(e,t){var r,s,i,a,o;const l=this.config.components.crossTool.xLabel.padding,c=this.config.components.crossTool.xLabel.margin,h=this.config.colors.crossTool;if(this.config.components.xAxis.visible){e.font=this.config.components.xAxis.fontSize+"px "+this.config.components.xAxis.fontFamily;const v=t.x,p=t.time,y=e.measureText(p).width,E=this.config.components.xAxis.fontSize,R=this.canvasBoundsContainer.getBounds(Y.X_AXIS);e.save(),e.fillStyle=h.labelBoxColor;const N=(r=l==null?void 0:l.left)!=null?r:0,k=(s=l==null?void 0:l.right)!=null?s:0,U=(i=l==null?void 0:l.top)!=null?i:0,Z=(a=l==null?void 0:l.bottom)!=null?a:0,K=(o=c==null?void 0:c.top)!=null?o:0,q=y+N+k,$=E+U+Z,J=Math.max(v-q/2,0),ne=R.y+K;ti(e,J,ne,q,$),e.fillStyle=h.labelTextColor;const oe=Math.max(v-y/2,N),le=R.y+K+E+U-1;e.fillText(p,oe,le),e.restore()}}drawYLabel(e,t){var r,s;const i=this.config.components.crossTool.yLabel.padding,a=this.config.colors.crossTool;if(this.config.components.yAxis.visible){const o=this.paneManager.paneComponents[t.paneId],l=t.y;if(!o)return;for(const c of o.yExtentComponents){const h=c.regularValueFromY(l),v=c.valueFormatter(h),p=this.canvasBoundsContainer.getBounds(Y.PANE_UUID_Y_AXIS(o.uuid,c.idx)),y=Ti[this.config.components.crossTool.yLabel.type];y(e,p,v,l,{textColor:a.labelTextColor,bgColor:a.labelBoxColor,paddingBottom:i==null?void 0:i.bottom,paddingEnd:i==null?void 0:i.end,paddingTop:i==null?void 0:i.top},(s=(r=c.yAxisComponent)==null?void 0:r.state)!=null?s:this.config.components.yAxis,this.config.colors.yAxis,!0)}}}}class Th{draw(){}}class _h extends te{constructor(e,t,r,s,i,a,o){super(),this.config=e,this.crossToolCanvasModel=t,this.canvasBoundsContainer=r,this.drawingManager=s,this.paneManager=i,this.crossToolTypeDrawers={},this.model=new bh(e.components.crossTool,this.crossToolCanvasModel,a,o),this.addChildEntity(this.model);const l=new Lt(this.crossToolCanvasModel);this.registerDefaultDrawerTypes();const c=new mh(this.model,this.crossToolCanvasModel,this.crossToolTypeDrawers),h=new ar;h.addDrawer(l,"CLEAR_CANVAS"),h.addDrawer(c,"CROSS_TOOL_DRAWER"),this.drawingManager.addDrawer(h,"CROSS_TOOL")}registerDefaultDrawerTypes(){this.registerCrossToolTypeDrawer("cross-and-labels",new Ai(this.config,this.canvasBoundsContainer,this.paneManager,()=>!0)),this.registerCrossToolTypeDrawer("just-labels",new Ai(this.config,this.canvasBoundsContainer,this.paneManager,()=>!0,!0)),this.registerCrossToolTypeDrawer("none",new Th)}setVisible(e){this.model.setType(e?"cross-and-labels":"none")}setType(e){this.model.setType(e)}observeCrossToolChanged(){return this.model.currentHoverSubject}setMagnetTarget(e){this.config.components.crossTool.magnetTarget=e}registerCrossToolTypeDrawer(e,t){this.crossToolTypeDrawers[e]=t}}const Ah=()=>n=>n.toString(),Dh=(n,e)=>{var t;const r="date.get"+(e((t=n.timezone)!=null?t:"")?"":"UTC"),s={YYYY:a("FullYear"),YY:a("FullYear")+" % 100",MMM:o("shortMonths","Month"),MMMM:l(o("shortMonths","Month")),M:"1+"+a("Month"),d:a("Date"),H:a("Hours"),m:a("Minutes"),s:a("Seconds"),sss:a("Milliseconds"),EEE:o("shortDays","Day"),SSS:"this.addTwoZeros("+a("Milliseconds")+")",T:"date.getTime()"};["s","m","H","d","M"].forEach(function(h){s[h+h]="this.addZero("+s[h]+")"});const i=new RegExp(Object.keys(s).sort().reverse().join("|"),"g");function a(h){return r+h+"()"}function o(h,v){return"this."+h+"["+a(v)+"]"}function l(h){return h+".toUpperCase()"}function c(h){return"' + ("+s[h]+") + '"}return function(h){var v;const p={shortDays:Eh(n),shortMonths:Lh(n),addZero(y){return y<10?"0"+y:y},addTwoZeros(y){return(y<100?"0":"")+(y<10?"0":"")+y},tzDate:e((v=n.timezone)!=null?v:"")||function(y){return y instanceof Date?y:new Date(+y)}};return new Function("date","date=this.tzDate(date); return '"+h.replace(i,c)+"'").bind(p)}};function Eh(n){var e;return(e=n.shortDays)!=null?e:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}function Lh(n){var e;return(e=n.shortMonths)!=null?e:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}const Di=(n,e,t)=>{if(n){if(typeof n=="string")return t(n);if(Array.isArray(n)){const r=n.filter(s=>{if(s.showWhen){const i=[];return s.showWhen.periodLessThen&&i.push(()=>{var a,o;return e<((o=(a=s.showWhen)==null?void 0:a.periodLessThen)!=null?o:0)}),s.showWhen.periodMoreThen&&i.push(()=>{var a,o;return e>=((o=(a=s.showWhen)==null?void 0:a.periodMoreThen)!=null?o:0)}),i.every(a=>a())}else return!0});if(r.length>0){const s=r[0];if(s.format)return t(s.format);if(s.customFormatter)return s.customFormatter}}}return Ah()},Ih={"rhombus-small":4,rhombus:6,"rhombus-large":8},Vt=(n,e)=>`${n}_${e}`;class Oh{constructor(e,t,r,s,i,a,o){this.backgroundCanvas=e,this.canvasModel=t,this.chartModel=r,this.config=s,this.canvasBoundsContainer=i,this.model=a,this.formatterProvider=o,this.customIcons={};const l=this.config.components.events.icons;l&&(this.createCustomIcon("earnings",l.earnings),this.createCustomIcon("dividends",l.dividends),this.createCustomIcon("splits",l.splits),this.createCustomIcon("conference-calls",l.conferenceCalls))}createCustomIcon(e,t){if(t){const r=this.createIconImage(t.normal),s=this.createIconImage(t.hover);this.customIcons[Vt(e,"normal")]=r,this.customIcons[Vt(e,"hover")]=s}}createIconImage(e){var t;const s=new DOMParser().parseFromString(e,"text/html").querySelector("svg");let i=0;s&&(i=parseInt((t=s.getAttribute("height"))!=null?t:"",10));const l="data:image/svg+xml;base64,"+btoa(e),c=new Image;return c.src=l,{img:c,svgHeight:i}}draw(){if(!this.config.components.events.visible)return;const e=this.canvasBoundsContainer.getBounds(Y.EVENTS),t=this.canvasBoundsContainer.getBounds(Y.ALL_PANES),r=this.canvasModel.ctx;r.save(),this.model.events.filter(s=>this.config.components.events.eventsVisibility[s.type]).forEach(s=>{const i=this.chartModel.candleFromTimestamp(s.timestamp).xCenter(this.chartModel.scaleModel);if(i>t.x&&i<t.x+t.width){const a=this.config.colors.events[s.type].color;r.strokeStyle=a,this.customIcons[Vt(s.type,"hover")]!==void 0?this.drawCustomSvgEvent(r,i,e,s):this.drawDefaultEvent(r,i,e,s,a),this.model.hoveredEvent.getValue()===s&&(r.beginPath(),r.moveTo(i,t.y),r.lineTo(i,e.y+e.height/2),r.stroke(),r.closePath(),this.config.components.xAxis.visible&&this.drawLabel(i,s))}}),r.restore()}drawCustomSvgEvent(e,t,r,s){const i=r.y+r.height/2,a=this.customIcons[Vt(s.type,"normal")],o=this.customIcons[Vt(s.type,"hover")];this.model.hoveredEvent.getValue()===s?e.drawImage(o.img,t-o.svgHeight/2,i-o.svgHeight/2):e.drawImage(a.img,t-a.svgHeight/2,i-a.svgHeight/2)}drawDefaultEvent(e,t,r,s,i){const a=r.y+r.height/2;e.fillStyle=i,e.lineWidth=1.5;const o=or(s);e.beginPath(),e.moveTo(t-o,a),e.lineTo(t,a-o),e.lineTo(t+o,a),e.lineTo(t,a+o),e.closePath(),this.model.hoveredEvent.getValue()===s?e.fill():e.stroke()}drawLabel(e,t){var r;const s=this.canvasModel.ctx,i=this.canvasBoundsContainer.getBounds(Y.X_AXIS),a=this.config.components.xAxis.fontFamily,o=this.config.components.xAxis.fontSize,l=(r=this.config.components.xAxis.padding.top)!=null?r:0,c=i.y+o-1+l;s.font=`${o}px ${a}`;const h=this.formatterProvider()(t.timestamp),v=s.measureText(h).width;cn(this.backgroundCanvas.ctx,s,e-v/2,i.y+1,v,i.height-1),s.fillStyle=this.config.colors.events[t.type].color,s.fillText(h,e-v/2,c)}getCanvasIds(){return[this.canvasModel.canvasId]}}function or(n){return Ih[n.style]}const mn=5;class Bh{constructor(e,t,r,s,i){this.hitTestCanvasModel=e,this.chartModel=t,this.config=r,this.canvasBoundsContainer=s,this.model=i}draw(){const e=this.hitTestCanvasModel.ctx,t=this.canvasBoundsContainer.getBounds(Y.EVENTS);e.save(),this.model.events.forEach((r,s)=>{const i=this.model.events[s-1],a=i&&this.chartModel.candleFromTimestamp(i.timestamp).xCenter(this.chartModel.scaleModel),o=this.chartModel.candleFromTimestamp(r.timestamp).xCenter(this.chartModel.scaleModel);if(o>t.x&&o<t.x+t.width){const l=this.config.colors.events[r.type].color;e.strokeStyle=l,e.fillStyle=l;const c=or(r);e.fillStyle=this.hitTestCanvasModel.idToColor(r.id);const h=(c+mn)*2;if(a!==void 0){const v=or(i);if(a+v>o-h/2){const y=c*2+mn;e.fillRect(a+v,t.y,y,t.height)}else e.fillRect(o-c-mn,t.y,h,t.height)}else e.fillRect(o-c-mn,t.y,h,t.height)}}),e.restore()}getCanvasIds(){return[this.hitTestCanvasModel.canvasId]}}var Rh=Object.defineProperty,Ei=Object.getOwnPropertySymbols,Fh=Object.prototype.hasOwnProperty,Yh=Object.prototype.propertyIsEnumerable,Li=(n,e,t)=>e in n?Rh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Hh=(n,e)=>{for(var t in e||(e={}))Fh.call(e,t)&&Li(n,t,e[t]);if(Ei)for(var t of Ei(e))Yh.call(e,t)&&Li(n,t,e[t]);return n};const Ii=317,lr={DRAWINGS:[1,199],NEWS:[200,299],DATA_SERIES:[300,2999],EVENTS:[3e3,4e3]};class Nh extends li{constructor(e,t,r,s,i,a,o,l){super(e,t,i,o,l,{willReadFrequently:!0,desynchronized:!0}),this.canvasInputListener=r,this.canvasBoundsContainer=s,this.hitTestSubscribers=[],this.eventsSubscriptions=[],this.hoverSubject=new G,this.touchStartSubject=new G,this.dblClickSubject=new G,this.rightClickSubject=new G,this.curImgData=new Uint8ClampedArray(4),this.prevAnimationFrameId=-1,ci(this,a),t.style.visibility="hidden",this.enableUserControls()}enableUserControls(){if(this.eventsSubscriptions.length===0){const e=this.canvasBoundsContainer.getBoundsHitTest(Y.ALL_PANES),t=this.canvasInputListener.observeMouseMove().pipe(Nt(100,void 0,{trailing:!0})).subscribe(c=>this.eventHandler(c,"hover")),r=this.canvasInputListener.observeTouchStart().pipe(ye(()=>this.canvasInputListener.currentPoint)).subscribe(c=>this.eventHandler(c,"touchstart")),s=Me(this.canvasInputListener.observeMouseDown(e),this.canvasInputListener.observeTouchStart().pipe(ye(()=>this.canvasInputListener.currentPoint))).subscribe(c=>this.eventHandler(c,"mousedown")),i=Me(this.canvasInputListener.observeMouseUp(e),this.canvasInputListener.observeTouchEndDocument().pipe(ye(()=>this.canvasInputListener.currentPoint))).subscribe(c=>this.eventHandler(c,"mouseup")),a=this.canvasInputListener.observeDbClick(e).subscribe(c=>this.eventHandler(c,"dblclick")),o=this.canvasInputListener.observeContextMenu(e).pipe(ye(()=>Hh({},this.canvasInputListener.currentPoint))).subscribe(c=>{this.eventHandler(c,"contextmenu")}),l=this.canvasInputListener.observeWheel(e).subscribe(c=>setTimeout(()=>this.eventHandler(c,"zoom"),0));this.eventsSubscriptions.push(t,s,a,o,l,r,i)}}disableUserControls(){this.eventsSubscriptions.forEach(e=>e.unsubscribe()),this.eventsSubscriptions=[]}addSubscriber(e){this.hitTestSubscribers.push(e)}removeSubscriber(e){this.hitTestSubscribers=this.hitTestSubscribers.filter(t=>t===e)}idToColor(e){const t=(e*Ii).toString(16);return"#000000".substr(0,7-t.length)+t}colorToId(e){return e/Ii}observeHoverOnElement(){return this.hoverSubject.asObservable()}observeTouchStartOnElement(){return this.touchStartSubject.asObservable()}observeDblClickOnElement(){return this.dblClickSubject.asObservable()}observeRightClickOnElement(){return this.rightClickSubject.asObservable()}getPixel(e,t){const r=window.devicePixelRatio;return this.prevAnimationFrameId!==nr&&(this.curImgData=this.ctx.getImageData(e*r,t*r,1,1).data,this.prevAnimationFrameId=nr),this.curImgData}resolveModel(e){const t=this.getPixel(e.x,e.y),r=this.colorToId(t[0]*65536+t[1]*256+t[2]),s=Number(r),[i]=cr(this.hitTestSubscribers,s);return i==null?void 0:i.lookup(r)}resolveCursor(e){var t;if(!this.hitTestSubscribers.some(l=>l.resolveCursor!==void 0))return;const r=this.getPixel(e.x,e.y),s=this.colorToId(r[0]*65536+r[1]*256+r[2]),i=Number(s),[a]=cr(this.hitTestSubscribers,i),o=a==null?void 0:a.lookup(s);return(t=a==null?void 0:a.resolveCursor)==null?void 0:t.call(a,e,o)}eventHandler(e,t){var r,s,i,a,o,l,c;const h=this.getPixel(e.x,e.y),v=this.colorToId(h[0]*65536+h[1]*256+h[2]),p=Number(v),[y,E]=cr(this.hitTestSubscribers,p),R=y==null?void 0:y.lookup(v),N={point:e,model:R};switch(t){case"mousedown":R&&((r=y==null?void 0:y.onMouseDown)==null||r.call(y,R,e)),E.forEach(k=>k.onMouseDown&&k.onMouseDown(null,e));break;case"mouseup":R&&((s=y==null?void 0:y.onMouseUp)==null||s.call(y,R,e)),E.forEach(k=>k.onMouseUp&&k.onMouseUp(null,e));break;case"hover":R&&((i=y==null?void 0:y.onHover)==null||i.call(y,R,e)),E.forEach(k=>k.onHover&&k.onHover(null,e)),this.hoverSubject.next(N);break;case"touchstart":R&&((a=y==null?void 0:y.onTouchStart)==null||a.call(y,R,e)),E.forEach(k=>k.onTouchStart&&k.onTouchStart(null,e)),this.touchStartSubject.next(N);break;case"dblclick":R&&((o=y==null?void 0:y.onDblClick)==null||o.call(y,R,e)),this.dblClickSubject.next(N);break;case"contextmenu":R&&((l=y==null?void 0:y.onRightClick)==null||l.call(y,R,e)),this.rightClickSubject.next(N);break;case"zoom":R&&((c=y==null?void 0:y.onZoom)==null||c.call(y,R,e)),E.forEach(k=>k.onZoom&&k.onZoom(null,e));break;default:break}}}const cr=(n,e)=>{let t;const r=[];return n.forEach(s=>{const[i,a]=s.getIdRange();e>=i&&e<=a?t=s:r.push(s)}),[t,r]};var kh=Object.defineProperty,Wh=Object.defineProperties,Uh=Object.getOwnPropertyDescriptors,Oi=Object.getOwnPropertySymbols,zh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,Bi=(n,e,t)=>e in n?kh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,jh=(n,e)=>{for(var t in e||(e={}))zh.call(e,t)&&Bi(n,t,e[t]);if(Oi)for(var t of Oi(e))Xh.call(e,t)&&Bi(n,t,e[t]);return n},Vh=(n,e)=>Wh(n,Uh(e));class Gh extends te{constructor(e){super(),this.canvasModel=e,this.events=[],this.hoveredEvent=new lt(null)}setEvents(e){this.events=this.indexEvents(e)}indexEvents(e){const t=this.getIdRange()[0];return e.map((r,s)=>Vh(jh({},r),{id:s+t})).sort((r,s)=>r.timestamp-s.timestamp)}getIdRange(){return lr.EVENTS}lookup(e){return this.events.filter(t=>t.id===e)[0]}onHover(e,t){this.hoveredEvent.getValue()!==e&&(e&&(e.point=t),this.hoveredEvent.next(e),this.canvasModel.fireDraw())}onTouchStart(e,t){this.onHover(e,t)}}class $h extends te{constructor(e,t,r,s,i,a,o,l,c){super(),this.config=e,this.canvasModel=t,this.canvasBoundsContainer=i,this.drawingManager=a,this.formatterFactory=o,this.eventsXAxisLabelFormatterProvider=()=>Di(this.config.components.events.xAxisLabelFormat,s.getPeriod(),this.formatterFactory);const h=new Gh(t);this.eventsModel=h,this.addChildEntity(h),r.addSubscriber(h);const v=new Oh(c,t,s,e,i,h,this.eventsXAxisLabelFormatterProvider);this.drawingManager.addDrawer(v,"EVENTS");const p=new Bh(r,s,e,i,h);this.drawingManager.addDrawerBefore(p,"HIT_TEST_EVENTS","HIT_TEST_DRAWINGS"),l.setCursorForCanvasEl(Y.EVENTS,e.components.events.cursor)}setEvents(e){this.eventsModel.setEvents(e),this.canvasModel.fireDraw()}setVisible(e){this.config.components.events.visible=e,this.canvasBoundsContainer.recalculateBounds(),this.canvasModel.fireDraw()}setEventTypeVisible(e){Ge(this.config.components.events.eventsVisibility,e,{overrideExisting:!0,addIfMissing:!1}),this.canvasModel.fireDraw()}observeEventHovered(){return this.eventsModel.hoveredEvent.asObservable()}}class Zh{constructor(e,t,r,s,i,a,o,l=()=>!0,c){this.canvasModel=e,this.viewportModel=t,this.config=r,this.xBoundsProvider=s,this.yBoundsProvider=i,this.xLabelsProvider=a,this.yLabelsProvider=o,this.drawPredicate=l,this.getBaseLine=c}draw(){if(this.drawPredicate()){const e=this.canvasModel.ctx;Ct(e,()=>this.drawVertical(e)),Ct(e,()=>this.drawHorizontal(e)),Ct(e,()=>this.drawZeroLine(e))}}drawZeroLine(e){if(this.getBaseLine&&this.config.components.yAxis.type==="percent"&&this.config.components.yAxis.zeroPercentLine){const t=this.xBoundsProvider(),r=ve(this.getBaseLine());e.beginPath(),e.strokeStyle=this.config.colors.yAxis.zeroPercentLine,e.setLineDash([]),e.moveTo(t.x,r),e.lineTo(t.x+t.width,r),e.stroke(),e.closePath()}}drawVertical(e){const t=this.xLabelsProvider();if(t.length&&this.config.components.grid.vertical){e.lineWidth=this.config.components.grid.width,e.strokeStyle=this.config.colors.chartAreaTheme.gridColor,e.setLineDash(this.config.components.grid.dash||[]);const r=this.xBoundsProvider(),s=r.x+r.width;for(const i of t){const a=ve(this.viewportModel.toX(i.value));a>r.x&&a<s&&(e.beginPath(),e.moveTo(a,r.y),e.lineTo(a,r.y+r.height),e.stroke())}}}drawHorizontal(e){const t=this.yLabelsProvider();if(t.length&&this.config.components.grid.horizontal){e.lineWidth=this.config.components.grid.width,e.strokeStyle=this.config.colors.chartAreaTheme.gridColor,e.setLineDash(this.config.components.grid.dash||[]);const r=this.yBoundsProvider();for(const s of t){const i=ve(this.viewportModel.toY(s.value)),a=Sh(s.text,e,Xe);i>r.y+a&&i<r.y+r.height-a&&(e.beginPath(),e.moveTo(r.x,i),e.lineTo(r.x+r.width,i),e.stroke())}}}getCanvasIds(){return[this.canvasModel.canvasId]}}class Ri extends te{constructor(e,t,r,s,i,a,o,l,c,h,v){super(),this.drawerName=s,this.drawingManager=i,this.drawer=new Zh(e,t,r,a,o,l,c,v,h)}doDeactivate(){super.doDeactivate(),this.drawingManager.removeDrawer(this.drawer)}doActivate(){super.doActivate(),this.drawingManager.addDrawer(this.drawer,this.drawerName)}}class Kh{constructor(e,t,r,s){this.canvasModel=e,this.chartModel=t,this.config=r,this.canvasBoundsContainer=s}draw(){if(this.config.components.highLow.visible&&this.chartModel.isReady()){const{high:e,low:t,highIdx:r,lowIdx:s}=this.chartModel.mainCandleSeries.zippedHighLow,i=this.chartModel.mainCandleSeries.dataIdxStart,a=i+r,o=i+s,l=this.canvasModel.ctx;l.save(),l.font=this.config.components.highLow.font,this.drawMarkerLabel(l,a,e,"high"),this.drawMarkerLabel(l,o,t,"low"),l.restore()}}drawMarkerLabel(e,t,r,s){const i=this.getMarkerY(e,r,s==="low");if(!this.checkMarkerInBounds(i))return;const a=this.getMarkerText(r,s),o=this.getMarkerX(e,t,a);e.fillStyle=s==="high"?this.config.colors.highLowTheme.highColor:this.config.colors.highLowTheme.lowColor,e.fillText(a,o,i)}getMarkerText(e,t){const r=this.chartModel.pane.regularFormatter(e);return`${t==="high"?"H:":"L:"} ${r}`}getMarkerY(e,t,r=!1){const s=this.chartModel.toY(t);if(r){const i=Nn(e);return s+i}return s}checkMarkerInBounds(e){const t=this.canvasBoundsContainer.getBounds(Y.CHART);return e>t.y&&e<t.y+t.height}getMarkerX(e,t,r){let s=this.chartModel.toX(t);const i=this.canvasBoundsContainer.getBounds(Y.CHART),a=4,o=e.measureText(r).width;return s+a+o>i.width&&(s=s-(a+o)),s+a}getCanvasIds(){return[this.canvasModel.canvasId]}}class qh extends te{constructor(e,t,r,s,i){super();const a=new Kh(t,r,e,s);i.addDrawer(a,"HIGH_LOW")}}const Jh=["AFTER_MARKET","PRE_MARKET","NO_TRADING","REGULAR"],Qh=24*60*60*1e3;class ed extends te{constructor(e){super(),this.chartModel=e,this.highlights=[],this.visualHighlights={},this.highlightsUpdatedSubject=new G}activate(){this.addRxSubscription(this.chartModel.scaleModel.xChanged.subscribe(()=>this.highlights.length&&this.recalculateVisualHighlights()))}getHighlights(){return this.highlights}getVisualHighlights(){return this.visualHighlights}recalculateVisualHighlights(){this.visualHighlights={};const e=this.chartModel.getFirstTimestamp(),t=this.chartModel.getLastTimestamp()+Qh;Lo(this.highlights,e,t,td).forEach(s=>{var i;this.visualHighlights[s.type]||(this.visualHighlights[s.type]=[]),(i=this.visualHighlights[s.type])==null||i.push(s)})}setHighlights(e){this.highlights=e,this.highlights.sort((t,r)=>t.to-r.to),this.highlightsUpdatedSubject.next(this.highlights),this.highlights.length?this.recalculateVisualHighlights():this.visualHighlights={}}observeHighlightsUpdated(){return this.highlightsUpdatedSubject.asObservable()}}const td=n=>n.to,dt=[20,10];class nd{constructor(e,t,r,s,i){this.highlightsModel=e,this.chartModel=t,this.canvasModel=r,this.canvasBoundsContainer=s,this.config=i}draw(){var e,t,r,s;if(this.config.components.highlights.visible){const i=this.chartModel.getCandles(),a=this.canvasModel.ctx,o=this.highlightsModel.getVisualHighlights();if(this.highlightsModel.getHighlights().length&&i.length!==0&&this.chartModel.scaleModel.isScaleReady()){const c=this.canvasBoundsContainer.getBounds(Y.ALL_PANES);a.save(),yt(a,c);const h=(e=this.config.components.highlights.border.width)!=null?e:1,v=(t=this.config.components.highlights.border.dash)!=null?t:[0,0],p=(r=this.config.components.highlights.fontSize)!=null?r:11,y=(s=this.config.components.highlights.fontFamily)!=null?s:"monospace",E=`${p}px ${y}, monospace`;a.font=E,a.lineWidth=h,a.setLineDash(v),Jh.forEach(R=>{var N,k;const U=o[R];if(U){const Z=this.config.colors.highlights[R],K=(N=Z==null?void 0:Z.border)!=null?N:"#ffffff",q=(k=Z==null?void 0:Z.background)!=null?k:"#ffffff";a.save(),a.beginPath(),a.fillStyle=q,a.strokeStyle=K,U.forEach($=>{var J,ne,oe;const le=this.chartModel.candleFromTimestamp($.from),re=Pe(le.width,this.chartModel.scaleModel.zoomX),ce=le.xStart(this.chartModel.scaleModel),fe=this.chartModel.candleFromTimestamp($.to),de=Pe(fe.width,this.chartModel.scaleModel.zoomX),ue=fe.xStart(this.chartModel.scaleModel)+de;if($.border&&this.drawBorders($.border,a,ce+re,ue-de,c),a.fillRect(ce,c.y,ue-ce,c.y+c.height),$.label){const pe=(J=$.label.text)!=null?J:"",me=this.config.colors.highlights[$.type];a.save(),a.fillStyle=(ne=me==null?void 0:me.label)!=null?ne:"#ffffff";const Fe=Re(pe,a,E),[Ye,He]=this.resolveHighlightLabelPosition((oe=$.label.placement)!=null?oe:"left-left",c,[ce,ue],Fe);a.fillText(pe,Ye,He),a.restore()}}),a.closePath(),a.restore()}}),a.restore()}}}resolveHighlightLabelPosition(e,t,r,s){const[i,a]=r;switch(e){case"right-left":return[a-dt[1]-s,t.y+dt[0]];case"left-left":return[i-dt[1]-s,t.y+dt[0]];case"right-right":return[a+dt[1],t.y+dt[0]];case"left-right":default:return[i+dt[1],t.y+dt[0]]}}drawBorders(e,t,r,s,i){const a=e.left,o=e.right;a&&(t.beginPath(),t.moveTo(r,i.y),t.lineTo(r,i.y+i.height),t.stroke(),t.closePath()),o&&(t.beginPath(),t.moveTo(s,i.y),t.lineTo(s,i.y+i.height),t.stroke(),t.closePath())}getCanvasIds(){return[this.canvasModel.canvasId]}}const rd="HIGHLIGHTS_PLUGIN";class sd extends te{constructor(e,t,r,s,i,a){super(),this.eventBus=e,this.config=t,this.highlightsModel=new ed(r),this.addChildEntity(this.highlightsModel),this.highLightsDrawer=new nd(this.highlightsModel,r,s,i,t),a.addDrawer(this.highLightsDrawer,rd)}getHighlights(){return this.highlightsModel.getHighlights()}setHighlights(e){this.highlightsModel.setHighlights(e)}setHighlightsVisible(e=!0){this.config.components.highlights.visible=e,this.eventBus.fireDraw(this.highLightsDrawer.getCanvasIds())}observeHighlightsUpdated(){return this.highlightsModel.observeHighlightsUpdated()}}function id(){return w(function(n,e){var t,r=!1;n.subscribe(We(e,function(s){var i=t;t=s,r&&e.next([i,s]),r=!0}))})}function he(n,e){return w(function(t,r){var s=0;t.subscribe(We(r,function(i){return n.call(e,i,s++)&&r.next(i)}))})}var ad=Object.defineProperty,od=Object.defineProperties,ld=Object.getOwnPropertyDescriptors,Fi=Object.getOwnPropertySymbols,cd=Object.prototype.hasOwnProperty,hd=Object.prototype.propertyIsEnumerable,Yi=(n,e,t)=>e in n?ad(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Hi=(n,e)=>{for(var t in e||(e={}))cd.call(e,t)&&Yi(n,t,e[t]);if(Fi)for(var t of Fi(e))hd.call(e,t)&&Yi(n,t,e[t]);return n},Ni=(n,e)=>od(n,ld(e));const nt=4;class dd{constructor(e,t,r,s,i,a){this.config=e,this.chartModel=t,this.canvasModel=r,this.canvasBoundsContainer=s,this.formatterFactory=i,this.visualCandlesProvider=a}draw(){if(this.config.components.navigationMap.visible){const e=this.visualCandlesProvider();if(e.length){const t=this.canvasBoundsContainer.getBounds(Y.N_MAP),r=this.canvasBoundsContainer.getBounds(Y.N_MAP_BTN_L),s=this.canvasBoundsContainer.getBounds(Y.N_MAP_BTN_R),i=this.canvasBoundsContainer.getBounds(Y.N_MAP_KNOT_L),a=this.canvasBoundsContainer.getBounds(Y.N_MAP_KNOT_R),o=this.canvasBoundsContainer.getBounds(Y.N_MAP_SLIDER_WINDOW),l=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART),c=this.canvasModel.ctx;c.fillStyle=this.config.colors.navigationMap.backgroundColor,c.fillRect(t.x,t.y,t.width,t.height),c.strokeStyle=this.config.colors.paneResizer.lineColor,c.lineWidth=1,c.beginPath(),c.moveTo(t.x,t.y),c.lineTo(t.x+t.width,t.y),c.closePath(),c.stroke(),r.width!==0&&this.drawLeftArrowButton(c,r,this.config),s.width!==0&&this.drawRightArrowButton(c,s,this.config),c.fillStyle=this.config.colors.navigationMap.mapFillColor,c.beginPath(),c.moveTo(l.x,l.y+l.height);for(const h of e)c.lineTo(h[0],h[1]);if(c.lineTo(l.x+l.width,l.y+l.height),c.lineTo(l.x,l.y+l.height),c.closePath(),this.config.colors.navigationMap.mapGradientTopColor&&this.config.colors.navigationMap.mapGradientBottomColor){const h=c.createLinearGradient(l.x,l.y,l.x,l.y+l.height);h.addColorStop(0,this.config.colors.navigationMap.mapGradientTopColor),h.addColorStop(1,this.config.colors.navigationMap.mapGradientBottomColor),c.fillStyle=h}c.fill(),this.config.colors.navigationMap.mapColor&&(c.strokeStyle=this.config.colors.navigationMap.mapColor,c.stroke()),this.drawSlider(c,i,a,r,o),this.drawTimeLabels(c)}}}blockDrawSliderOnLeftArrow(e,t,r,s){e.x<=r.x+r.width&&(e.x=r.x+r.width,s.x=e.x+e.width,t.x=s.x+s.width)}drawSlider(e,t,r,s,i){this.blockDrawSliderOnLeftArrow(t,r,s,i),this.drawKnotButton(e,t,this.config,!0),this.drawKnotButton(e,r,this.config,!1),e.fillStyle=this.config.colors.navigationMap.sliderColor,e.fillRect(i.x,i.y,i.width,i.height)}drawLeftArrowButton(e,t,r){e.fillStyle=r.colors.navigationMap.buttonColor,e.fillRect(t.x,t.y,t.width,t.height),e.beginPath();const s=Math.round(t.x+t.width/2-nt/2),i=Math.round(t.y+t.height/2);e.moveTo(s,i),e.lineTo(s+nt,i+nt),e.lineTo(s+nt,i-nt),e.fillStyle=r.colors.navigationMap.buttonArrowColor,e.fill()}drawRightArrowButton(e,t,r){e.fillStyle=r.colors.navigationMap.buttonColor,e.fillRect(t.x,t.y,t.width,t.height),e.beginPath();const s=Math.round(t.x+t.width/2-nt/2),i=Math.round(t.y+t.height/2);e.moveTo(s,i-nt),e.lineTo(s,i+nt),e.lineTo(s+nt,i),e.fillStyle=r.colors.navigationMap.buttonArrowColor,e.fill()}drawKnotButton(e,t,r,s){const i=r.components.navigationMap.knots.border;e.fillStyle=r.colors.navigationMap.knotColor;const a=s?t.x-i:t.x+i;e.fillRect(a,t.y,t.width,t.height),e.lineWidth=r.components.navigationMap.knots.lineWidth,i>0&&(e.beginPath(),e.moveTo(a,t.y),e.lineTo(a,t.y+t.height),e.lineTo(a+t.width,t.y+t.height),e.lineTo(a+t.width,t.y),e.lineTo(a,t.y),e.lineWidth=i,e.strokeStyle=r.colors.navigationMap.knotBorderColor,e.stroke()),e.beginPath(),e.moveTo(a+t.width/2,t.y+t.height/4),e.lineTo(a+t.width/2,t.y+3*t.height/4),e.strokeStyle=r.colors.navigationMap.knotLineColor,e.stroke()}drawTimeLabels(e){const t=Ie(this.chartModel.mainCandleSeries.getSeriesInViewport()),r=this.config.components.navigationMap.timeLabels,s=r.visible;if(t.length&&s){const i=t[0].candle.timestamp,a=t[t.length-1].candle.timestamp,o=this.canvasBoundsContainer.getBounds(Y.N_MAP_LABEL_L),l=this.canvasBoundsContainer.getBounds(Y.N_MAP_LABEL_R),h={textFill:this.config.colors.navigationMap.timeLabelsTextColor,textFontFamily:r.fontFamily,textSize:`${r.fontSize}px`},v={dateFormat:r.dateFormat,padding:r.padding,textProperties:Ni(Hi({},h),{textAlign:"left"})},p={dateFormat:r.dateFormat,padding:r.padding,textProperties:Ni(Hi({},h),{textAlign:"right"})};this.drawTimeLabel(e,o,i,v),this.drawTimeLabel(e,l,a,p)}}drawTimeLabel(e,t,r,s){const i=s.padding,a=es(r,s.dateFormat,this.formatterFactory);qr(e,s.textProperties);const o=Nn(e),l=Qr(a);Io(e,l,t.x+i.x,t.y+o+i.y,s.textProperties)}getCanvasIds(){return[this.canvasModel.canvasId]}}class Gt extends vi{constructor(e,t,r,s,i=fi){super(e,t,r,s,i)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeXDragStart(this.hitTest).subscribe(this.onDragStart)),this.addRxSubscription(this.canvasInputListener.observeXDrag().subscribe(this.onDragTick)),this.addRxSubscription(this.canvasInputListener.observeXDragEnd().subscribe(this.onDragEnd))}doDeactivate(){super.doDeactivate()}}const ki=4;class ud extends te{constructor(e,t,r,s,i,a){super(),this.bus=e,this.chartModel=t,this.scaleModel=r,this.canvasInputListeners=s,this.canvasBoundsContainer=i,this.chartPanComponent=a,this.leftKnotDragStartXRelative=0,this.rightKnotDragStartXRelative=0,this.lastMousePosition=0,this.leftKnotDragStart=y=>{const E=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART);this.leftKnotDragStartXRelative=y.x-E.x-ki},this.leftKnotDragTick=y=>{const{delta:E}=y,N=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART).width,k=(this.leftKnotDragStartXRelative+E)/N;this.canvasBoundsContainer.leftRatio=k,this.scaleModel.setXScale(Math.round(this.chartModel.mainCandleSeries.dataPoints.length*this.canvasBoundsContainer.leftRatio),this.scaleModel.xEnd)},this.rightKnotDragStart=y=>{const E=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART);this.rightKnotDragStartXRelative=y.x-E.x+ki},this.rightKnotDragTick=y=>{const{delta:E}=y,N=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART).width,k=(this.rightKnotDragStartXRelative+E)/N;this.canvasBoundsContainer.rightRatio=k,this.scaleModel.setXScale(this.scaleModel.xStart,Math.round(this.chartModel.mainCandleSeries.dataPoints.length*this.canvasBoundsContainer.rightRatio))},this.sliderDragStart=()=>{this.lastMousePosition=0},this.sliderDragTick=y=>{const{delta:E}=y,R=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART),N=this.chartModel.mainCandleSeries.meanCandleWidth/(R.width/this.chartModel.mainCandleSeries.dataPoints.length),k=(this.lastMousePosition-E)*N;this.scaleModel.moveXStart(this.scaleModel.xStart-k),this.lastMousePosition=E};const o=this.canvasBoundsContainer.getBoundsHitTest(Y.N_MAP_KNOT_L),l=this.canvasBoundsContainer.getBoundsHitTest(Y.N_MAP_KNOT_R),c=new Gt(o,{onDragStart:this.leftKnotDragStart,onDragTick:this.leftKnotDragTick},this.canvasInputListeners,this.chartPanComponent),h=new Gt(l,{onDragStart:this.rightKnotDragStart,onDragTick:this.rightKnotDragTick},this.canvasInputListeners,this.chartPanComponent);this.addChildEntity(c),this.addChildEntity(h);const v=this.canvasBoundsContainer.getBoundsHitTest(Y.N_MAP_SLIDER_WINDOW),p=new Gt(v,{onDragStart:this.sliderDragStart,onDragTick:this.sliderDragTick},this.canvasInputListeners,this.chartPanComponent);this.addChildEntity(p)}doActivate(){super.doActivate();const e=this.canvasBoundsContainer.getBoundsHitTest(Y.N_MAP_BTN_L);this.addRxSubscription(this.canvasInputListeners.observeClick(e).subscribe(()=>{this.scaleModel.moveXStart(this.scaleModel.xStart-1)})),this.addRxSubscription(this.canvasInputListeners.observeTouchStart(e).subscribe(()=>{this.scaleModel.moveXStart(this.scaleModel.xStart-1)}));const t=this.canvasBoundsContainer.getBoundsHitTest(Y.N_MAP_BTN_R);this.addRxSubscription(this.canvasInputListeners.observeClick(t).subscribe(()=>{this.scaleModel.moveXStart(this.scaleModel.xStart+1)})),this.addRxSubscription(this.canvasInputListeners.observeTouchStart(t).subscribe(()=>{this.scaleModel.moveXStart(this.scaleModel.xStart+1)})),this.addRxSubscription(this.scaleModel.xChanged.subscribe(()=>{const r=this.chartModel.mainCandleSeries;this.canvasBoundsContainer.leftRatio=r.dataIdxStart/(r.dataPoints.length-1),this.canvasBoundsContainer.rightRatio=r.dataIdxEnd/(r.dataPoints.length-1),this.canvasBoundsContainer.recalculateNavigationMapElementBounds(),this.bus.fireDraw()}))}}class fd extends te{constructor(e,t,r,s,i,a,o,l,c,h){super(),this.eventBus=e,this.chartModel=t,this.canvasModel=r,this.config=s,this.canvasInputListeners=i,this.canvasBoundsContainer=a,this.chartPanComponent=c,this.visualCandles=[];const v=new dd(s,t,r,a,l,()=>this.visualCandles);o.addDrawer(v,Y.N_MAP_CHART),this.navigationMapMoveHandler=new ud(this.eventBus,this.chartModel,this.chartModel.scaleModel,this.canvasInputListeners,this.canvasBoundsContainer,this.chartPanComponent),h.setCursorForCanvasEl(Y.N_MAP_CHART,s.components.navigationMap.cursors.chart),h.setCursorForCanvasEl(Y.N_MAP_BTN_L,s.components.navigationMap.cursors.buttonLeft),h.setCursorForCanvasEl(Y.N_MAP_BTN_R,s.components.navigationMap.cursors.buttonRight),h.setCursorForCanvasEl(Y.N_MAP_KNOT_L,s.components.navigationMap.cursors.leftResizer),h.setCursorForCanvasEl(Y.N_MAP_KNOT_R,s.components.navigationMap.cursors.rightResizer),h.setCursorForCanvasEl(Y.N_MAP_SLIDER_WINDOW,s.components.navigationMap.cursors.slider)}doActivate(){super.doActivate(),this.addRxSubscription(Me(this.chartModel.observeCandlesChanged(),this.canvasBoundsContainer.observeBoundsChanged(Y.N_MAP),this.chartModel.scaleModel.xChanged.pipe(id(),he(([e,t])=>{const s=e.start<0||e.end>0,i=t.start<0||t.end>0;return s&&!i||i}))).subscribe(()=>{this.config.components.navigationMap.visible&&(this.visualCandles=this.makeVisualCandles(),this.canvasModel.fireDraw())}))}makeVisualCandles(){var e;const t=this.chartModel.getCandles();if(!t.length)return[];const r=this.chartModel.mainCandleSeries.dataIdxStart,s=this.chartModel.mainCandleSeries.dataIdxEnd,i=Math.round(Math.max(-r,0)),a=Math.max(this.chartModel.getCandlesCountWithRightOffset(),s)+i;let o=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY;const c=this.canvasBoundsContainer.getBounds(Y.N_MAP_CHART),h=c.width,v=[];let p=0,y,E;for(y=0;y<h;y++)E=ve(y*a/h)-i,E in t?(v[y]=t[E].close,p=(e=v[y])!=null?e:0,o=Math.max(o,p),l=Math.min(l,p)):v[y]=0;return o-=l,v.map((R,N)=>[N+c.x,(o+l-R)*c.height/o+c.y])}setVisible(e=!0){var t;(t=this.config.components)!=null&&t.navigationMap&&(this.config.components.navigationMap.visible=e,this.eventBus.fire(Qn),this.canvasModel.fireDraw())}}class vd extends te{constructor(e,t,r){super(),this.scaleModel=e,this.canvasInputListeners=t,this.mainCanvasParent=r,this.touchedCandleIndexes=[0,0]}doActivate(){this.addRxSubscription(this.canvasInputListeners.observeTouchStart().subscribe(e=>this.handleTouchStartEvent(e))),this.addRxSubscription(this.canvasInputListeners.observeTouchMove().subscribe(e=>this.handleTouchMoveEvent(e)))}handleTouchStartEvent(e){e.touches.length===2&&(this.touchedCandleIndexes=this.getXPositions(e).map(t=>this.scaleModel.fromX(t)))}handleTouchMoveEvent(e){e.touches.length===2&&this.pinchHandler(this.touchedCandleIndexes,this.getXPositions(e))}getXPositions(e){const t=this.mainCanvasParent.getBoundingClientRect(),r=[0,0],s=document.body.scrollLeft||document.documentElement.scrollLeft;for(let i=0,a=e.touches.length;i<a;i++){const o=e.touches[i];r[i]=o.pageX-t.left-s}return r}pinchHandler(e,t){const r=(t[0]*e[1]-t[1]*e[0])/(t[0]-t[1]),s=r+(e[0]-e[1])/(t[0]-t[1])*this.scaleModel.getBounds().width;this.scaleModel.setXScale(r,s)}}const Wi=()=>{const n=/Mac|iPod|iPhone|iPad/i.test(navigator.userAgent),t=[/Android/i,/webOS/i,/BlackBerry/i,/Windows Phone/i].some(r=>navigator.userAgent.match(r));return n?"apple":t?"mobile":"other"},Ev=(n,e)=>n==="apple"||n==="mobile"?3:e,gd=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),pd=!!window.chrome,Ui=typeof InstallTrigger!="undefined",md=navigator.platform.indexOf("Win")>-1,zi=n=>{let e=!1;const{wheelDeltaY:t,wheelDeltaX:r}=n;if(t||r){let s;if(gd)s=t===n.deltaY*-3||Math.abs(t+Math.sign(t))===Math.abs(Math.round(n.deltaY)*3)||Math.abs(t-Math.sign(t))===Math.abs(Math.round(n.deltaY)*3);else if(pd){if(s=t+Math.sign(t)===n.deltaY*-3?t+Math.sign(t)===n.deltaY*-3:t===n.deltaY*-3,md){const i=Math.round(n.deltaY)===t||Math.abs(Math.round(n.deltaY)+Math.sign(n.deltaY))===Math.abs(t)||Math.abs(Math.round(n.deltaY)-Math.sign(n.deltaY))===Math.abs(t);s=Math.abs(t)===Math.abs(n.deltaY)||i}}else Ui?Math.abs(n.deltaY)>Math.abs(n.deltaX)?s=!1:s=r===n.deltaX*-3:s=t===n.deltaY*-3;s&&(e=!0)}else n.deltaMode===0&&(e=!0);return Ui&&n.deltaY>=16&&Math.abs(n.deltaY)%16===0&&(e=!1),n.ctrlKey&&(e=!0),e},bd=n=>n.components.yAxis.type==="percent"?n.scale.zoomSensitivity/4:n.scale.zoomSensitivity;var hr=Math.pow;class Cd extends te{constructor(e,t,r,s,i,a,o,l){super(),this.bus=e,this.config=t,this.scaleModel=r,this.mainCanvasParent=s,this.canvasInputListener=i,this.canvasBoundsContainer=a,this.canvasAnimation=o,this.chartPanComponent=l,this.currentPoint={x:0,y:0},this.xDraggedCandlesDelta=0,this.lastXStart=0,this.wheelTrottleTime=15,this.zoomXHandler=v=>{const p=zi(v),y=v.deltaY<0,E=p?bd(this.config):this.config.scale.zoomSensitivity;if(this.config.scale.zoomToCursor){const N=this.canvasBoundsContainer.getBounds(Y.CANVAS).width,U=v.offsetX/N;this.scaleModel.zoomXToPercent(U,y,!1,E)}else this.scaleModel.zoomXToEnd(y,E);this.bus.fireDraw()},this.onXDragStart=()=>{this.canvasAnimation.forceStopAnimation(On),this.xDraggedCandlesDelta=0,this.lastXStart=this.scaleModel.xStart},this.onXDragTick=v=>{const{delta:p}=v;this.currentPoint.x=p;const y=tt(p,this.scaleModel.zoomX);this.scaleModel.moveXStart(this.lastXStart-y),this.bus.fireDraw()},this.touchHandler=new vd(this.scaleModel,this.canvasInputListener,this.mainCanvasParent);const c=this.canvasBoundsContainer.getBoundsHitTest(Y.ALL_PANES),h=new Gt(c,{onDragStart:this.onXDragStart,onDragTick:this.onXDragTick},this.canvasInputListener,this.chartPanComponent,{disableChartPanning:!1});this.addChildEntity(h)}doActivate(){super.doActivate();const e=this.canvasBoundsContainer.getBoundsHitTest(Y.ALL_PANES);this.addRxSubscription(Me(this.canvasInputListener.observeWheel(e),this.canvasInputListener.observePinch(e)).pipe(Nt(this.wheelTrottleTime,void 0,{trailing:!0,leading:!0})).subscribe(this.zoomXHandler)),this.addRxSubscription(this.canvasInputListener.observeScrollGesture().pipe(Nt(this.wheelTrottleTime,void 0,{trailing:!0,leading:!0})).subscribe(t=>{let r=-1;const s=Wi();(s==="apple"||s==="mobile")&&(r=1);let i=0,a=0;if(i+=t.deltaX*r,a+=t.deltaY*-r,i!==0&&Math.abs(i)>Math.abs(a)){const o=tt(i,this.scaleModel.zoomX);this.scaleModel.moveXStart(this.scaleModel.xStart-o)}else a!==0&&Math.abs(a)>Math.abs(i)&&this.zoomXHandler(t);this.bus.fireDraw()})),this.addRxSubscription(this.chartPanComponent.chartBaseModel.dataPrependSubject.asObservable().subscribe(({prependedCandlesWidth:t})=>{this.lastXStart+=t})),this.touchHandler.activate(),this.addSubscription(this.touchHandler.deactivate.bind(this.touchHandler))}registerChartYPanHandler(e,t){let r=e.yStart;const s=()=>{this.canvasAnimation.forceStopAnimation(On),this.currentPoint={x:0,y:0},r=e.yStart},i=o=>{const{delta:l}=o;if(this.currentPoint.y=l,e.state.auto)yd(this.currentPoint,e.state.autoScaleDisableOnDrag)&&e.autoScale(!1);else{const c=tt(e.state.inverse?-l:l,e.zoomY);e.moveYStart(r+c)}},a=new fn(t,{onDragTick:i,onDragStart:s},this.canvasInputListener,this.chartPanComponent,{disableChartPanning:!1});return this.addChildEntity(a),a}}const yd=(n,e)=>{if(!e.enabled)return!1;const t=Math.abs(n.y),r=hr(hr(Math.abs(n.x),2)+hr(t,2),.5),s=Math.abs(Math.acos(t/r));return t>e.yDiff&&s<e.edgeAngle};class wd extends te{constructor(e,t,r,s,i,a,o,l){super(),this.eventBus=e,this.mainScaleModel=t,this.canvasBoundsContainer=r,this.config=s,this.canvasAnimation=i,this.canvasInputListener=a,this.mainCanvasParent=o,this.chartBaseModel=l,this.chartPanComponents=[],this.chartAreaPanHandler=new Cd(this.eventBus,this.config,this.mainScaleModel,this.mainCanvasParent,this.canvasInputListener,this.canvasBoundsContainer,this.canvasAnimation,this),this.chartPanComponents.push(this.chartAreaPanHandler)}doActivate(){this.activateChartPanHandlers()}doDeactivate(){this.deactivatePanHandlers()}activateChartPanHandlers(){this.chartPanComponents.forEach(e=>e.activate())}deactivatePanHandlers(){this.chartPanComponents.forEach(e=>e.deactivate())}}const Xi=n=>e=>{const{top:t,bottom:r}=n(),s=e.high-e.low,i=s===0?1:s,a=i*t/100,o=i*r/100,l=e.low-o,c=e.high+a;return{low:l,high:c}},ji=(n,e)=>{const t=Xi(n);return{isHighLowActive:()=>!0,calculateHighLow:r=>{const s=e.calculateHighLow(r);return t(s)}}};function Sd(){return Fr(1)}function Vi(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return Sd()(qt(n,Kt(n)))}function xd(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var t=Kt(n);return w(function(r,s){(t?Vi(n,r,t):Vi(n,r)).subscribe(s)})}function Md(n){return he(function(e,t){return n<=t})}class Pd{constructor(e,t,r,s,i){this.config=e,this.boundsProvider=t,this.canvasModel=r,this.canvasAnimation=s,this.animationId=i}draw(){if(this.config.components.paneResizer.visible){const e=this.config.components.paneResizer.fixedMode,t=this.boundsProvider(),r=this.canvasModel.ctx,s=this.canvasAnimation.getColorAlphaAnimation(this.animationId),i=this.config.components.paneResizer.dragZone;!e&&s&&(r.fillStyle=s.getColor(0),r.fillRect(t.x,t.y-i,t.width,t.height+2*i)),r.fillStyle=this.config.colors.paneResizer.lineColor,this.config.animation.paneResizer.bgMode?r.fillRect(t.x,t.y,t.width,t.height):r.fillRect(t.x,t.y-i,t.width,t.height+2*i)}}getCanvasIds(){return[this.canvasModel.canvasId]}}class Td extends te{constructor(e,t,r,s,i,a,o,l,c,h,v){super(),this.id=e,this.boundsProvider=t,this.hitTest=r,this.dragTickCb=s,this.chartPanComponent=i,this.canvasModel=a,this.drawingManager=o,this.canvasInputListener=l,this.canvasAnimation=c,this.config=h,this.canvasBoundsContainer=v,this.initialY=0,this.resizeEvent$=new G,this.onYDragStart=()=>{this.config.components.crossTool.type="none",this.initialY=this.boundsProvider().y},this.onYDragEnd=()=>{this.config.components.crossTool.type="cross-and-labels",this.initialY=this.boundsProvider().y,this.canvasBoundsContainer.graphsHeightRatioChangedSubject.next(this.canvasBoundsContainer.graphsHeightRatio)},this.onYDragTick=p=>{const{delta:y,draggedPixels:E}=p;Math.abs(this.initialY-this.boundsProvider().y+E)>=0&&(this.dragTickCb(y),this.resizeEvent$.next())},this.animationId=`${this.id}_RESIZER`}doActivate(){if(super.doActivate(),!this.config.components.paneResizer.fixedMode){const r=new fn(this.hitTest,{onDragTick:this.onYDragTick,onDragStart:this.onYDragStart,onDragEnd:this.onYDragEnd},this.canvasInputListener,this.chartPanComponent);this.addChildEntity(r),this.config.animation.paneResizer.enabled&&this.addRxSubscription(this.canvasInputListener.observeMouseEnter(this.hitTest,!0).pipe(xd(!1),Ve(),Md(1)).subscribe(s=>{s?this.handleHoverAnimation("appearing"):this.handleHoverAnimation("fading")}))}const t=new Pd(this.config,this.boundsProvider,this.canvasModel,this.canvasAnimation,this.animationId);this.drawingManager.addDrawer(t,ui.paneResizer(this.id)),this.addSubscription(()=>this.drawingManager.removeDrawerByName(ui.paneResizer(this.id)))}doDeactivate(){super.doDeactivate(),this.resizeEvent$.complete()}handleHoverAnimation(e){let t;this.config.animation.paneResizer.bgMode?(t=this.canvasAnimation.getColorAlphaAnimation(this.animationId),(!t||!t.animationInProgress)&&this.canvasAnimation.startColorAlphaAnimation(this.animationId,[{color:this.config.colors.paneResizer.bgHoverColor,type:e}])):(t=this.canvasAnimation.getColorTransitionAnimation(this.animationId),(!t||!t.animationInProgress)&&this.canvasAnimation.startColorTransitionAnimation(this.animationId,[{startColor:this.config.colors.paneResizer.bgColor,endColor:this.config.colors.paneResizer.bgHoverColor,type:e}],this.config.animation.paneResizer.duration)),t&&t.animationInProgress&&t.revert()}}const _d=n=>e=>{let t;if(typeof e=="number")t=e;else if(typeof e=="string")t=Number(e);else return"\u2014";const[r]=n.dataSeries;if(r!==void 0){const s=ze.getPricePrecision(t,r.pricePrecisions);return t.toFixed(s)}return`${t}`},Ad=n=>(e,t)=>{const[r]=n.dataSeries;let s=e;const i=t!=null?t:r;i!==void 0&&(s=Ds(e,i.getBaseLine()));const a=s.toFixed(ze.DEFAULT_PRECISION).replace("-","\u2212")+" %";return a==="\u22120.00 %"?"0.00 %":a},Dd=n=>({percent:Ad(n),regular:_d(n)});class Ed extends te{constructor(e,t,r,s,i,a,o,l,c,h,v=new Set,p={regular:qn}){if(super(),this.paneUuid=e,this.idx=t,this.paneComponent=r,this.chartBaseModel=s,this.canvasBoundsContainer=i,this.hitTestController=a,this.dataSeriesCanvasModel=o,this.scaleModel=l,this.yAxisComponent=c,this.dragNDrop=h,this.dataSeries=v,this.formatters=p,this.getYAxisBounds=()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID_Y_AXIS(this.paneUuid,this.idx)),this.yAxisHT=this.canvasBoundsContainer.getBoundsHitTest(Y.PANE_UUID_Y_AXIS(this.paneUuid,this.idx)),this.toVisualPoints=y=>y.map(E=>new Ut(this.chartBaseModel.dataFromTimestamp(E.timestamp).centerUnit,E.close)),this.valueFormatter=(y,E)=>{var R;return((R=this.formatters[this.getAxisType()])!=null?R:this.formatters.regular)(y,E)},this.addChildEntity(l),c!==void 0){this.addChildEntity(c.yAxisScaleHandler),this.addSubscription(c.unsub);const y={getLargestLabel:()=>{var E;return(E=c.labelsGenerator.getLargestLabel())!=null?E:""},getYAxisIndex:()=>t,getYAxisAlign:()=>c.state.align,getPaneUUID:()=>r.uuid};this.canvasBoundsContainer.yAxisBoundsContainer.registerYAxisWidthContributor(y),this.addSubscription(()=>this.canvasBoundsContainer.yAxisBoundsContainer.removeYAxisWidthContributor(y))}this.setValueFormatters(Dd(this))}doDeactivate(){super.doDeactivate(),this.dataSeries.forEach(e=>e.deactivate())}getBounds(){return this.scaleModel.getBounds()}createDataSeries(){const e=new Rs(this,this.hitTestController.getNewDataSeriesHitTestId());return e.toVisualPoints=this.toVisualPoints,e}addDataSeries(e){this.dataSeries.add(e),this.dataSeries.size===1&&(this.mainDataSeries=e),this.paneComponent.updateView()}removeDataSeries(e){this.dataSeries.delete(e),this.paneComponent.updateView()}getAxisType(){return"regular"}get regularFormatter(){return this.formatters.regular}setValueFormatters(e){this.formatters=e}regularValueFromY(e){var t,r;return(r=(t=this.mainDataSeries)==null?void 0:t.view.priceFromY(e))!=null?r:this.scaleModel.fromY(e)}}const Gi=n=>({isHighLowActive:()=>!0,calculateHighLow:e=>{const t=Array.from(n.dataSeries).filter(r=>r.highLowProvider.isHighLowActive()).map(r=>r.highLowProvider.calculateHighLow(e));return Vs(t)}});class Ld{constructor(e,t){this.paneComponents=e,this.canvasModel=t,this.dataSeriesIdCounter=lr.DATA_SERIES[0],this.getNewDataSeriesHitTestId=()=>this.dataSeriesIdCounter++}getIdRange(){return lr.DATA_SERIES}get allDataSeries(){return Tt(Tt(Object.values(this.paneComponents),e=>e.yExtentComponents),e=>Array.from(e.dataSeries))}lookup(e){return this.allDataSeries.find(r=>r.id===e)}onHover(e){this.allDataSeries.forEach(t=>t.hovered=t.id===(e==null?void 0:e.id)),this.canvasModel.fireDraw()}onMouseDown(e){e&&this.handleYExtentDragStart(e)}onMouseUp(){this.handleYExtentDragEnd()}handleYExtentDragStart(e){Object.values(this.paneComponents).forEach(t=>t.yExtentComponents.forEach(r=>r.dragNDrop.deactivate())),e.extentComponent.dragNDrop.activate()}handleYExtentDragEnd(){Object.values(this.paneComponents).forEach(e=>e.yExtentComponents.forEach(t=>t.dragNDrop.activate()))}}class Id{constructor(e,t=()=>!0){this.dataProvider=e,this.dataUpdatedPredicate=t,this.calculatedInThisFrame=!1,this.animFrameId=`anim_cache_${Je()}`}calculateOrGet(){var e;return this.calculatedInThisFrame||(this.cache=this.dataProvider(),this.dataUpdatedPredicate()&&(this.calculatedInThisFrame=!0),di(this.animFrameId,()=>{this.calculatedInThisFrame=!1})),(e=this.cache)!=null?e:this.dataProvider()}forceCalculateOrGet(){return this.invalidate(),this.calculateOrGet()}getLastCachedValue(){return this.cache}updateCacheValue(e){this.cache=e}invalidate(){this.cache=void 0,this.calculatedInThisFrame=!1}}const Od=0,Bd=.01;class dr{constructor(e,t,r,s,i=!1,a,o,l=Bn,c=23){this.increment=e,this.startEndProvider=t,this.lengthProvider=r,this.valueFormatter=s,this.withZero=i,this.axisTypeProvider=a,this.baseLineProvider=o,this.labelFilter=l,this.singleLabelHeightPixels=c,this.gridDistanceMultipliers=[2,4,5,10],this.lastSingleLabelHeightValue=0,this.distanceBetweenLabelsChangeSubject=new G,this.newGeneratedLabelsSubject=new G,this.lastStart=0,this.lastEnd=0,this.labelsCache=new Id(()=>this.labelFilter(this.doGenerateLabels()))}generateRegularLabels(e,t,r){const s=[];this.withZero&&s.push({value:0,text:"0"});let i=we.roundToNearest(e,r);for(;i<t;){const a=we.roundToNearest(i,r),o=this.valueFormatter(a);s.push({value:a,text:o}),i=we.roundDecimal(i+r)}return s}generatePercentLabels(e,t,r){const s=[],i=this.baseLineProvider();let a=we.roundToNearest(e,r);for(;a<t;){const o=we.roundToNearest(a,r),l=Es(o,i),c=this.valueFormatter(l);s.push({value:o,text:c}),a=we.roundDecimal(a+r)}return s}generateLogarithmLabels(e,t,r){const s=[];let i=we.roundToNearest(e,r);for(;i<t;){const a=Kn(i),o=this.valueFormatter(a);s.push({value:i,text:o}),i=we.roundDecimal(i+r)}return s}doGenerateLabels(){var e;const t=this.lengthProvider();if(t<=0)return[];const[r,s]=this.calculateMinMax(),i=this.getAxisStep(r,s,t);this.lastSingleLabelHeightValue||(this.lastSingleLabelHeightValue=i);let a;const o=this.axisTypeProvider();if(o==="logarithmic"?a=this.generateLogarithmLabels(r,s,i):o==="percent"?a=this.generatePercentLabels(r,s,i):a=this.generateRegularLabels(r,s,i),this.lastSingleLabelHeightValue!==i&&this.labelsCache.cache){const l=(e=this.labelsCache.getLastCachedValue())!=null?e:[];this.distanceBetweenLabelsChangeSubject.next([l,a]),this.lastSingleLabelHeightValue=i}return this.newGeneratedLabelsSubject.next(a),a}calculateMinMax(){const[e,t]=this.startEndProvider(),r=this.lengthProvider(),s=dr.getLabelBounds(e,t,r);return[s[0],s[1]]}getAxisStep(e,t,r){const s=t-e,i=r/this.singleLabelHeightPixels,a=this.calculateIncrement(s),o=s/i;return this.calculateAxisStep(o,a)}observeDistanceBetweenLabelsChanged(){return this.distanceBetweenLabelsChangeSubject.asObservable()}observeLabelsChanged(){return this.newGeneratedLabelsSubject.asObservable()}calculateIncrement(e){if(this.increment)return this.increment;if(!isNaN(e)){const t=ze.autoDetectIncrementOfValueRange(e);return this.adjustIncrementOnAxisType(t)}return this.adjustIncrementOnAxisType(Bd)}adjustIncrementOnAxisType(e){switch(this.axisTypeProvider()){case"percent":return e;case"logarithmic":const[t]=this.calculateMinMax(),s=Kn(t)+e;return Ls(s)-t;case"regular":return e}}generateNumericLabels(){const[e,t]=this.startEndProvider();return(e!==this.lastStart||t!==this.lastEnd)&&this.labelsCache.invalidate(),this.lastStart=e,this.lastEnd=t,this.labelsCache.calculateOrGet()}static getLabelBounds(e,t,r){const s=Math.abs((t-e)*(Od/r));return[e-s,t+s]}calculateAxisStep(e,t){if(t===0)return console.error("NumericAxisLabelsGenerator failed at calculateAxisStep: increment = 0"),0;let r=t,s=t,i=0;for(;r<e&&r>0;)i>=this.gridDistanceMultipliers.length&&(i=0,s*=10),r=s*this.gridDistanceMultipliers[i++];return r}}class $i extends dr{constructor(e,t,r,s,i=()=>"regular",a=()=>1,o=23){super(e,()=>[r.yStart,r.yEnd],()=>r.getBounds().height,s,!1,i,a,void 0,o),this.chartModel=t}getLargestLabel(){var e;return((e=this.labelsCache.getLastCachedValue())!=null?e:[]).reduce((t,r)=>r.text.length>t.length?r.text:t,"")}calculateIncrement(e){var t;const r=(t=this.chartModel)==null?void 0:t.mainCandleSeries.instrument;if(this.chartModel&&r&&Array.isArray(r.priceIncrements)){const s=Ue(this.chartModel.getCandles()),i=s&&s.close?s.close:0,a=ze.getPriceIncrement(i,r.priceIncrements);return this.adjustIncrementOnAxisType(a)}return super.calculateIncrement(e)}}const Zi=10;class Ki extends te{constructor(e,t,r,s,i,a,o,l){if(super(),this.bus=e,this.viewportModel=s,this.canvasBoundsContainer=a,this.autoScaleCallback=l,this.yAxisDragEndSubject=new G,this.lastYStart=0,this.lastYEnd=0,this.lastYHeight=0,this.lastYPxHeight=0,this.onYDragStart=()=>{this.lastYStart=this.viewportModel.yStart,this.lastYEnd=this.viewportModel.yEnd,this.lastYHeight=this.viewportModel.yEnd-this.viewportModel.yStart,this.lastYPxHeight=this.canvasBoundsContainer.getBounds(Y.Y_AXIS).height},this.onYDragTick=c=>{const{delta:h}=c;let v;h<0?v=1/(1+-h/this.lastYPxHeight*(Zi-1)):v=1+h/this.lastYPxHeight*(Zi-1);const y=(this.lastYHeight*v-this.lastYHeight)/2,E=this.lastYStart-y,R=this.lastYEnd+y;this.autoScaleCallback(!1),this.viewportModel.setYScale(E,R),this.bus.fireDraw()},this.onYDragEnd=()=>{this.yAxisDragEndSubject.next()},t.customScale){const c=()=>t.type!=="percent",h=new fn(o,{onDragTick:ur(this.onYDragTick,c),onDragStart:ur(this.onYDragStart,c),onDragEnd:ur(this.onYDragEnd,c)},i,r,{disableChartPanning:!1});this.addChildEntity(h),t.customScaleDblClick&&i.observeDbClick(o).subscribe(()=>{l(!0),this.bus.fireDraw()})}}}const ur=(n,e)=>(...t)=>e()&&n(...t);class qi{constructor(e,t,r,s,i,a=()=>!0,o){this.fullConfig=e,this.yAxisState=t,this.canvasModel=r,this.labelsProvider=s,this.axisBounds=i,this.drawPredicate=a,this.toY=o}draw(){if(this.drawPredicate()){const e=this.labelsProvider(),t=this.axisBounds(),r=this.canvasModel.ctx;r.fillStyle=this.getBackgroundColor(),r.fillRect(t.x,t.y,t.width,t.height);const s=mt(this.yAxisState),i=Qe(s,r),a=this.getLabelTextColor();r.save(),yt(r,t),this.drawLabels(r,e,t,i,s,a),r.restore()}}drawLabels(e,t,r,s,i,a){e.fillStyle=a,e.font=i;const o=e.measureText("00.0"),l=o.actualBoundingBoxAscent+o.actualBoundingBoxDescent,c=r.y+l,h=r.y+r.height-l;t.forEach(v=>{const p=this.toY(v.value);p>c&&p<h&&Rd(e,r,v.text,p,s,i,this.yAxisState.labelBoxMargin.end,this.yAxisState.align)})}getCanvasIds(){return[this.canvasModel.canvasId]}getBackgroundColor(){return this.fullConfig.colors.yAxis.backgroundColor}getLabelTextColor(){return this.fullConfig.colors.yAxis.labelTextColor}}const Rd=(n,e,t,r,s,i,a,o)=>{const l=o==="right"?e.x+e.width-Re(t,n,i)-a:e.x+a;n.fillText(t,l,r+s/2-1)};function fr(n,e,t){var r=L(n)||e||t?{next:n,error:e,complete:t}:n;return r?w(function(s,i){var a;(a=r.subscribe)===null||a===void 0||a.call(r);var o=!0;s.subscribe(We(i,function(l){var c;(c=r.next)===null||c===void 0||c.call(r,l),i.next(l)},function(){var l;o=!1,(l=r.complete)===null||l===void 0||l.call(r),i.complete()},function(l){var c;o=!1,(c=r.error)===null||c===void 0||c.call(r,l),i.error(l)},function(){var l,c;o&&((l=r.unsubscribe)===null||l===void 0||l.call(r)),(c=r.finalize)===null||c===void 0||c.call(r)}))}):Pt}class Ji extends te{constructor(e,t,r){super(),this.scaleModel=e,this.yAxisLabelsGenerator=t,this.canvasBoundsContainer=r,this.labels=[],this.prevYAxisHeight=0,this.animFrameId=`anim_cache_${Je()}`}doActivate(){super.doActivate(),this.addRxSubscription(Me(this.scaleModel.yChanged,this.canvasBoundsContainer.observeBoundsChanged(Y.Y_AXIS).pipe(ye(e=>e.height),he(e=>ao(e,this.prevYAxisHeight,1.5)),fr(e=>{this.yAxisLabelsGenerator.labelsCache.invalidate(),this.prevYAxisHeight=e}))).subscribe(()=>this.updateLabels()))}updateLabels(){this.labels=this.yAxisLabelsGenerator.generateNumericLabels(),sr(this.animFrameId,()=>this.canvasBoundsContainer.updateYAxisWidths())}}class Fd extends te{constructor(e,t,r,s,i,a,o,l,c,h,v,p,y,E,R,N){super(),this.chartBaseModel=e,this.hitTestController=t,this.config=r,this.mainScaleModel=s,this.drawingManager=i,this.chartPanComponent=a,this.mainCanvasModel=o,this.canvasInputListener=l,this.userInputListenerComponents=c,this.canvasAnimation=h,this.cursorHandler=v,this.eventBus=p,this.canvasBoundsContainer=y,this.uuid=E,this.dataSeriesCanvasModel=R,this._paneOrder=0,this.yExtentComponents=[],this.getYAxisBounds=()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID_Y_AXIS(this.uuid)),this.valueFormatter=(U,Z)=>this.mainYExtentComponent.valueFormatter(U,Z);const k=this.createExtentComponent(N);this.mainYExtentComponent=k,this.ht=this.canvasBoundsContainer.getBoundsHitTest(Y.PANE_UUID(E),{extensionY:-this.config.components.paneResizer.dragZone})}get scaleModel(){return this.mainYExtentComponent.scaleModel}get dataSeries(){return Tt(this.yExtentComponents,e=>Array.from(e.dataSeries))}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasBoundsContainer.observeBoundsChanged(Y.PANE_UUID(this.uuid)).pipe(Ve(ms)).subscribe(()=>{this.yExtentComponents.forEach(e=>e.scaleModel.recalculateZoomY()),this.dataSeriesCanvasModel.fireDraw()}))}createYAxisComponent(e,t,r,s,i){const a=Wt(this.config.components.yAxis),o=new $i(i,void 0,r,s,()=>"regular",()=>1,a.labelHeight),l=Y.PANE_UUID_Y_AXIS(e,t),c=new qi(this.config,a,this.mainCanvasModel,()=>o.generateNumericLabels(),()=>this.canvasBoundsContainer.getBounds(l),()=>this.config.components.yAxis.visible,r.toY.bind(r));this.drawingManager.addDrawerAfter(c,l,"Y_AXIS"),a.type="regular";const h=new Ki(this.eventBus,a,this.chartPanComponent,r,this.canvasInputListener,this.canvasBoundsContainer,this.canvasBoundsContainer.getBoundsHitTest(l),p=>r.autoScale(p)),v=new Ji(r,o,this.canvasBoundsContainer);return v.activate(),this.userInputListenerComponents.push(h),{labelsGenerator:o,drawer:c,yAxisScaleHandler:h,state:this.config.components.yAxis,unsub:()=>{this.drawingManager.removeDrawerByName(l),v.disable()}}}createGridComponent(e,t,r){return new Ri(this.mainCanvasModel,t,this.config,`PANE_${e}_grid_drawer`,this.drawingManager,()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID(e)),()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID(e)),()=>[],()=>r.generateNumericLabels())}createYPanHandler(e,t){const r=this.chartPanComponent.chartAreaPanHandler.registerChartYPanHandler(t,this.canvasBoundsContainer.getBoundsHitTest(Y.PANE_UUID(e)));return[()=>{this.chartPanComponent.chartAreaPanHandler.removeChildEntity(r),r.disable()},r]}addCursors(e){const t=Y.PANE_UUID_Y_AXIS(this.uuid,e);return this.cursorHandler.setCursorForCanvasEl(t,this.config.components.yAxis.cursor),()=>this.cursorHandler.removeCursorForCanvasEl(t)}createExtentComponent(e){var t,r,s,i,a,o;const l=this.yExtentComponents.length,c=()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID(this.uuid)),h=(t=e==null?void 0:e.scaleModel)!=null?t:new bc(this.mainScaleModel,this.config,c,this.canvasAnimation),v=(r=e==null?void 0:e.useDefaultYAxis)==null||r?this.createYAxisComponent(this.uuid,l,h,(i=(s=e==null?void 0:e.paneFormatters)==null?void 0:s.regular)!=null?i:qn,(a=e==null?void 0:e.increment)!=null?a:null):void 0,[p,y]=this.createYPanHandler(this.uuid,h),E=new Ed(this.uuid,l,this,this.chartBaseModel,this.canvasBoundsContainer,this.hitTestController,this.dataSeriesCanvasModel,h,v,y);if(E.addSubscription(p),E.addSubscription(this.addCursors(l)),e!=null&&e.paneFormatters&&E.setValueFormatters(e.paneFormatters),((o=e==null?void 0:e.useDefaultHighLow)!=null?o:!0)&&h.autoScaleModel.setHighLowProvider("default",ji(()=>({top:10,bottom:10,left:0,right:0,visible:!0}),Gi(E))),v){const N=this.createGridComponent(this.uuid,h,v.labelsGenerator);E.addChildEntity(N)}return E.activate(),this.yExtentComponents.push(E),this.canvasBoundsContainer.updateYAxisWidths(),E}removeExtentComponent(e){e.disable(),this.yExtentComponents.splice(e.idx,1),this.yExtentComponents.forEach((t,r)=>t.idx=r),this.canvasBoundsContainer.updateYAxisWidths()}updateView(){this.yExtentComponents.forEach(e=>{var t;e.scaleModel.doAutoScale(),(t=e.yAxisComponent)==null||t.labelsGenerator.generateNumericLabels()}),this.canvasBoundsContainer.updateYAxisWidths(),this.eventBus.fireDraw()}mergeYExtents(){for(let e=1;e<this.yExtentComponents.length;e++){const t=this.yExtentComponents[e];t.dataSeries.forEach(r=>r.moveToExtent(this.mainYExtentComponent)),t.disable()}this.canvasBoundsContainer.updateYAxisWidths(),this.yExtentComponents=[this.mainYExtentComponent]}getBounds(){return this.mainYExtentComponent.getBounds()}hide(){this._paneOrder=this.canvasBoundsContainer.panesOrder.indexOf(this.uuid),this.canvasBoundsContainer.removedPaneBounds(this.uuid),this.eventBus.fireDraw()}show(){this.canvasBoundsContainer.addPaneBounds(this.uuid,this._paneOrder),this.eventBus.fireDraw()}createDataSeries(){var e;return(e=this.mainYExtentComponent)==null?void 0:e.createDataSeries()}addDataSeries(e){this.mainYExtentComponent.addDataSeries(e),this.updateView()}removeDataSeries(e){this.mainYExtentComponent.removeDataSeries(e),this.updateView()}getAxisType(){return"regular"}moveUp(){this.canvasBoundsContainer.movePaneUp(this.uuid)}moveDown(){this.canvasBoundsContainer.movePaneDown(this.uuid)}canMoveUp(){const e=Yt(this.canvasBoundsContainer.panesOrder);return this.uuid!==e}canMoveDown(){const e=Ue(this.canvasBoundsContainer.panesOrder);return this.uuid!==e}get regularFormatter(){return this.mainYExtentComponent.formatters.regular}setPaneValueFormatters(e){this.mainYExtentComponent.setValueFormatters(e)}regularValueFromY(e){return this.mainYExtentComponent.regularValueFromY(e)}}class Yd extends te{constructor(e,t,r,s,i,a,o,l,c,h,v,p,y,E){super(),this.chartBaseModel=e,this.userInputListenerComponents=t,this.eventBus=r,this.mainScaleModel=s,this.canvasBoundsContainer=i,this.config=a,this.canvasAnimation=o,this.canvasInputListener=l,this.drawingManager=c,this.dataSeriesCanvasModel=h,this.cursorHandler=v,this.crossEventProducer=p,this.chartPanComponent=y,this.mainCanvasModel=E,this.paneComponents={},this.panesChangedSubject=new G,this.hitTestController=new Ld(this.paneComponents,this.dataSeriesCanvasModel);const R=this.createPane(ae,{useDefaultHighLow:!1,scaleModel:this.mainScaleModel,useDefaultYAxis:!1});R.mainYExtentComponent.scaleModel.autoScaleModel.setHighLowProvider("series",Gi(R.mainYExtentComponent)),s.autoScaleModel.setHighLowPostProcessor("offsets",Xi(()=>this.mainScaleModel.getOffsets()))}get panesOrder(){return this.canvasBoundsContainer.panesOrder}addBounds(e,t){return this.canvasBoundsContainer.addPaneBounds(e,t),()=>this.canvasBoundsContainer.removedPaneBounds(e)}addResizer(e){const t=this.canvasBoundsContainer.getBoundsHitTest(Y.PANE_UUID_RESIZER(e),{extensionY:this.config.components.paneResizer.dragZone}),r=()=>{this.canvasBoundsContainer.resizePaneVertically(e,this.canvasInputListener.getCurrentPoint().y),this.eventBus.fireDraw([this.mainCanvasModel.canvasId,"overDataSeriesCanvas"])},s=Y.PANE_UUID_RESIZER(e),i=new Td(s,()=>this.canvasBoundsContainer.getBounds(s),t,r,this.chartPanComponent,this.mainCanvasModel,this.drawingManager,this.canvasInputListener,this.canvasAnimation,this.config,this.canvasBoundsContainer);return this.userInputListenerComponents.push(i),i}getPaneIfHit(e){return Object.values(this.paneComponents).find(r=>this.canvasBoundsContainer.getBoundsHitTest(Y.PANE_UUID(r.uuid))(e.x,e.y))}createPane(e=Je(),t){if(this.paneComponents[e]!==void 0)return this.paneComponents[e];const r=new Fd(this.chartBaseModel,this.hitTestController,this.config,this.mainScaleModel,this.drawingManager,this.chartPanComponent,this.mainCanvasModel,this.canvasInputListener,this.userInputListenerComponents,this.canvasAnimation,this.cursorHandler,this.eventBus,this.canvasBoundsContainer,e,this.dataSeriesCanvasModel,t);return this.config.components.paneResizer.visible&&r.addChildEntity(this.addResizer(e)),r.addSubscription(this.addBounds(e,t==null?void 0:t.order)),r.addSubscription(this.addCursors(e)),r.addSubscription(this.crossEventProducer.subscribeMouseOverHT(e,r.ht)),this.paneComponents[e]=r,r.activate(),this.recalculateState(),r.mainYExtentComponent.scaleModel.autoScale(!0),this.panesChangedSubject.next(this.paneComponents),r}removePane(e){const t=this.paneComponents[e];t!==void 0&&(t.disable(),t.yExtentComponents.forEach(r=>r.disable()),delete this.paneComponents[e],this.recalculateState(),this.panesChangedSubject.next(this.paneComponents))}addCursors(e,t=this.config.components.chart.cursor){const r=Y.PANE_UUID(e),s=Y.PANE_UUID_RESIZER(e);return this.cursorHandler.setCursorForCanvasEl(r,t),this.config.components.paneResizer.visible&&this.cursorHandler.setCursorForCanvasEl(s,this.config.components.paneResizer.cursor,this.config.components.paneResizer.dragZone),()=>{this.cursorHandler.removeCursorForCanvasEl(r),this.config.components.paneResizer.visible&&this.cursorHandler.removeCursorForCanvasEl(s)}}recalculateState(){Object.values(this.paneComponents).forEach(e=>e.scaleModel.recalculateZoomY()),this.eventBus.fireDraw([this.mainCanvasModel.canvasId,"overDataSeriesCanvas"])}}class Hd extends te{constructor(e,t){super(),this.elements=e,this.canvasModel=t}doActivate(){super.doActivate()}createSnapshot(e){const t=this.canvasModel.canvas,r=this.canvasModel.ctx;if(r){r.clearRect(0,0,t.width,t.height);const s=t.width/window.devicePixelRatio,i=t.height/window.devicePixelRatio;return r.drawImage(this.elements.backgroundCanvas,0,0,s,i),r.drawImage(this.elements.mainCanvas,0,0,s,i),r.drawImage(this.elements.staticDrawingCanvas,0,0,s,i),r.drawImage(this.elements.dataSeriesCanvas,0,0,s,i),r.drawImage(this.elements.overDataSeriesCanvas,0,0,s,i),r.drawImage(this.elements.dynamicDrawingCanvas,0,0,s,i),r.drawImage(this.elements.crossToolCanvas,0,0,s,i),e&&e(r),new Promise((a,o)=>this.elements.snapshotCanvas.toBlob(l=>l?a(l):o("Blob is null")))}else return console.error("Snapshot isn't supported"),Promise.reject()}}const bn=.3,Nd=(n,e)=>{const t=e.barTheme[`${n}Color`];return Jt()(t).alpha(bn).toString()},kd=(n,e)=>{const t=e.volume[`${n}BarColor`];return Jt()(t).alpha(bn).toString()},Wd=(n,e)=>{const t=e.lineTheme[`${n}Color`];return Jt()(t).alpha(bn).toString()},vr=(n,e)=>{const t=e.candleTheme[`${n}Color`];return Jt()(t).alpha(bn).toString()},Ud=3;class Qi{constructor(e,t,r,s,i,a,o){this.canvasModel=e,this.config=t,this.volumesModel=r,this.chartModel=s,this.viewportModel=i,this.volumesColorByChartTypeMap=a,this.drawPredicate=o,this.volumeBarColors={down:"#FF00FF",up:"#FF00FF",none:"#FF00FF"}}calculateColors(e){var t;const r=(t=this.volumesColorByChartTypeMap[e])!=null?t:kd;this.volumeBarColors.down=r("down",this.config.colors),this.volumeBarColors.up=r("up",this.config.colors),this.volumeBarColors.none=r("none",this.config.colors)}draw(){if(this.config.components.volumes.visible&&this.drawPredicate()){this.calculateColors(this.config.components.chart.type);const e=this.canvasModel.ctx;e.save();const t=this.viewportModel.getBounds();yt(e,t),this.drawVolumes(),e.restore()}}drawLastBar(){this.config.components.volumes.visible}drawVolumes(){const e=this.volumesModel.volumeMax.getValue();if(e===0)return;const t=Ie(this.chartModel.mainCandleSeries.getSeriesInViewport(this.chartModel.scaleModel.xStart-1,this.chartModel.scaleModel.xEnd+1));t.forEach((r,s)=>{if(r.candle.volume){const i=this.viewportModel.getBounds(),a=i.height,o=t[s+1]!==void 0?se(this.viewportModel.toX(t[s+1].startUnit)):void 0,l=se(this.viewportModel.toX(r.startUnit)),c=o!==void 0?o-l:se(Pe(r.width,this.viewportModel.zoomX));if(this.config.components.volumes.showSeparately){const h=se(this.viewportModel.toY(r.candle.volume)),v=se(this.viewportModel.toY(0))-h;this.drawVolume(r,l,h,c,v)}else{const h=e/(a/Ud),v=Math.max(Pe(r.candle.volume,h),2),p=se(i.y+a-v);this.drawVolume(r,l,p,c,v)}}})}drawVolume(e,t,r,s,i){const a=this.canvasModel.ctx,o=r,l=r+i,c=e.name;a.fillStyle=this.volumeBarColors[c],a.strokeStyle=this.volumeBarColors[c],s===0?(a.beginPath(),a.moveTo(t,o),a.lineTo(t,Ms(l)),a.stroke()):a.fillRect(t,r,s,Ms(i))}getCanvasIds(){return[this.canvasModel.canvasId]}}const ea=5,zd=1e-10,Xd=/\.?0+$/,ta=/(\.[1-9]*)0+$/,jd=n=>{const e=(t,r)=>{const s=Math.pow(10,ea),i=Math.round(t*s)/s;return i<1&&i>=zd?i.toFixed(ea).replace(Xd,"").replace(ta,""):(i+"").replace(ta,"")+(r||"")};return Math.abs(n)>999999999?(n=Math.round(n/1e6)*1e6,e(n/1e9,"B")):Math.abs(n)>999999?(n=1e3*Math.round(n/1e3),e(n/1e6,"M")):Math.abs(n)>9999?e(n/1e3,"K"):e(n)},Cn=class extends te{constructor(n,e,t,r,s,i,a){super(),this.canvasModel=n,this.chartComponent=e,this.drawingManager=t,this.config=r,this.volumesModel=s,this.volumesColorByChartTypeMap=i,this.paneManager=a,r.components.volumes.showSeparately&&this.activateSeparateVolumes()}doActivate(){super.doActivate(),this.addRxSubscription(this.chartComponent.chartModel.candlesUpdatedSubject.subscribe(()=>{var n,e;return!((n=this.scaleModel)!=null&&n.isViewportValid())&&((e=this.scaleModel)==null?void 0:e.doAutoScale(!0))})),this.addRxSubscription(this.volumesModel.volumeMax.subscribe(()=>{var n;return(n=this.scaleModel)==null?void 0:n.doAutoScale()}))}activateSeparateVolumes(){if(this.paneManager.paneComponents[Cn.UUID]===void 0){const n=this.paneManager.createPane(Cn.UUID,{paneFormatters:{regular:jd},useDefaultHighLow:!1,increment:1}),{scaleModel:e}=n,t=ji(()=>({top:10,bottom:0,left:0,right:0,visible:!0}),this.volumesModel.highLowProvider);e.autoScaleModel.setHighLowProvider("volumes",t),e.doAutoScale(!0),this.scaleModel=e;const r=new Qi(this.canvasModel,this.config,this.volumesModel,this.chartComponent.chartModel,e,this.volumesColorByChartTypeMap,()=>this.config.components.volumes.showSeparately);this.drawingManager.addDrawer(r,"UNDERLAY_VOLUMES_AREA")}}deactiveSeparateVolumes(){this.paneManager.removePane(Cn.UUID),delete this.scaleModel,this.drawingManager.removeDrawerByName("UNDERLAY_VOLUMES_AREA")}fromY(n){var e,t;return(t=(e=this.scaleModel)==null?void 0:e.fromY(n))!=null?t:0}};let na=Cn;na.UUID="volumes";const Vd=Eo(n=>n.candle.volume);class Gd extends te{constructor(e,t){super(),this.chartComponent=e,this.scaleModel=t,this.volumeMax=new lt(0),this.highLowProvider={calculateHighLow:()=>({high:this.volumeMax.getValue(),low:0}),isHighLowActive:()=>!0}}doActivate(){super.doActivate(),this.addRxSubscription(Me(this.chartComponent.chartModel.observeCandlesChanged(),this.scaleModel.xChanged).subscribe(()=>this.updateVolumeMax())),this.addRxSubscription(this.chartComponent.chartModel.mainCandleSeries.observeLastVisualCandleChanged().subscribe(()=>this.recalculateLastVisualVolume()))}recalculateLastVisualVolume(){}updateVolumeMax(){var e;this.volumeMax.next((e=Yt(Vd(this.chartComponent.chartModel.mainCandleSeries.getSeriesInViewport().flat())))!=null?e:0)}}class $d extends te{constructor(e,t,r,s,i,a,o,l){super(),this.canvasModel=e,this.canvasBoundsContainer=s,this.config=a,this.volumesColorByChartTypeMap={},this.volumeVisibilityChangedSubject=new lt(!1),this.volumeIsSeparateModeChangedSubject=new lt(!1);const c=new Gd(t,r);this.volumesModel=c,this.yAxisComponent=l,this.addChildEntity(c),this.separateVolumes=new na(e,t,i,a,c,this.volumesColorByChartTypeMap,o),this.addChildEntity(this.separateVolumes);const h=new Qi(e,a,c,t.chartModel,r,this.volumesColorByChartTypeMap,()=>!a.components.volumes.showSeparately);i.addDrawer(h,"VOLUMES"),this.registerDefaultVolumeColorResolvers(),this.volumeVisibilityChangedSubject.next(a.components.volumes.visible),this.volumeIsSeparateModeChangedSubject.next(a.components.volumes.showSeparately)}registerDefaultVolumeColorResolvers(){this.registerVolumeColorResolver("candle",vr),this.registerVolumeColorResolver("trend",vr),this.registerVolumeColorResolver("hollow",vr),this.registerVolumeColorResolver("line",Wd),this.registerVolumeColorResolver("bar",Nd)}setShowVolumesSeparatly(e){this.config.components.volumes.showSeparately!==e&&(this.config.components.volumes.showSeparately=e,e?(this.separateVolumes.activateSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(!0)):(this.separateVolumes.deactiveSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(!1)))}doDeactivate(){super.doDeactivate(),this.setVisible(!1)}registerVolumeColorResolver(e,t){this.volumesColorByChartTypeMap[e]=t}setVisible(e=!0){this.config.components.volumes.visible=e,this.volumeVisibilityChangedSubject.next(e),this.config.components.volumes.showSeparately===!0&&(e?(this.separateVolumes.activateSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(!0)):(this.separateVolumes.deactiveSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(!1))),this.canvasBoundsContainer.recalculatePanesHeightRatios(),this.canvasModel.fireDraw()}}class Zd{constructor(e,t,r,s,i){this.config=e,this.canvasBoundsContainer=t,this.canvasModel=r,this.waterMarkConfigProvider=s,this.watermarkDataProvider=i,this.getConfig=(a=0,o,l,c,h,v)=>{const p=this.canvasModel.ctx,y=this.canvasBoundsContainer.getBounds(Y.PANE_UUID(ae)),{position:E,offsetY:R,offsetX:N}=this.config.components.waterMark;let k;switch(v?k=v:(p.font=yn(this.config,l),k=p.measureText(o).width,y.width-10<k&&(p.font=Kd(this.config,this.canvasBoundsContainer,l,k),k=p.measureText(o).width)),E){case"left-top":return{x:N+y.x,y:R+a+y.y,font:p.font,text:o,color:c};case"left-bottom":return{x:N+y.x,y:y.height-h-R+a+y.y,font:p.font,text:o,color:c};case"center":return{x:y.width/2-k/2+y.x,y:(y.height-h)/2+a+y.y,font:p.font,text:o,color:c}}}}draw(){var e,t,r,s,i,a,o;if((e=this.config.components.waterMark)!=null&&e.visible&&this.config.colors){const{firstRow:l,secondRow:c,thirdRow:h}=this.watermarkDataProvider(),v=this.waterMarkConfigProvider(),p=this.config.colors.waterMarkTheme,y=this.canvasModel.ctx;let E=0,R=0,N=0,k=0,U=0;if(y.save(),v.firstRowFontSize&&l){y.font=yn(this.config,v.firstRowFontSize);const $=y.measureText(l);E=$.actualBoundingBoxAscent+$.actualBoundingBoxDescent}if(v.secondRowFontSize&&c){y.font=yn(this.config,v.secondRowFontSize);const $=y.measureText(c);R=$.actualBoundingBoxAscent+$.actualBoundingBoxDescent,N=(t=v.firstRowBottomPadding)!=null?t:0}if(v.thirdRowFontSize&&h){y.font=yn(this.config,v.thirdRowFontSize);const $=y.measureText(h);k=$.actualBoundingBoxAscent+$.actualBoundingBoxDescent,U=(r=v.secondRowBottomPadding)!=null?r:0}const Z=(s=v.thirdRowBottomPadding)!=null?s:0,K=(i=v.logoHeight)!=null?i:0,q=E+R+N+k+U+Z+K;if(l&&this.drawWaterMark(this.getConfig(E,l,v.firstRowFontSize,p.firstRowColor,q)),c&&this.drawWaterMark(this.getConfig(E+N+R,c,v.secondRowFontSize,p.secondRowColor,q)),h&&this.drawWaterMark(this.getConfig(E+N+R+U+k,h,v.thirdRowFontSize,p.thirdRowColor,q)),this.logoImage){const $=this.getConfig(E+N+R+U+k+Z,"",v.thirdRowFontSize,p.thirdRowColor,q,v.logoWidth);this.canvasModel.ctx.drawImage(this.logoImage,$.x,$.y,(a=v.logoWidth)!=null?a:0,(o=v.logoHeight)!=null?o:0)}y.restore()}}getCanvasIds(){return[this.canvasModel.canvasId]}setLogoImage(e){this.logoImage=e}drawWaterMark(e){const t=e.text;if(!t||!t.length)return;const r=this.canvasModel.ctx;r.font=e.font,r.fillStyle=e.color;const s=e.x,i=e.y;r.fillText(t,s,i)}reset(){}}const Kd=(n,e,t,r)=>{const i=((o,l)=>e.getBounds(Y.CHART).width/l*o)(t,r);let a;return n.components&&n.components.waterMark&&(a=n.components.waterMark.fontFamily),i+"px "+a},yn=(n,e)=>{let t;return n.components&&n.components.waterMark&&(t=n.components.waterMark.fontFamily),e+"px "+t};var qd=Object.defineProperty,ra=Object.getOwnPropertySymbols,Jd=Object.prototype.hasOwnProperty,Qd=Object.prototype.propertyIsEnumerable,sa=(n,e,t)=>e in n?qd(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ia=(n,e)=>{for(var t in e||(e={}))Jd.call(e,t)&&sa(n,t,e[t]);if(ra)for(var t of ra(e))Qd.call(e,t)&&sa(n,t,e[t]);return n};class eu extends te{constructor(e,t,r,s,i,a,o){super(),this.paneManager=e,this.chartModel=t,this.eventBus=r,this.config=s,this.canvasModel=a,this.waterMarkConfig=this.config.components.waterMark,this.waterMarkData=this.getWaterMarkData(),this.waterMarkDrawer=new Zd(this.config,i,a,()=>this.waterMarkConfig,()=>this.waterMarkData),this.addRxSubscription(Ge(i.observeBoundsChanged(Y.PANE_UUID(ae)),this.paneManager.panesChangedSubject).subscribe(l=>{this.waterMarkConfig=this.recalculateTextSize(l.width,l.height)})),this.addRxSubscription(this.chartModel.candlesSetSubject.subscribe(()=>{this.waterMarkData=this.getWaterMarkData()})),o.addDrawerAfter(this.waterMarkDrawer,"WATERMARK","DRAWINGS")}setWaterMarkVisible(e){this.config.components&&this.config.components.waterMark&&(this.config.components.waterMark.visible=e,this.canvasModel.fireDraw())}setWaterMarkData(e){this.waterMarkData=e,this.canvasModel.fireDraw()}getWaterMarkData(){return this.waterMarkData||{}}setWaterMarkConfig(e){if(!(!e||!this.config.components)){if(!this.config.components.waterMark)this.config.components.waterMark=JSON.parse(JSON.stringify(e));else{const t={};Ge(t,e),Ge(t,this.config.components.waterMark),this.config.components.waterMark=t}this.canvasModel.fireDraw()}}setLogoImage(e){this.waterMarkDrawer.setLogoImage(e)}recalculateTextSize(e,t){const i=v=>.15*Math.log(v)/Math.log(1.5)+1,a=i(e/1920),o=i(t/1080),l=Math.min(a,o),c=l>=0?l:0,h={firstRowFontSize:Math.round(this.config.components.waterMark.firstRowFontSize*c),secondRowFontSize:Math.round(this.config.components.waterMark.secondRowFontSize*c),thirdRowFontSize:Math.round(this.config.components.waterMark.thirdRowFontSize*c)};return ia(ia({},this.config.components.waterMark),h)}}const aa={x:4,y:4};function tu(n,e,t,r,s){var i,a;const o=(i=s.alignType)!=null?i:"middle",{fontSize:l,fontFamily:c,padding:h}=r.components.xAxis,v=(a=h.top)!=null?a:0,p=t.getBounds(Y.X_AXIS);e.save(),e.font=`bold ${l}px ${c}`;const E=e.measureText(s.text).width+aa.x*2;let R=0;const N=s.x;switch(o){case"start":R=N-E;break;case"end":R=N;break;case"middle":default:R=N-E/2;break}cn(n,e,R,p.y,E,p.height-1),o!=="middle"&&(e.strokeStyle=s.color,e.beginPath(),e.moveTo(N,p.y),e.lineTo(N,p.y+p.height),e.stroke()),e.fillStyle=s.color;const k=R+aa.x,U=p.y+v+l;e.fillText(s.text,k,U),e.restore()}class nu{constructor(e,t,r,s,i){this.backgroundCanvasModel=e,this.config=t,this.canvasModel=r,this.canvasBoundsContainer=s,this.xAxisLabelsModel=i}draw(){const e=this.canvasModel.ctx;this.drawHighlightedBackgroundBetweenLabels(),this.xAxisLabelsModel.labels.forEach(t=>{tu(this.backgroundCanvasModel.ctx,e,this.canvasBoundsContainer,this.config,t)})}drawHighlightedBackgroundBetweenLabels(){const e=this.canvasModel.ctx,t={},r=this.xAxisLabelsModel.labels.reduce((s,i)=>{if(i.subGroupId!==void 0){let a=s[i.subGroupId];a||(a=[],s[i.subGroupId]=a),a.push(i)}return s},t);Object.keys(r).forEach(s=>{const i=r[s];if(i.length===2){const a=this.canvasBoundsContainer.getBounds(Y.X_AXIS);e.fillStyle=gt.rgb(i[0].color).alpha(.1).toString(),ni(e,{x:i[0].x,y:a.y},{x:i[1].x,y:a.y+a.height})}})}getCanvasIds(){return[this.canvasModel.canvasId]}}const Lv="week-weekday",ru=["second","minute","hour","day","month","year"],su=["lessThanSecond"],iu=n=>ru.some(e=>e===n),au=n=>n==="week-weekday",ou=n=>su.some(e=>e===n),oa=n=>{const e={"!":!1,$:!1};return n.includes("!")&&(e["!"]=!0),n.includes("$")&&(e.$=!0),e},gr=n=>parseInt(n,10),la=n=>{const[e,...t]=n.split("_");if(iu(e)){const[r]=t,s=oa(r),i=gr(r);return{key:e,value:i,exact:s["!"]}}else if(au(e)){const[r,s]=t,i=oa(r),a=gr(r),o=gr(s);return{key:e,week:i.$?"$":a,weekday:o}}else return ou(e)?{key:e}:(console.warn(`${n} is not fit, check the documentation to see available formats https://webdev.prosp.devexperts.com:8095/docs/chart/x-axis`),null)};class wn{constructor(e,t,r,s,i,a=()=>!0){this.config=e,this.canvasModel=t,this.viewportModel=r,this.canvasBoundsContainer=s,this.labelsProvider=i,this.drawPredicate=a}draw(){var e;if(this.drawPredicate()){const t=this.canvasModel.ctx,r=this.config.colors.xAxis,s=this.config.components.xAxis.fontFamily,i=wn.getFontFromConfig(this.config),a=this.config.components.xAxis.fontSize,o=(e=this.config.components.xAxis.padding.top)!=null?e:0;t.save(),t.font=i,t.fillStyle=r.backgroundColor;const l=this.canvasBoundsContainer.getBounds(Y.X_AXIS);t.fillRect(l.x,l.y,l.width,l.height);const c=this.config.colors.xAxis.labelTextColor,h=this.labelsProvider();this.drawLabels(t,h,l,c,a,s,o),t.restore()}}drawLabels(e,t,r,s,i,a,o){const l=`${i}px ${a}`;e.fillStyle=s;for(const c of t){const h=this.viewportModel.toX(c.value)-Re(c.text,e,l)/2;if(h<0||h>r.width)continue;const v=r.y+i-1+o,p=c.text;e.font=l,e.fillText(p,h,v)}}static getFontFromConfig(e){return`${e.components.xAxis.fontStyle} ${e.components.xAxis.fontSize}px ${e.components.xAxis.fontFamily}`}getCanvasIds(){return[this.canvasModel.canvasId]}}const pr={lessThanSecond:0,second:100,minute:200,hour:300,day:400,"week-weekday":500,month:600,year:1e4},ca=n=>{switch(n.key){case"second":case"minute":case"hour":case"day":case"month":case"year":return pr[n.key]+n.value;case"lessThanSecond":return pr[n.key];case"week-weekday":return pr[n.key]+(n.week==="$"?9:n.week)+n.weekday*10}},ha=n=>{const e={};return n.forEach(t=>{const r=e[t.weight];r===void 0?e[t.weight]=[t]:r.push(t)}),e},lu=(n,e)=>{const t=Object.keys(n).map(s=>parseInt(s,10)).sort((s,i)=>i-s);let r=[];for(const s of t){const i=n[s];if(!i)continue;const a=[...r];r=[];const o=a.length,l=i.length;let c=0,h=1/0,v=-1/0;for(let p=0;p<l;p++){const y=i[p],E=y.idx;for(;c<o;){const R=a[c],N=R.idx;if(E>N)c++,r.push(R),v=N,h=1/0;else{h=N;break}}h-E>=e&&E-v>=e&&(r.push(y),v=E)}for(;c<o;)r.push(a[c]),c++}return r},cu=(n,e,t,r,s,i)=>{const a=wn.getFontFromConfig(e),o=Re(t.text,n,a),l=Re(r.text,n,a),c=s.toX(t.value)+o/2;return s.toX(r.value)-l/2-c<i};function mr(n){"@babel/helpers - typeof";return mr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mr(n)}function Oe(n,e){if(e.length<n)throw new TypeError(n+" argument"+(n>1?"s":"")+" required, but only "+e.length+" present")}function Be(n){Oe(1,arguments);var e=Object.prototype.toString.call(n);return n instanceof Date||mr(n)==="object"&&e==="[object Date]"?new Date(n.getTime()):typeof n=="number"||e==="[object Number]"?new Date(n):((typeof n=="string"||e==="[object String]")&&typeof console!="undefined"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function hu(n){return Oe(1,arguments),Be(n).getDay()===1}function du(n){return Oe(1,arguments),Be(n).getDay()===2}function uu(n){return Oe(1,arguments),Be(n).getDay()===3}function fu(n){return Oe(1,arguments),Be(n).getDay()===4}function vu(n){return Oe(1,arguments),Be(n).getDay()===5}function gu(n){return Oe(1,arguments),Be(n).getDay()===6}function pu(n){return Oe(1,arguments),Be(n).getDay()===0}function mu(n,e){var t;Oe(1,arguments);var r=n||{},s=Be(r.start),i=Be(r.end),a=i.getTime();if(!(s.getTime()<=a))throw new RangeError("Invalid interval");var o=[],l=s;l.setHours(0,0,0,0);var c=Number((t=e==null?void 0:e.step)!==null&&t!==void 0?t:1);if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number greater than 1");for(;l.getTime()<=a;)o.push(Be(l)),l.setDate(l.getDate()+c),l.setHours(0,0,0,0);return o}function bu(n){Oe(1,arguments);var e=Be(n);return e.setDate(1),e.setHours(0,0,0,0),e}function Cu(n){Oe(1,arguments);var e=Be(n),t=e.getMonth();return e.setFullYear(e.getFullYear(),t+1,0),e.setHours(23,59,59,999),e}function da(n){Oe(1,arguments);var e=Be(n);return e.setHours(0,0,0,0),e}function ua(n,e){Oe(2,arguments);var t=da(n),r=da(e);return t.getTime()===r.getTime()}const yu=n=>{switch(n.key){case"lessThanSecond":return Mu(n);case"month":return Pu(n);case"second":case"minute":case"hour":case"day":case"year":return Tu(n);case"week-weekday":return _u(n);default:return()=>!1}},ut=(n,e)=>{switch(e){case"lessThanSecond":return n.getMilliseconds();case"month":return n.getMonth();case"second":return n.getSeconds();case"minute":return n.getMinutes();case"hour":return n.getHours();case"day":return n.getDate();case"year":return n.getFullYear();case"week-weekday":return n.getDate()}},br=n=>(e,t)=>{const r=ut(e,n),s=ut(t,n);return r!==s},wu=n=>(e,t)=>{const r=ut(e,n),s=ut(t,n);return r>=s},Su={1:hu,2:du,3:uu,4:fu,5:vu,6:gu,7:pu},xu=(n,e,t)=>{var r;const s=mu({start:bu(n),end:Cu(n)}),i=(r=Su[t])!=null?r:()=>!1;if(e==="$"){for(const a of s.reverse())if(i(a))return ua(n,a)}else{let a=1;for(const o of s)if(i(o)){if(a===e)return ua(n,o);a++}}return!1},fa=(n,e)=>e===1?n===1:n/e===1,va=(n,e)=>e===1?!0:n%e===0,Mu=n=>(e,t)=>wu(n.key)(e,t),Pu=n=>(e,t)=>{const r=br(n.key)(e,t),s=n.exact?fa(ut(e,n.key)+1,n.value):va(ut(e,n.key)+1,n.value);return r&&s},Tu=n=>(e,t)=>{const r=br(n.key)(e,t),s=n.exact?fa(ut(e,n.key),n.value):va(ut(e,n.key),n.value);return r&&s},_u=n=>(e,t)=>{const r=br(n.key)(e,t),s=xu(e,n.week,n.weekday);return r&&s},Au=n=>{switch(n.key){case"second":case"minute":return Du(n.value);case"hour":return Eu(n.value);case"day":return Lu(n.value);case"month":return Bu(n.value);case"year":return Ru(n.value);case"week-weekday":const e=Ou(n.week),t=Iu(n.weekday);return e&&t;case"lessThanSecond":return!0;default:return!1}},Du=n=>n>0&&n<=60,Eu=n=>n>0&&n<=24,Lu=n=>n>0&&n<=31,Iu=n=>ga(n)?n>=1&&n<=7:!1,Ou=n=>n==="$"?!0:ga(n)?n>=1&&n<=6:!1,Bu=n=>n>0&&n<=12,Ru=n=>n>0,ga=n=>!isNaN(n)&&isFinite(n),Fu=(n,e,t,r)=>{var s,i;const a=r(n.getTime()),o=r(e.getTime());for(const[l,c]of t)if(c(a,o))return l;return(i=(s=t[t.length-1])==null?void 0:s[0])!=null?i:0};function Cr(n,e,t){const r=new Array(n.length);let s=new Date(0);for(let i=0;i<n.length;i++){const a=n[i],o=new Date(a.candle.timestamp),l={weight:Fu(o,s,e,t)};r[i]=l,s=o}return r}const pa=n=>{const e={},t={};return $n(n).forEach(([r,s])=>{const i=la(r),a=i===null?!1:Au(i);if(i&&a){const o=ca(i);e[o]=s,t[o]=yu(i)}}),{weightToTimeFormatsDict:e,weightToTimeFormatMatcherDict:t}};class ma{constructor(e,t,r,s,i,a){this.eventBus=e,this.config=t,this.chartModel=r,this.scaleModel=s,this.timeZoneModel=i,this.canvasModel=a,this.labelsGroupedByWeight={},this.levelsCache={},this.weightToTimeFormatMatcherArray=[],this.weightToTimeFormatsDict={},this.extendedLabelsFilterConfig={minute_1:c=>c>=2},this.formatsByWeightMap=t.components.xAxis.formatsForLabelsConfig;const{weightToTimeFormatsDict:o,weightToTimeFormatMatcherDict:l}=pa(this.formatsByWeightMap);this.weightToTimeFormatMatcherArray=Object.entries(l).map(([c,h])=>[parseInt(c,10),h]).sort(([c],[h])=>h-c),this.weightToTimeFormatsDict=o}get labels(){return this.getLabelsFromChartType()}getLabelsFromChartType(){var e,t;const r=(t=(e=this.weightedCache)==null?void 0:e.labels)!=null?t:[];return this.config.components.chart.type==="equivolume"?this.postProcessing(r):r}getAllCandlesWithFake(){const e=this.chartModel.mainCandleSeries.visualPoints;if(e.length===0)return[];const r=Array.from({length:750}).map((s,i)=>Fs(this.chartModel.mainCandleSeries.dataPoints,this.chartModel.mainCandleSeries.visualPoints,this.chartModel.mainCandleSeries.meanCandleWidth,e.length+i,this.chartModel.getPeriod()));return[...e,...r]}mapWeightedPointsToLabels(e,t){const r=new Array(e.length);return e.forEach((s,i)=>{var a;const o=t[i],l=this.weightToTimeFormatsDict[s.weight],c=this.timeZoneModel.getDateTimeFormatter(l)(o.candle.timestamp);r[i]={weight:s.weight,idx:(a=o.candle.idx)!=null?a:0,value:o.centerUnit,time:o.candle.timestamp,text:c}}),r}setFormatsForLabelsConfig(e){const{weightToTimeFormatsDict:t,weightToTimeFormatMatcherDict:r}=pa(e);this.formatsByWeightMap=e,this.weightToTimeFormatMatcherArray=Object.entries(r).map(([s,i])=>[parseInt(s,10),i]).sort(([s],[i])=>i-s),this.weightToTimeFormatsDict=t,this.generateWeightedLabels()}generateWeightedLabels(){const e=this.getAllCandlesWithFake(),t=Cr(e,this.weightToTimeFormatMatcherArray,this.timeZoneModel.tzOffset(this.config.timezone)),r=this.mapWeightedPointsToLabels(t,e);this.labelsGroupedByWeight=ha(r),this.weightedCache=void 0,this.levelsCache={},this.recalculateCachedLabels()}getLabelsFromCache(e){if(this.levelsCache[e])return this.levelsCache[e]}updateLastLabel(e){const t=this.chartModel.mainCandleSeries.visualPoints[this.chartModel.mainCandleSeries.visualPoints.length-2];if(t){const s=Cr([t,e],this.weightToTimeFormatMatcherArray,this.timeZoneModel.tzOffset(this.config.timezone)),i=this.mapWeightedPointsToLabels([s[1]],[e]),[a]=i;this.labelsGroupedByWeight=Object.entries(this.labelsGroupedByWeight).reduce((o,[l,c])=>{const h=c.findIndex(p=>p.idx===a.idx);let v=c;if(h!==-1&&(v=c.filter(p=>p.idx!==a.idx)),parseInt(l,10)===a.weight){const p=v.findIndex(y=>y.idx>a.idx);p!==-1?v=[...v.slice(0,p),a,...v.slice(p)]:v.push(a)}return o[l]=v,o},{}),this.weightedCache=void 0,this.levelsCache={},this.recalculateCachedLabels()}}updateHistoryLabels(e){const t=e.concat(this.chartModel.mainCandleSeries.visualPoints[e.length]),r=Cr(t,this.weightToTimeFormatMatcherArray,this.timeZoneModel.tzOffset(this.config.timezone)),s=this.mapWeightedPointsToLabels(r,t),i=ha(s),a=Wt(i);for(const c in this.labelsGroupedByWeight)a[c]===void 0&&(a[c]=this.labelsGroupedByWeight[c]);const o=this.chartModel.mainCandleSeries.visualPoints[e.length-1],l=Object.entries(a).sort(([c],[h])=>parseInt(h,10)-parseInt(c,10)).reduce((c,[h,v])=>{const p=parseInt(h,10),y=this.labelsGroupedByWeight[p];if(p===this.weightToTimeFormatMatcherArray[0][0]&&y.shift(),y){const E=y.map(R=>(R.idx=R.idx+e.length,R.value=o.startUnit+o.width+R.value,R));i[p]?c[h]=v.concat(E):c[h]=E}else c[h]=v;return c},{});this.labelsGroupedByWeight=l,this.weightedCache=void 0,this.levelsCache={},this.recalculateCachedLabels()}generateLabels(){this.generateWeightedLabels()}recalculateLabels(){this.recalculateCachedLabels()}recalculateCachedLabels(){if(Object.getOwnPropertyNames(this.labelsGroupedByWeight).length===0)return;const e=this.config.components.xAxis.fontSize,t=Object.values(this.formatsByWeightMap).reduce((a,o)=>Math.max(o.length,a),1),r=e*t,s=Pe(this.chartModel.mainCandleSeries.meanCandleWidth,this.scaleModel.zoomX),i=Math.round(r/s);if(!(i<0&&!isFinite(s))&&(this.weightedCache===void 0||i!==this.weightedCache.coverUpLevel)){const a=this.getLabelsFromCache(i);if(a){this.weightedCache={labels:a,coverUpLevel:i};return}const o=lu(this.filterLabelsByExtendedRules(this.labelsGroupedByWeight,i),i);this.levelsCache[i]=o,this.weightedCache={labels:o,coverUpLevel:i},this.eventBus.fireDraw()}}postProcessing(e){var t,r;const s=[];let i=0,a=1;for(;a<=e.length-1;){const o=e[i],l=e[a];cu(this.canvasModel.ctx,this.config,o,l,this.scaleModel,30)?((t=l.weight)!=null?t:0)>((r=o.weight)!=null?r:0)&&(i=a):(s.push(o),i=a,a===e.length-1&&s.push(l)),a++}return s}filterLabelsByExtendedRules(e,t){const r=$n(this.extendedLabelsFilterConfig).reduce((s,i)=>{if(!i)return s;const[a,o]=i;if(o){const l=la(a);if(l){const c=ca(l);s[c]=o}}return s},{});return $n(e).reduce((s,[i,a])=>(r[i]&&r[i](t)||(s[i]=a),s),{})}}class Yu extends te{constructor(e,t){super(),this.eventBus=e,this.labelProviders=t,this.labels=[],this.initModel(),this.addSubscription(this.eventBus.on(Xt,()=>this.recalculateLabels()))}initModel(){this.recalculateLabels()}recalculateLabels(){this.labels=[];for(const e of this.labelProviders)this.labels.push(...e.getUnorderedLabels())}}class Hu extends te{constructor(e,t,r,s,i){super(),this.scaleModel=e,this.canvasInputListener=t,this.canvasBoundsContainer=r,this.chartPanComponent=s,this.chartModel=i,this.lastXStart=0,this.lastXWidth=0,this.lastXPxWidth=0,this.onXDragStart=()=>{this.lastXStart=this.scaleModel.xStart,this.lastXWidth=this.scaleModel.xEnd-this.scaleModel.xStart;const o=this.canvasBoundsContainer.getBounds(Y.X_AXIS);this.lastXPxWidth=o.width-this.canvasInputListener.currentPoint.x},this.onXDragTick=o=>{const{delta:l}=o,c=this.lastXPxWidth-l;if(c<0)return;const h=this.lastXPxWidth/c,v=this.lastXWidth*h,p=this.lastXStart+(this.lastXWidth-v);this.scaleModel.setXScale(p,this.scaleModel.xEnd)};const a=new Gt(this.canvasBoundsContainer.getBoundsHitTest(Y.X_AXIS),{onDragStart:this.onXDragStart,onDragTick:this.onXDragTick},this.canvasInputListener,this.chartPanComponent,{disableChartPanning:!1});this.addChildEntity(a)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeDbClick(this.canvasBoundsContainer.getBoundsHitTest(Y.X_AXIS)).subscribe(()=>this.chartModel.doBasicScale())),this.addRxSubscription(this.chartModel.candlesPrependSubject.subscribe(({prependedCandlesWidth:e})=>this.lastXStart+=e))}}class Nu extends te{constructor(e,t,r,s,i,a,o,l,c,h,v,p,y){super(),this.eventBus=e,this.config=t,this.canvasModel=r,this.chartComponent=s,this.scaleModel=i,this.chartResizeHandler=l,this.timeZoneModel=h;const E=new ma(e,t,s.chartModel,i,h,this.canvasModel);this.xAxisLabelsGenerator=E,this.xAxisLabelsModel=new Yu(e,[]);const R=new ar;c.addDrawer(R,"X_AXIS"),this.xAxisDrawer=new wn(t,r,i,a,()=>this.xAxisLabelsGenerator.labels,()=>t.components.xAxis.visible),R.addDrawer(this.xAxisDrawer),this.xAxisLabelsDrawer=new nu(y,t,r,a,this.xAxisLabelsModel),R.addDrawer(this.xAxisLabelsDrawer),this.xAxisScaleHandler=new Hu(i,o,a,v,this.chartComponent.chartModel),this.addChildEntity(this.xAxisScaleHandler),p.setCursorForCanvasEl(Y.X_AXIS,t.components.xAxis.cursor)}doActivate(){super.doActivate(),this.addRxSubscription(Me(this.chartComponent.chartModel.candlesSetSubject,this.timeZoneModel.observeTimeZoneChanged()).subscribe(()=>{this.xAxisLabelsGenerator.generateLabels()})),this.addRxSubscription(this.chartComponent.chartModel.candlesPrependSubject.pipe(he(({preparedCandles:e})=>e.length!==0),ye(({preparedCandles:e})=>this.chartComponent.chartModel.mainCandleSeries.visualPoints.slice(0,e.length))).subscribe(e=>{Wo.includes(this.config.components.chart.type)&&this.xAxisLabelsGenerator.updateHistoryLabels&&this.xAxisLabelsGenerator.updateHistoryLabels(e)})),this.addRxSubscription(Me(this.scaleModel.xChanged,this.chartResizeHandler.canvasResized).pipe(Nt(50,void 0,{trailing:!0,leading:!0})).subscribe(()=>{this.xAxisLabelsGenerator.recalculateLabels()})),this.addRxSubscription(this.chartComponent.chartModel.candlesUpdatedSubject.pipe(ye(()=>Ue(this.chartComponent.chartModel.mainCandleSeries.visualPoints)),Ve((e,t)=>{var r,s;return((r=e==null?void 0:e.candle)==null?void 0:r.timestamp)===((s=t==null?void 0:t.candle)==null?void 0:s.timestamp)}),he(Gr)).subscribe(e=>{this.xAxisLabelsGenerator.updateLastLabel&&this.xAxisLabelsGenerator.updateLastLabel(e)}))}getDrawer(){return this.xAxisDrawer}registerXAxisLabelsProvider(e){this.xAxisLabelsModel.labelProviders.push(e)}setVisible(e){var t;(t=this.config.components)!=null&&t.xAxis&&(this.config.components.xAxis.visible=e,this.eventBus.fireDraw())}setFormatsForLabelsConfig(e){this.xAxisLabelsGenerator instanceof ma?this.xAxisLabelsGenerator.setFormatsForLabelsConfig(e):console.error("Format config for x-axis is not available")}isVisible(){var e,t;return(t=(e=this.config.components)==null?void 0:e.xAxis.visible)!=null?t:!1}}const rt="#FF00FF",ku=(n,e)=>n==="down"?e.lastPrice.textNegative:n==="up"?e.lastPrice.textPositive:e.lastPrice.textSelected,Wu=(n,e)=>{const t=e.barTheme[`${n}Color`];return t!=null?t:rt},Uu=(n,e)=>{const t=e.lineTheme[`${n}Color`];return t!=null?t:rt},zu=(n,e)=>{const t=e.candleTheme[`${n}Color`];return t!=null?t:rt},Xu=(n,e)=>{const t=e.areaTheme.lineColor;return t!=null?t:rt},ju=(n,e)=>{const t=e.scatterPlot.mainColor;return t!=null?t:rt},Vu=(n,e)=>{const t=e.histogram[`${n}Cap`];return t!=null?t:rt},Gu=(n,e)=>{const t=n==="up"?e.baseLineTheme.upperSectionStrokeColor:e.baseLineTheme.lowerSectionStrokeColor;return t!=null?t:rt},ba=(n,e)=>{const t=e.candleTheme[`${n}WickColor`];return t!=null?t:rt},$u=()=>(console.warn("Fallback for label default color"),rt);var Zu=Object.defineProperty,Ca=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,ya=(n,e,t)=>e in n?Zu(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Sn=(n,e)=>{for(var t in e||(e={}))Ku.call(e,t)&&ya(n,t,e[t]);if(Ca)for(var t of Ca(e))qu.call(e,t)&&ya(n,t,e[t]);return n};class Ju{constructor(e,t,r,s){this.chartModel=e,this.config=t,this.lastCandleLabelsByChartType=r,this.resolveLabelColorFn=s}getUnorderedLabels(){const e=[];if(this.config.components.yAxis.labels.settings.lastPrice.mode!=="none"){const r=this.getYAxisVisualLabel(this.chartModel.mainCandleSeries),s=r&&Sn(Sn({},r),this.getLabelDrawConfig(this.chartModel.mainCandleSeries,!0));if(s){const i={labels:[s]},a=this.lastCandleLabelsByChartType[this.config.components.chart.type];a==null||a(i,this.chartModel.mainCandleSeries),e.push(i)}this.chartModel.candleSeries.forEach((i,a)=>{if(a===0)return;const o=this.getYAxisVisualLabel(i),l=o&&Sn(Sn({},o),this.getLabelDrawConfig(i,!1));if(l){const c={labels:[l]},h=this.lastCandleLabelsByChartType[i.config.type];h==null||h(c,this.chartModel.mainCandleSeries),e.push(c)}})}return e}getYAxisVisualLabel(e){const t=Ue(e.dataPoints);if(t){const r=e.view.toY(t.close);if(isFinite(r)){const s=this.config.components.yAxis.labels.settings.lastPrice.mode,i=this.config.components.yAxis.labels.settings.lastPrice.type;return{y:r,labelWeight:0,labelText:this.chartModel.pane.valueFormatter(t.close,e),mode:s,labelType:i,description:e.instrument.symbol}}}return null}getLabelDrawConfig(e,t){const r=e.colors.labels,s=this.resolveLabelColorFn(e.config.type),{rectLabelTextColor:i,rectLabelInvertedTextColor:a}=this.chartModel.config.colors.yAxis;let o="#FFFFFF",l="#FFFFFF";return r&&(o=s(e.lastPriceMovement,e.colors),l=t?ku(e.lastPriceMovement,r):i),{bgColor:o,textColor:Ht(o,l,a),rounded:!0}}}function Qu(n,e){if(n.filter(i=>i!==null).length<=1)return n.map(i=>i.y);const t=e-2,r=n.map((i,a)=>ef(i,a,t)).filter(Gr).sort(tf),s=new Array(r.length);return r.forEach((i,a)=>{if(i===null)return;const o=r[a+1];if(o&&o.top<i.bottom){const l=o.labelWeight-i.labelWeight===1?2:0,c=i.bottom-o.top+l;o.top+=c,o.bottom+=c}s[i.actualIndex]=(i.top+i.bottom)/2}),s}const ef=(n,e,t)=>n?{top:n.y-t/2,bottom:n.y+t/2,labelWeight:n.weight,actualIndex:e}:null,tf=(n,e)=>{const t=n.top,r=e.top;return t>r?1:t<r||t===r&&n.labelWeight<e.labelWeight?-1:0};var nf=Object.defineProperty,rf=Object.defineProperties,sf=Object.getOwnPropertyDescriptors,wa=Object.getOwnPropertySymbols,af=Object.prototype.hasOwnProperty,of=Object.prototype.propertyIsEnumerable,Sa=(n,e,t)=>e in n?nf(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,xa=(n,e)=>{for(var t in e||(e={}))af.call(e,t)&&Sa(n,t,e[t]);if(wa)for(var t of wa(e))of.call(e,t)&&Sa(n,t,e[t]);return n},Ma=(n,e)=>rf(n,sf(e));const yr={MAIN:"MAIN"};class lf extends te{constructor(e,t,r,s,i,a){super(),this.eventBus=e,this.chartModel=t,this.canvasBoundsContainer=r,this.config=s,this.canvasModel=i,this.updateYAxisWidth=a,this.orderedLabels=[],this.customLabels={},this.labelsProviders={},this.labelsPositionRecalculatedSubject=new G,this.animFrameId=`anim_cache_${Je()}`,this.initModel()}doActivate(){super.doActivate(),this.addRxSubscription(Me(this.chartModel.observeCandlesChanged(),this.canvasBoundsContainer.observeBoundsChanged(Y.PANE_UUID(ae)),this.chartModel.nextCandleTimeStampSubject,this.canvasBoundsContainer.barResizerChangedSubject,this.chartModel.scaleModel.changed).subscribe(()=>{this.updateLabels()}))}initModel(){this.initLabelsGroups(),this.recalculateLabels(),this.canvasModel.fireDraw()}initLabelsGroups(){if(Object.keys(this.labelsProviders).length!==0)for(const e of Object.keys(this.labelsProviders))this.createGroup(e),Object.entries(this.labelsProviders[e]).forEach(([t,r])=>{this.addToGroup(r,e,t)})}updateLabels(e=!1){this.recalculateLabels(),sr(this.animFrameId,()=>{e&&this.updateYAxisWidth(),this.canvasModel.fireDraw()})}recalculateLabels(){var e,t;this.orderedLabels=[];const r=this.config.components.yAxis.fontSize+((e=this.config.components.yAxis.labelBoxMargin.top)!=null?e:0)+((t=this.config.components.yAxis.labelBoxMargin.bottom)!=null?t:0);for(const s of Object.values(this.labelsProviders)){const i=Ie(Object.values(s).map(l=>l.getUnorderedLabels())),a=Ie(i.map(l=>l.labels)).map(l=>{var c;return{y:l.y,weight:(c=l.labelWeight)!=null?c:Number.POSITIVE_INFINITY}}),o=Qu(a,r);i.forEach(l=>{const c=o.splice(0,l.labels.length);this.orderedLabels.push(this.updateLabelsCoordinates(l,c))})}this.orderedLabels=this.orderedLabels.reverse()}createGroup(e){!this.labelsProviders[e]&&(this.labelsProviders[e]={})}addToGroup(e,t,r){this.labelsProviders[t]&&(Object.values(this.labelsProviders[t]).includes(e)||(this.labelsProviders[t][r]=e))}updateLabelsCoordinates(e,t){return Ma(xa({},e),{labels:e.labels.map((r,s)=>Ma(xa({},r),{lineY:r.y,y:t[s]}))})}observeLabelsPositionsRecalculated(){return this.labelsPositionRecalculatedSubject.asObservable()}registerYAxisLabelsProvider(e,t,r){var s;const i=(s=this.labelsProviders[e])!=null?s:{};i[r]=t,this.labelsProviders[e]=i,this.initModel()}unregisterYAxisLabelsProvider(e,t){var r;const s=(r=this.labelsProviders[e])!=null?r:{};delete s[t],this.labelsProviders[e]&&Object.keys(this.labelsProviders[e]).length===0&&delete this.labelsProviders[e],this.initModel()}}class cf{constructor(e,t,r,s,i,a,o){this.labelsProvider=e,this.yAxisLabelsCanvasModel=t,this.backgroundCanvasModel=r,this.yAxisState=s,this.canvasBoundsContainer=i,this.yAxisColors=a,this.customLabels=o}draw(){const e=this.yAxisLabelsCanvasModel.ctx,t=this.backgroundCanvasModel.ctx,r=this.canvasBoundsContainer.getBounds(Y.PANE_UUID_Y_AXIS(ae)),s=this.canvasBoundsContainer.getBounds(Y.ALL_PANES);this.drawHighlightedBackgroundBetweenLabels(),this.labelsProvider().forEach(a=>{var o;const l=(o=a.bounds)!=null?o:r;a.labels.forEach(c=>{var h;return _i(e,t,l,s,c,this.canvasBoundsContainer,(h=a.axisState)!=null?h:this.yAxisState,this.yAxisColors)})}),Object.values(this.customLabels).forEach(a=>_i(e,t,r,s,a,this.canvasBoundsContainer,this.yAxisState,this.yAxisColors))}drawHighlightedBackgroundBetweenLabels(){const e=this.yAxisLabelsCanvasModel.ctx,t=this.labelsProvider(),r={};t.forEach(s=>{s.labels.forEach(i=>{var a,o,l;if(i.subGroupId){const c=(a=r[i.subGroupId])!=null?a:[];if(r[i.subGroupId]=c,c.push(i),c.length===2){const h=(o=s.bounds)!=null?o:this.canvasBoundsContainer.getBounds(Y.PANE_UUID_Y_AXIS(ae));e.save(),e.fillStyle=(l=c[0].highlightColor)!=null?l:c[0].bgColor;const[v,p]=c[0].y>c[1].y?[c[1].y,c[0].y]:[c[0].y,c[1].y];ni(e,{x:h.x,y:ps(v,h)},{x:h.x+h.width-6,y:ps(p,h)}),e.restore()}}})})}getCanvasIds(){return[this.yAxisLabelsCanvasModel.canvasId]}}class hf extends te{constructor(e,t,r,s,i,a,o){super(),this.config=r,this.canvasBoundsContainer=s,this.canvasModel=i,this.chartModel=a;const l=e.valueFormatter;this.yAxisLabelsGenerator=new $i(null,a,o,l,()=>this.config.components.yAxis.type,()=>this.chartModel.getBaseLine(),r.components.yAxis.labelHeight),this.yAxisBaseLabelsModel=new Ji(o,this.yAxisLabelsGenerator,this.canvasBoundsContainer),this.addChildEntity(this.yAxisBaseLabelsModel),this.yAxisLabelsModel=new lf(t,this.chartModel,this.canvasBoundsContainer,this.config,i,()=>this.canvasBoundsContainer.updateYAxisWidths()),this.addChildEntity(this.yAxisLabelsModel),this.canvasBoundsContainer.yAxisBoundsContainer.registerYAxisWidthContributor({getLargestLabel:()=>{var c;return((c=this.yAxisLabelsGenerator.labelsCache.getLastCachedValue())!=null?c:[]).map(h=>h.text).concat(this.yAxisLabelsModel.orderedLabels.flatMap(h=>h.labels).map(h=>h.labelText)).reduce((h,v)=>v.length>h.length?v:h,"")},getYAxisIndex:()=>0,getYAxisAlign:()=>this.config.components.yAxis.align,getPaneUUID:()=>e.uuid})}doActivate(){super.doActivate(),this.addRxSubscription(Me(this.chartModel.candlesSetSubject).subscribe(()=>{this.yAxisLabelsGenerator.labelsCache.invalidate(),this.yAxisLabelsModel.updateLabels(),this.yAxisBaseLabelsModel.updateLabels(),this.canvasModel.fireDraw()}))}}class df extends te{constructor(e,t,r,s,i,a,o,l,c,h,v,p,y){super(),this.eventBus=e,this.config=t,this.canvasModel=r,this.yAxisLabelsCanvasModel=s,this.backgroundCanvasModel=i,this.chartModel=a,this.scaleModel=o,this.canvasBoundsContainer=c,this.cursorHandler=y,this.axisTypeSetSubject=new G,this.labelsColorByChartTypeMap={},this.state=t.components.yAxis;const E=new ar;this.drawer=E;const R=new Lt(this.yAxisLabelsCanvasModel);E.addDrawer(R,"YAXIS_CLEAR"),this.registerDefaultLabelColorResolver(),h.addDrawer(E,"Y_AXIS"),this.yAxisScaleHandler=new Ki(e,this.state,v,o,l,c,c.getBoundsHitTest(Y.PANE_UUID_Y_AXIS(ae)),Z=>o.autoScale(Z)),this.addChildEntity(this.yAxisScaleHandler),this.yAxisModel=new hf(p.paneComponents[ae],e,this.config,c,r,a,o),this.addChildEntity(this.yAxisModel),p.paneComponents[ae].yAxisLabelsGenerator=this.yAxisModel.yAxisLabelsGenerator;const N=new qi(t,this.state,r,()=>this.yAxisModel.yAxisBaseLabelsModel.labels,()=>c.getBounds(Y.Y_AXIS),()=>this.state.visible,a.pane.scaleModel.toY.bind(a.pane.scaleModel));E.addDrawer(N);const k=new cf(()=>this.yAxisModel.yAxisLabelsModel.orderedLabels,this.yAxisLabelsCanvasModel,this.backgroundCanvasModel,this.state,this.canvasBoundsContainer,this.config.colors.yAxis,this.yAxisModel.yAxisLabelsModel.customLabels);E.addDrawer(k);const U=new Ju(this.chartModel,this.config,this.chartModel.lastCandleLabelsByChartType,this.getLabelsColorResolver.bind(this));this.registerYAxisLabelsProvider(U,yr.MAIN),p.paneComponents[ae].mainYExtentComponent.getAxisType=()=>this.state.type,this.updateCursor()}updateCursor(){this.state.type==="percent"?this.cursorHandler.setCursorForCanvasEl(Y.PANE_UUID_Y_AXIS(ae),this.config.components.yAxis.resizeDisabledCursor):this.cursorHandler.setCursorForCanvasEl(Y.PANE_UUID_Y_AXIS(ae),this.config.components.yAxis.cursor)}updateOrderedLabels(e=!1){this.yAxisModel.yAxisLabelsModel.updateLabels(e)}doActivate(){super.doActivate()}registerDefaultLabelColorResolver(){this.registerLabelColorResolver("candle",zu),this.registerLabelColorResolver("bar",Wu),this.registerLabelColorResolver("line",Uu),this.registerLabelColorResolver("area",Xu),this.registerLabelColorResolver("scatterPlot",ju),this.registerLabelColorResolver("histogram",Vu),this.registerLabelColorResolver("baseline",Gu),this.registerLabelColorResolver("trend",ba),this.registerLabelColorResolver("hollow",ba)}registerYAxisLabelsProvider(e,t=yr.MAIN,r=Je()){return this.yAxisModel.yAxisLabelsModel.registerYAxisLabelsProvider(t,e,r),r}addSimpleYAxisLabel(e,t){this.yAxisModel.yAxisLabelsModel.customLabels[e]=t,this.canvasModel.fireDraw()}deleteSimpleYAxisLabel(e){delete this.yAxisModel.yAxisLabelsModel.customLabels[e],this.canvasModel.fireDraw()}unregisterYAxisLabelsProvider(e=yr.MAIN,t){return this.yAxisModel.yAxisLabelsModel.unregisterYAxisLabelsProvider(e,t),t}registerYAxisWidthContributor(e){this.canvasBoundsContainer.yAxisBoundsContainer.registerYAxisWidthContributor(e)}setAxisType(e){e!==this.state.type&&(this.state.type=e,this.axisTypeSetSubject.next(e),this.scaleModel.autoScale(!0),this.yAxisModel.yAxisLabelsModel.updateLabels(!0),this.updateCursor())}setYAxisAlign(e){this.state.align=e,this.canvasBoundsContainer.updateYAxisWidths(),this.eventBus.fireDraw()}setVisible(e){this.state.visible=e,this.eventBus.fireDraw()}isVisible(){return this.state.visible}setLockPriceToBarRatio(e=!1){this.scaleModel.setLockPriceToBarRatio(e)}changeLabelMode(e,t){this.state.labels.settings[e].mode=t,this.yAxisModel.yAxisLabelsModel.updateLabels()}changeLabelAppearance(e,t){this.state.labels.settings[e].type=t,this.yAxisModel.yAxisLabelsModel.updateLabels()}togglePriceScaleInverse(e){this.scaleModel.state.inverse=e,this.scaleModel.inverseY=e,this.scaleModel.scaleInversedSubject.next(e)}changeLabelsDescriptionVisibility(e){this.state.labels.descriptions=e,this.canvasModel.fireDraw()}registerLabelColorResolver(e,t){this.labelsColorByChartTypeMap[e]=t}getLabelsColorResolver(e){var t;return(t=this.labelsColorByChartTypeMap[e])!=null?t:$u}}class uf{constructor(){this.UNKNOWN_ARR=[],this.handlers={},this.muted=!1,this.unsub=(e,t)=>{const r=this.handlers[e];r!==void 0&&Ao.call(r,t)},this.add=(e,t,r)=>(t in this.handlers?e.call(this.handlers[t],r):this.handlers[t]=[r],this.unsub.bind(this,t,r)),this.on=(e,t)=>this.add(this.UNKNOWN_ARR.push,e,t),this.observe=e=>{const t=new G,r=t.next.bind(t),s=t.unsubscribe.bind(t);return this.on(e,r),t.unsubscribe=()=>{this.unsub(e,r),s()},t.asObservable()},this.onPrior=(e,t)=>this.add(this.UNKNOWN_ARR.unshift,e,t),this.off=this.unsub,this.fire=(e,...t)=>{var r;if(!this.muted){const s=(r=this.handlers[e])!=null?r:[];let i;for(i=0,s.length;i<s.length;i++)s[i].apply(null,t)}},this.fireAsync=(e,t)=>{if(!this.muted)return window.setTimeout(this.fire.bind(this,e,t),0)},this.setMuted=e=>{this.muted=e},this.clear=()=>{this.handlers={}}}fireDraw(e){this.fire(Xt,e)}}class ff extends te{constructor(e,t,r,s){super(),r.observeTouchStart().pipe(ye(i=>s.components.chart.highlightActiveCandle?i:void 0),Ve()).subscribe(i=>{i&&this.setCandleAsActive(i,e,t)})}setCandleAsActive(e,t,r){if(e.touches.length===1){const s=e.touches.item(0);if(s!==null){const i=this.getTouchXPosition(s,t),a=r.candleFromX(i);a&&r.mainCandleSeries.setActiveCandle(a)}}}getTouchXPosition(e,t){const r=t.getBoundingClientRect(),s=document.body.scrollLeft||document.documentElement.scrollLeft;return e.pageX-r.left-s}}class vf{constructor(e,t,r,s,i){this.frameElement=e,this.resizerElement=t,this.bus=r,this.canvasModels=s,this.config=i,this.previousBCR=void 0,this.animFrameId=`resize_${Je()}`,this.canvasResized=new G,this.elementResizeDetector=new ResizeObserver(()=>this.handleResize())}subscribeResize(){this.elementResizeDetector.observe(this.resizerElement)}handleResize(){sr(this.animFrameId,()=>this.fireUpdates())}fireUpdates(){const e=this.resizerElement.getBoundingClientRect(),t={x:e.x,y:e.y,width:e.width,height:e.height};this.config||(this.frameElement.style.height=this.resizerElement.clientHeight+"px"),(this.previousBCR===void 0||this.isBCRDimensionsDiffer(this.previousBCR,t))&&(this.previousBCR=t,this.canvasModels.forEach(r=>this.previousBCR&&r.updateDPR(this.previousBCR)),this.canvasResized.next(t),this.bus.fire(Qn,t),this.bus.fire(Xt))}isBCRDimensionsDiffer(e,t){return e.height!==t.height||e.width!==t.width}unsubscribeAnimationUpdate(){if(this.resizerElement)try{this.elementResizeDetector.unobserve(this.resizerElement)}catch(e){console.warn("ChartResizeHandler.ts, unsubscribeAnimationUpdate failed")}}wasResized(){return this.previousBCR!==void 0}}var gf=Array.isArray,pf=Object.getPrototypeOf,mf=Object.prototype,bf=Object.keys;function Cf(n){if(n.length===1){var e=n[0];if(gf(e))return{args:e,keys:null};if(yf(e)){var t=bf(e);return{args:t.map(function(r){return e[r]}),keys:t}}}return{args:n,keys:null}}function yf(n){return n&&typeof n=="object"&&pf(n)===mf}var wf=Array.isArray;function Sf(n,e){return wf(e)?n.apply(void 0,g([],P(e))):n(e)}function xf(n){return ye(function(e){return Sf(n,e)})}function Mf(n,e){return n.reduce(function(t,r,s){return t[r]=e[s],t},{})}function Pf(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var t=Kt(n),r=Za(n),s=Cf(n),i=s.args,a=s.keys;if(i.length===0)return qt([],t);var o=new xe(Tf(i,t,a?function(l){return Mf(a,l)}:Pt));return r?o.pipe(xf(r)):o}function Tf(n,e,t){return t===void 0&&(t=Pt),function(r){Pa(e,function(){for(var s=n.length,i=new Array(s),a=s,o=s,l=function(h){Pa(e,function(){var v=qt(n[h],e),p=!1;v.subscribe(We(r,function(y){i[h]=y,p||(p=!0,o--),o||r.next(t(i.slice()))},function(){--a||r.complete()}))},r)},c=0;c<s;c++)l(c)},r)}}function Pa(n,e,t){n?qe(t,n,e):e()}class _f extends te{constructor(e,t){super(),this.canvasInputListener=e,this.canvasBoundsContainer=t,this.panesSubscriptions={},this.crossSubject=new lt(null)}doActivate(){super.doActivate()}fireCrossClose(){this.crossSubject.next(null)}unsubscribeMouseOver(e){var t;(t=this.panesSubscriptions[e])==null||t.unsubscribe()}subscribeMouseOver(e,t,r){const s=t.map(a=>this.canvasBoundsContainer.getBoundsHitTest(a,r)),i=(a,o)=>s.some(l=>l(a,o));return this.subscribeMouseOverHT(e,i)}subscribeMouseOverHT(e,t){const r=this.canvasInputListener.observeMouseMoveDocument(),s=this.canvasInputListener.observeMouseEnter(t);let i=!1;const a=Pf([r,s]).pipe(he(([,o])=>!i||i&&o)).subscribe(([o,l])=>{if(l){const c=[o.x,o.y,e];this.crossSubject.next(c),i=!1}else this.crossSubject.next(null),i=!0});return this.panesSubscriptions[e]=a,()=>a.unsubscribe()}}class Af{constructor(e,t,r,s){this.visualCandle=e,this.price=t,this.priceFormatter=r,this.toY=s}get high(){return this.visualCandle.high}get low(){return this.visualCandle.low}get open(){return this.visualCandle.open}get close(){return this.visualCandle.close}get volume(){return this.visualCandle.candle.volume}get openY(){return this.toY(this.open)}get closeY(){return this.toY(this.close)}get highY(){return this.toY(this.high)}get lowY(){return this.toY(this.low)}get openFormatted(){return this.priceFormatter(this.open)}get closeFormatted(){return this.priceFormatter(this.close)}get highFormatted(){return this.priceFormatter(this.high)}get lowFormatted(){return this.priceFormatter(this.low)}get closestOHLCY(){return this.toY([this.close,this.open,this.high,this.low].sort((e,t)=>Math.abs(e-this.price)-Math.abs(t-this.price))[0])}}class Df{constructor(e){this.chartModel=e}getData(e){const{x:t,y:r}=e,i=this.chartModel.candleFromX(t).idx||0,a=this.chartModel.getVisualCandle(i),o=this.chartModel.priceFromY(r);return a&&new Af(a,o,this.chartModel.pane.regularFormatter,this.chartModel.toY)}}class Ef{constructor(e){this.chartModel=e}getData(e){const{x:t}=e,s=this.chartModel.candleFromX(t).idx||0;return this.chartModel.candleSeries.map(a=>{const o=a.dataPoints[s],l=this.chartModel.pane.regularFormatter(o==null?void 0:o.close);return{instrument:a.instrument.symbol,price:l,id:a.id}})}}var Lf=Object.defineProperty,If=Object.defineProperties,Of=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Bf=Object.prototype.hasOwnProperty,Rf=Object.prototype.propertyIsEnumerable,_a=(n,e,t)=>e in n?Lf(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,$t=(n,e)=>{for(var t in e||(e={}))Bf.call(e,t)&&_a(n,t,e[t]);if(Ta)for(var t of Ta(e))Rf.call(e,t)&&_a(n,t,e[t]);return n},wr=(n,e)=>If(n,Of(e));class Ff extends te{constructor(e,t,r,s,i,a,o,l,c){super(),this.crossEventProducer=e,this.scaleModel=t,this.config=r,this.chartModel=s,this.canvasInputListener=i,this.canvasBoundsContainer=a,this.paneManager=o,this.timeZoneModel=l,this.formatterFactory=c,this.hoverSubject=new lt(null),this.longTouchActivated=!1,this.xFormatter=()=>"";const h=new Df(this.chartModel),v=new Ef(this.chartModel);this.hoverProducerParts={candleHover:h,compareSeriesHover:v}}get hover(){return this.hoverSubject.getValue()}doActivate(){super.doActivate(),this.addRxSubscription(this.chartModel.candlesSetSubject.subscribe(()=>{const t=this.chartModel.getLastVisualCandle();t&&this.createAndFireHoverFromCandle(t)})),this.addRxSubscription(this.chartModel.candlesUpdatedSubject.subscribe(()=>{const t=this.chartModel.getLastVisualCandle();this.hover!==null&&t!==void 0&&t.candle.timestamp===this.hover.timestamp&&this.updateHover(t)})),this.addRxSubscription(this.crossEventProducer.crossSubject.subscribe(t=>{t===null?this.hoverSubject.next(null):this.createAndFireHover(t)})),this.addRxSubscription(this.scaleModel.xChanged.subscribe(()=>this.fireLastCross())),this.addRxSubscription(this.canvasInputListener.observeTouchStart().subscribe(t=>{const r=t.touches[0].clientX,s=t.touches[0].clientY-this.canvasBoundsContainer.canvasOnPageLocation.y;this.chartModel.candleFromX(r,!0)&&this.createAndFireHover([r,s,""])}));const e=this.canvasBoundsContainer.getBoundsHitTest(Y.ALL_PANES);this.addRxSubscription(this.canvasInputListener.observeLongTouch(e).subscribe(t=>{this.paneManager.chartPanComponent.deactivatePanHandlers(),this.longTouchActivated=!0;const r=t.touches[0].clientX,s=t.touches[0].clientY-this.canvasBoundsContainer.canvasOnPageLocation.y;this.createAndFireHover([r,s,""])})),this.addRxSubscription(this.canvasInputListener.observeTouchEndDocument().subscribe(()=>{this.paneManager.chartPanComponent.activateChartPanHandlers(),this.longTouchActivated&&(this.longTouchActivated=!1,this.crossEventProducer.fireCrossClose())})),this.addRxSubscription(Me(this.chartModel.candlesSetSubject,this.timeZoneModel.observeTimeZoneChanged()).subscribe(()=>this.recalculateCrossToolXFormatter()))}recalculateCrossToolXFormatter(){const e=this.config.components.crossTool.xAxisLabelFormat;this.xFormatter=Di(e,this.chartModel.getPeriod(),this.formatterFactory)}createHoverFromCandle(e){const t=e.xCenter(this.chartModel.scaleModel),r=this.chartModel.scaleModel.toY(e.close);return this.createHover(t,r,ae)}createHover(e,t,r){if(this.chartModel.getCandles().length===0)return;const i=this.chartModel.candleFromX(e,!0).timestamp,a={x:e,y:t,timestamp:i,timeFormatted:this.xFormatter(i),paneId:r},o=Object.entries(this.hoverProducerParts).reduce((l,c)=>wr($t({},l),{[c[0]]:c[1].getData(a)}),{});return $t($t({},a),o)}createAndFireHoverFromCandle(e){const t=this.createHoverFromCandle(e);this.fireHover(t)}updateHover(e){const t=this.createHoverFromCandle(e);if(this.hover&&t){const r=wr($t({},t),{x:this.hover.x,y:this.hover.y});this.fireHover(r)}}createAndFireHover([e,t,r]){const s=this.createHover(e,t,r);this.fireHover(s)}fireHover(e){var t;if(e){if(Hn()&&this.config.components.crossTool.type!=="none"){const r=(t=e.candleHover)==null?void 0:t.visualCandle.candle;r&&this.chartModel.mainCandleSeries.setActiveCandle(r)}this.hoverSubject.next(e)}else this.crossEventProducer.fireCrossClose()}fireLastCross(){const e=this.crossEventProducer.crossSubject.getValue();e&&this.createAndFireHover(e)}registerHoverProducerPart(e,t){this.hoverProducerParts=wr($t({},this.hoverProducerParts),{[e]:t})}unregisterHoverProducerPart(e){delete this.hoverProducerParts[e]}}function Te(n,e,t,r){return n.addEventListener(t,e,r),function(){n.removeEventListener(t,e,r)}}var Yf=Object.defineProperty,Aa=Object.getOwnPropertySymbols,Hf=Object.prototype.hasOwnProperty,Nf=Object.prototype.propertyIsEnumerable,Da=(n,e,t)=>e in n?Yf(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,kf=(n,e)=>{for(var t in e||(e={}))Hf.call(e,t)&&Da(n,t,e[t]);if(Aa)for(var t of Aa(e))Nf.call(e,t)&&Da(n,t,e[t]);return n},Wf=(n=>(n[n.left=0]="left",n[n.middle=1]="middle",n[n.right=2]="right",n))(Wf||{});const St=class extends te{constructor(n,e){super(),this.eventBus=n,this.element=e,this.xDragStartSubject=new G,this.xDragSubject=new G,this.xDragTickSubject=new G,this.xDragEndSubject=new G,this.yDragStartSubject=new G,this.yDragSubject=new G,this.yDragTickSubject=new G,this.yDragEndSubject=new G,this.mouseMoveSubject=new G,this.mouseMoveDocumentSubject=new G,this.clickSubject=new G,this.clickDocumentSubject=new G,this.dbClickSubject=new G,this.mouseDownSubject=new G,this.mouseUpSubject=new G,this.mouseUpDocumentSubject=new G,this.wheelSubject=new G,this.touchStartSubject=new G,this.touchMoveSubject=new G,this.touchEndSubject=new G,this.touchCancelSubject=new G,this.contextMenuSubject=new G,this.longTouchSubject=new G,this.pinchSubject=new G,this.scrollGestureSubject=new G,this.mouseLeavesCanvasSubject=new G,this.dragStartPoint={x:0,y:0},this.prevDragPoint={x:0,y:0},this.currentPoint={x:0,y:0},this.currentPointDocument={x:0,y:0},this.dragging=!1,this.canvasBounds={x:0,y:0,pageX:0,pageY:0,width:0,height:0},this.documentDragListeners=[],this.dragProcessListener=()=>{this.xDragSubject.next(this.currentPoint.x-this.dragStartPoint.x),this.yDragSubject.next(this.currentPoint.y-this.dragStartPoint.y),this.xDragTickSubject.next(this.currentPoint.x-this.prevDragPoint.x),this.yDragTickSubject.next(this.currentPoint.y-this.prevDragPoint.y),this.prevDragPoint.x=this.currentPoint.x,this.prevDragPoint.y=this.currentPoint.y},this.dragStartListener=t=>{this.isDraggable(t)&&(this.updateCurrentPoints(t),this.dragging=!0,this.dragStartEvent=t,this.documentDragListeners.forEach(r=>r()),this.dragStartPoint=St.copyPoint(this.currentPoint),this.xDragStartSubject.next(this.dragStartPoint),this.yDragStartSubject.next(this.dragStartPoint),this.prevDragPoint=kf({},this.dragStartPoint),St.DRAG_EVENTS.forEach(r=>{document.addEventListener(r,this.dragProcessListener,!0);const s=document.removeEventListener.bind(document,r,this.dragProcessListener,!0);this.documentDragListeners.push(s),this.addSubscription(s)}),this.dragProcessListener())},this.dragListener=()=>this.mouseMoveDocumentSubject.next(this.currentPoint),this.updateElementOffsetListener=()=>this.mouseMoveSubject.next(this.currentPoint),this.dragEndListener=()=>{this.dragging=!1,this.documentDragListeners.forEach(t=>t()),this.xDragEndSubject.next(),this.yDragEndSubject.next()},this.clickHandler=()=>this.clickSubject.next(this.currentPoint),this.updateCurrentPoints=t=>{this.updateCurrentDocumentPoint(t),this.updateCurrentMousePoint(t)}}isDraggable(n){return n instanceof MouseEvent?n.button===0:n instanceof TouchEvent}startDragging(n){this.updateCurrentPoints(n),this.dragStartListener(n)}movePointer(n){this.updateCurrentPoints(n),this.dragListener(),this.updateElementOffsetListener(),this.dragging&&this.dragProcessListener()}stopDragging(){this.dragEndListener()}fixTextSelection(){const n=e=>(e.preventDefault(),!1);this.element.addEventListener("selectstart",n,!1),this.addSubscription(this.element.removeEventListener.bind(this.element,"selectstart",n,!1))}doActivate(){this.fixTextSelection(),this.documentDragListeners=[],St.DRAG_START_EVENTS.forEach(s=>{this.element.addEventListener(s,this.dragStartListener),this.addSubscription(()=>this.element.removeEventListener(s,this.dragStartListener))}),this.trackMousePosition(),St.DRAG_EVENTS.forEach(s=>{document.addEventListener(s,this.dragListener),this.addSubscription(document.removeEventListener.bind(document,s,this.dragListener)),this.element.addEventListener(s,this.updateElementOffsetListener),this.addSubscription(this.element.removeEventListener.bind(this.element,s,this.updateElementOffsetListener))}),St.DRAG_END_EVENTS.forEach(s=>{document.addEventListener(s,this.dragEndListener),this.addSubscription(document.removeEventListener.bind(document,s,this.dragEndListener))}),this.addSubscription(Te(this.element,this.clickHandler,"click"));const n=s=>{this.clickDocumentSubject.next(s)};this.addSubscription(Te(document,n,"click"));const e=Wi();if(e==="apple"||e==="mobile"){const i=(()=>{let a=null;return()=>{a?(this.dbClickSubject.next(this.currentPoint),clearTimeout(a),a=null):a=window.setTimeout(()=>{a=null},250)}})();this.addSubscription(Te(this.element,i,"touchend"))}const t=(s,i=500,a=2)=>{s.preventDefault();let o=null;const l={x:s.touches[0].clientX,y:s.touches[0].clientY};let c={x:0,y:0};const h=p=>{c={x:p.touches[0].clientX,y:p.touches[0].clientY},(Math.sqrt(Math.pow(c.x-l.x,2)+Math.pow(c.y-l.y,2))>a||p.touches.length>1)&&v()},v=()=>{o&&(clearTimeout(o),o=null),this.element.removeEventListener("touchend",v),this.element.removeEventListener("touchmove",h)};o=setTimeout(()=>this.longTouchSubject.next(s),i),this.element.addEventListener("touchmove",h,{passive:!0}),this.element.addEventListener("touchend",v)};this.addSubscription(Te(this.element,s=>t(s),"touchstart")),this.addSubscription(Te(this.element,()=>this.dbClickSubject.next(this.currentPoint),"dblclick")),this.addSubscription(Te(this.element,s=>this.touchStartSubject.next(s),"touchstart")),this.addSubscription(Te(this.element,s=>this.touchMoveSubject.next(s),"touchmove",!0)),this.addSubscription(Te(this.element,s=>this.touchEndSubject.next(s),"touchend")),this.addSubscription(Te(this.element,s=>this.touchCancelSubject.next(s),"touchcancel")),this.addSubscription(Te(this.element,s=>{s.ctrlKey?this.pinchSubject.next(s):zi(s)?this.scrollGestureSubject.next(s):this.wheelSubject.next(s),s.preventDefault()},"wheel")),this.addSubscription(Te(this.element,s=>this.contextMenuSubject.next(s),"contextmenu")),this.addSubscription(Te(this.element,()=>this.mouseDownSubject.next(this.currentPoint),"mousedown")),this.addSubscription(Te(this.element,()=>this.mouseUpSubject.next(this.currentPoint),"mouseup")),this.addSubscription(Te(document,()=>this.mouseUpDocumentSubject.next(this.currentPoint),"mouseup")),this.addRxSubscription(this.eventBus.observe(Qn).subscribe(()=>{const s=this.element.getBoundingClientRect();this.canvasBounds.x=s.left,this.canvasBounds.y=s.top,this.canvasBounds.width=s.width,this.canvasBounds.height=s.height}));const r=()=>{this.mouseLeavesCanvasSubject.next(!0)};this.element.addEventListener("mouseleave",r,!1),this.addSubscription(this.element.removeEventListener.bind(this.element,"mouseleave",r,!1))}getCurrentMousePoint(){return this.currentPoint}trackMousePosition(){St.DRAG_EVENTS.forEach(n=>{document.addEventListener(n,this.updateCurrentPoints,!0),this.addSubscription(()=>document.removeEventListener(n,this.updateCurrentPoints,!0))})}updateCurrentDocumentPoint(n){"pageX"in n?this.currentPointDocument.x=n.pageX:n.touches!==void 0&&(this.currentPointDocument.x=n.touches[0].pageX),"pageY"in n?this.currentPointDocument.y=n.pageY:n.touches!==void 0&&(this.currentPointDocument.y=n.touches[0].pageY)}updateCurrentMousePoint(n){const e=this.element.getBoundingClientRect();"clientX"in n?this.currentPoint.x=n.clientX-e.left:n.touches!==void 0&&(this.currentPoint.x=n.touches[0].clientX-e.left),"clientY"in n?this.currentPoint.y=n.clientY-e.top:n.touches!==void 0&&(this.currentPoint.y=n.touches[0].clientY-e.top)}static copyPoint(n){return{x:n.x,y:n.y}}observeMouseMove(n=()=>!0){return this.mouseMoveSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseMoveNoDrag(){return this.mouseMoveSubject.asObservable().pipe(he(()=>!this.dragging))}observeMouseMoveDocument(n=()=>!0){return this.mouseMoveDocumentSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseMoveDocumentAnyElement(n=()=>!0){return this.mouseMoveDocumentSubject.asObservable().pipe(he(()=>n(this.currentPointDocument.x,this.currentPointDocument.y)),ye(()=>this.currentPointDocument))}observeClickOnDocument(){return this.clickDocumentSubject.asObservable()}observeXDragStart(n=()=>!0){return this.xDragStartSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeXDrag(n=()=>!0){return this.xDragSubject.pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeXDragEnd(n=()=>!0){return this.xDragEndSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeXDragTick(){return this.xDragTickSubject.asObservable()}observeYDragStart(n=()=>!0){return this.yDragStartSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeYDrag(n=()=>!0){return this.yDragSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeYDragEnd(n=()=>!0){return this.yDragEndSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeYDragTick(){return this.yDragTickSubject.asObservable()}observeMouseEnter(n=()=>!0,e=!1){const t=this.mouseMoveSubject.asObservable().pipe(he(()=>!(e&&this.dragging)),ye(()=>n(this.currentPoint.x,this.currentPoint.y))),r=this.observeMouseLeavesCanvas().pipe(ye(()=>!1));return Me(t,r).pipe(Ve())}observeMouseLeavesCanvas(){return this.mouseLeavesCanvasSubject.asObservable()}observeClick(n=()=>!0){return this.clickSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeDbClick(n=()=>!0){return this.dbClickSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeWheel(n=()=>!0){return this.wheelSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observePinch(n=()=>!0){return this.pinchSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeScrollGesture(){return this.scrollGestureSubject.asObservable()}observeTouchStart(n=()=>!0){return this.touchStartSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeTouchMove(n=()=>!0){return this.touchMoveSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeTouchEndDocument(){return this.touchEndSubject.asObservable()}observeTouchCancelDocument(){return this.touchCancelSubject.asObservable()}observeMouseDown(n=()=>!0){return this.mouseDownSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseUp(n=()=>!0){return this.mouseUpSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseUpDocument(n=()=>!0){return this.mouseUpDocumentSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeContextMenu(n=()=>!0){return this.contextMenuSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)),fr(e=>e.preventDefault()))}observeLongTouch(n=()=>!0){return this.longTouchSubject.asObservable().pipe(he(()=>n(this.currentPoint.x,this.currentPoint.y)),fr(e=>e.preventDefault()))}getCurrentPoint(){return this.currentPoint}};let xn=St;xn.DRAG_START_EVENTS=["mousedown","touchstart"],xn.DRAG_EVENTS=["mousemove","touchmove"],xn.DRAG_END_EVENTS=["mouseup","touchend","touchcancel"];var Uf=_e(722),zf=function(n){I(e,n);function e(t,r,s){t===void 0&&(t=1/0),r===void 0&&(r=1/0),s===void 0&&(s=jn);var i=n.call(this)||this;return i._bufferSize=t,i._windowTime=r,i._timestampProvider=s,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=r===1/0,i._bufferSize=Math.max(1,t),i._windowTime=Math.max(1,r),i}return e.prototype.next=function(t){var r=this,s=r.isStopped,i=r._buffer,a=r._infiniteTimeWindow,o=r._timestampProvider,l=r._windowTime;s||(i.push(t),!a&&i.push(o.now()+l)),this._trimBuffer(),n.prototype.next.call(this,t)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var r=this._innerSubscribe(t),s=this,i=s._infiniteTimeWindow,a=s._buffer,o=a.slice(),l=0;l<o.length&&!t.closed;l+=i?1:2)t.next(o[l]);return this._checkFinalizedStatuses(t),r},e.prototype._trimBuffer=function(){var t=this,r=t._bufferSize,s=t._timestampProvider,i=t._buffer,a=t._infiniteTimeWindow,o=(a?1:2)*r;if(r<1/0&&o<i.length&&i.splice(0,i.length-o),!a){for(var l=s.now(),c=0,h=1;h<i.length&&i[h]<=l;h+=2)c=h;c&&i.splice(0,c+1)}},e}(G);const Xf=Symbol("MEMOIZE_CLEAR_FUNCTION");function jf(n){const e={},t=function(){const r=Array.prototype.slice.call(arguments),s=Ea(r);return typeof e[s]=="undefined"&&(e[s]=n.apply(this,r)),e[s]}.bind(this);return t[Xf]=function(){const r=Array.prototype.slice.call(arguments),s=Ea(r);delete e[s]},t}const Iv=n=>e=>{let t=!1,r,s=[];const i=a=>{r=e(...a),t=!0,s=a};return(...a)=>{const o=a.length;if(t&&o===0)return r;if(!t||s.length!==o)return i(a),r;for(let l=0;l<o;l++)if(!n.equals(s[l],a[l]))return i(a),r;return r}};function Ea(n){if(!n.every(t=>typeof t=="number"||typeof t=="string"||typeof t=="boolean"))throw Error("Arguments to memoized function can only be strings or numbers");return JSON.stringify(n)}const La=jf(Uf.getTimezoneOffset),Vf=(n,e)=>new Date(e).getTimezoneOffset()*60*1e3+La(n,e);class Gf{constructor(e){this.config=e,this.timeZoneChangedSubject=new zf,this.currentTzOffset=t=>this.getOffset(this.config.timezone,t),this.formatterCache={},this.getOffset=(t,r)=>Vf(t,r),this.dateTimeFormatterFactory=this.initFormatterFactory(this.config.dateFormatter)}setTimeZone(e){this.config.timezone=e,this.formatterCache={},this.timeZoneChangedSubject.next(e)}observeTimeZoneChanged(){return this.timeZoneChangedSubject.asObservable()}initFormatterFactory(e){let t;if(e&&typeof e=="function")t=e;else if(e&&e.createFormatterFunction&&typeof e.createFormatterFunction=="function"){const r=e.createFormatterFunction;t=s=>r(s).bind(e)}else t=Dh(this.config,this.tzOffset);return t}getFormatterFactory(){return this.dateTimeFormatterFactory}getDateTimeFormatter(e){return this.formatterCache[e]===void 0&&(this.formatterCache[e]=this.dateTimeFormatterFactory(e)),this.formatterCache[e]}tzOffset(e){const t=s=>-new Date(s).getTimezoneOffset()*$f;let r;return e?r=s=>La(e,s):r=t,s=>new Date(+s+r(s)-t(s))}}const $f=60*1e3;class Zt{constructor(e,t={}){this.components=[],this.chartComponents=[],this.userInputListenerComponents=[],this.canvasModels=[];var r,s;this.parentElement=e;const i=t;Uo(i),this.config=i;const a=dl(i);e.innerHTML="",e.appendChild(a.content),this.id=(r=e.getAttribute("data-id"))!=null?r:"",i.fixedSize&&(e.style.width=i.fixedSize.width+"px",e.style.height=i.fixedSize.height+"px");const o=new Gf(i);this.timeZoneModel=o;const l=this.timeZoneModel.getFormatterFactory(),c=ul(e);this.elements=c;const h=new uf;this.bus=h;const v=new vf(e,(s=c.chartResizer)!=null?s:e,h,this.canvasModels,i);this.chartResizeHandler=v,v.subscribeResize(),this.components.push(v.unsubscribeAnimationUpdate.bind(v));const p=new Gc(h,v);this.drawingManager=p;const y=jc(h,c.mainCanvas,c.chartResizer,this.config.components.chart.type,this.config,p,this.canvasModels);this.mainCanvasModel=y;const E=wt(h,c.overDataSeriesCanvas,i,p,this.canvasModels,c.chartResizer);this.overSeriesCanvasModel=E;const R=new Lt(E);p.addDrawer(R,"OVER_SERIES_CLEAR"),this.dataSeriesCanvasModel=wt(h,c.dataSeriesCanvas,i,p,this.canvasModels,c.chartResizer);const N=new Lt(this.dataSeriesCanvasModel);p.addDrawer(N,"SERIES_CLEAR");const k=wt(h,c.yAxisLabelsCanvas,i,p,this.canvasModels,c.chartResizer),U=new Xn(i,h,y,l,v);this.canvasBoundsContainer=U;const Z=c.mainCanvas.parentElement;if(Z===null)throw new Error("Couldn't get main canvas parent");const K=new xn(h,Z);this.canvasInputListener=K,this.chartComponents.push(this.canvasInputListener);const q=new Nh(h,c.hitTestCanvas,K,U,p,i,this.canvasModels,c.chartResizer);this.hitTestCanvasModel=q;const $=new Lt(q);p.addDrawer($,"HIT_TEST_CLEAR");const J=new Co(h);this.canvasAnimation=J;const ne=new ei(i,()=>U.getBounds(Y.CHART),J);this.scaleModel=ne;const oe=wt(h,c.backgroundCanvas,i,p,this.canvasModels,c.chartResizer,{willReadFrequently:!0});this.backgroundCanvasModel=oe,this.cursorHandler=new ll(c.canvasArea,K,U,q),this.chartComponents.push(this.cursorHandler),this.crossEventProducer=new _f(K,U),this.chartComponents.push(this.crossEventProducer);const le=new Yl("candle"),re=new wd(h,ne,U,i,J,K,Z,le);this.chartPanComponent=re,this.chartComponents.push(re),this.userInputListenerComponents.push(re.chartAreaPanHandler);const ce=new Yd(le,this.userInputListenerComponents,h,ne,U,i,J,K,p,this.dataSeriesCanvasModel,this.cursorHandler,this.crossEventProducer,re,y);this.paneManager=ce,this.chartComponents.push(ce),this.chartModel=new ph(le,ce,h,this.dataSeriesCanvasModel,i,ne,l,Z,U,v);const fe=new rh(this.chartModel,this.dataSeriesCanvasModel,i,ne,U,p,q,K,oe,re,ce,this.cursorHandler);this.chartComponents.push(fe),this.chartComponent=fe;const de=this.chartComponent.chartModel;this.chartModel=de,this.canvasBoundsContainer.setMainCandleSeries(this.chartModel.mainCandleSeries),q.addSubscriber(ce.hitTestController),this.xAxisComponent=new Nu(h,i,y,fe,ne,U,K,v,this.drawingManager,o,re,this.cursorHandler,oe),this.chartComponents.push(this.xAxisComponent),this.userInputListenerComponents.push(this.xAxisComponent.xAxisScaleHandler);const ue=new Lt(y);p.addDrawer(ue,"MAIN_CLEAR");const pe=new ff(Z,de,K,i);this.chartComponents.push(pe),this.watermarkComponent=new eu(ce,de,h,i,U,E,p),this.chartComponents.push(this.watermarkComponent);const me=wt(h,c.crossToolCanvas,i,p,this.canvasModels,c.chartResizer);this.highlightsComponent=new sd(h,i,de,y,U,p),this.chartComponents.push(this.highlightsComponent),i.useUTCTimeOverride&&i.dateFormatter&&!i.dateFormatter.utcTimeOverride&&(i.dateFormatter.utcTimeOverride=this.createUTCTimeOverrideConfig(de)),this.navigationMapComponent=new fd(h,de,y,i,K,U,p,l,re,this.cursorHandler),this.chartComponents.push(this.navigationMapComponent),this.userInputListenerComponents.push(this.navigationMapComponent.navigationMapMoveHandler);const Fe=new qh(i,this.dataSeriesCanvasModel,de,U,p);this.chartComponents.push(Fe),this.yAxisComponent=new df(h,i,y,k,oe,de,ne,this.canvasInputListener,U,this.drawingManager,re,ce,this.cursorHandler),this.chartComponents.push(this.yAxisComponent),this.userInputListenerComponents.push(this.yAxisComponent.yAxisScaleHandler),this.volumesComponent=new $d(this.dataSeriesCanvasModel,fe,ne,U,p,i,ce,this.yAxisComponent),this.chartComponents.push(this.volumesComponent);const Ye=new Ri(y,ne,i,"GRID",p,()=>this.canvasBoundsContainer.getBounds(Y.ALL_PANES),()=>this.canvasBoundsContainer.getBounds(Y.PANE_UUID(ae)),()=>this.xAxisComponent.xAxisLabelsGenerator.labels,()=>this.yAxisComponent.yAxisModel.yAxisBaseLabelsModel.labels,()=>this.chartModel.toY(this.chartModel.getBaseLine()),()=>i.components.grid.visible);this.chartComponents.push(Ye),this.hoverProducer=new Ff(this.crossEventProducer,ne,i,de,K,this.canvasBoundsContainer,this.paneManager,o,l),this.chartComponents.push(this.hoverProducer),this.crossToolComponent=new _h(i,me,U,p,ce,this.crossEventProducer,this.hoverProducer),this.chartComponents.push(this.crossToolComponent);const He=wt(h,c.snapshotCanvas,i,p,this.canvasModels,c.chartResizer),ft=new Hd(this.elements,He);this.snapshotComponent=ft,this.chartComponents.push(ft);const Mn=new $h(i,E,q,de,U,p,l,this.cursorHandler,oe);this.eventsComponent=Mn,this.chartComponents.push(Mn),this.chartComponents.forEach(nv=>nv.activate()),this.enableUserControls(),p.reorderDrawers(i.drawingOrder),this.clearer=So(this.components)}createUTCTimeOverrideConfig(e){const t=new RegExp("HH|H|mm|m|s|ss|sss|SSS");return{pattern:"MM/dd/YY",test:r=>t.test(r)&&(e.getPeriod()||0)>=86400}}static mergeConfig(e,t){for(const r in t)r in e?typeof e[r]=="object"&&Zt.mergeConfig(e[r],t[r]):e[r]=t[r];return e}getConfig(){return this.config}setRtl(e){this.config.rtl=e,this.bus.fire(Xt)}setChartType(e){this.chartComponent.setChartType(e)}disableUserControls(){this.userInputListenerComponents.forEach(e=>e.deactivate()),this.hitTestCanvasModel.disableUserControls()}enableUserControls(){this.userInputListenerComponents.forEach(e=>e.activate()),this.hitTestCanvasModel.enableUserControls()}setGridConfig(e){var t,r,s,i,a;const o=this.config.components.grid;o.visible=(t=e.visible)!=null?t:!1,o.dash=(r=e.dash)!=null?r:[0,0],o.width=(s=e.width)!=null?s:1,o.color=(i=e.color)!=null?i:"#FFFFFF",this.config.colors.chartAreaTheme.gridColor=(a=e.color)!=null?a:"#FFFFFF",this.redraw()}setGridVisible(e){this.config.components&&this.config.components.grid&&(this.config.components.grid.visible=e,this.redraw())}setGridVertical(e){this.config.components.grid.vertical=e,this.redraw()}setGridHorizontal(e){this.config.components.grid.horizontal=e,this.redraw()}deactivate(){this.clearer(),this.disableUserControls(),this.chartComponents.forEach(e=>e.deactivate())}redraw(){this.bus.fireDraw()}getOffsets(){return this.config.components&&this.config.components.offsets}showSeparateVolumes(e=!1){this.volumesComponent&&(this.volumesComponent.setShowVolumesSeparatly(e),this.canvasBoundsContainer.updateYAxisWidths())}setAutoScale(e=!0){this.scaleModel.autoScale(e)}setShowCandleBorders(e=!0){this.config.components&&this.config.components.chart&&(this.config.components.chart.showCandlesBorder=e,this.redraw())}valueToY(e){return this.chartModel.toY(e)}setHighLowVisible(e=!0){this.config.components&&this.config.components.highLow&&(this.config.components.highLow.visible=e,this.redraw())}setCrossToolVisible(e="cross-and-labels"){this.config.components&&this.config.components.crossTool&&(this.config.components.crossTool.type=e,this.redraw())}setHighlightsVisible(e=!0){var t;(t=this.config.components)!=null&&t.highlights&&(this.config.components.highlights.visible=e,this.redraw())}setHighlightsData(e){this.highlightsComponent.setHighlights(e)}setColors(e){Ge(this.config.colors,e,{addIfMissing:!0,overrideExisting:!0}),this.redraw()}addMouseMoveOnChartElementHandler(e,t){const r=this.canvasBoundsContainer.getBoundsHitTest(e),s=this.canvasInputListener.observeMouseMove(r).subscribe(t);return()=>s.unsubscribe()}addMouseEnterOnChartElementHandler(e,t,r=!1){const s=this.canvasBoundsContainer.getBoundsHitTest(e),i=this.canvasInputListener.observeMouseEnter(s,r).subscribe(t);return()=>i.unsubscribe()}addClickOnChartElementHandler(e,t){const r=this.canvasBoundsContainer.getBoundsHitTest(e),s=this.canvasInputListener.observeClick(r).subscribe(t);return()=>s.unsubscribe()}addDragEventsListener(e,t){const r=this.canvasBoundsContainer.getBoundsHitTest(e),s=Me(this.canvasInputListener.observeYDrag(r),this.canvasInputListener.observeXDrag(r)).subscribe(t);return()=>s.unsubscribe()}destroy(){this.bus.setMuted(!0),this.chartComponents.forEach(e=>e.disable()),this.parentElement.childNodes.forEach(e=>e.remove()),this.parentElement.style.width="",this.parentElement.style.height=""}registerComponent(e,t){const r=e(this);this.components.push(r),t&&t(r),r.activate()}registerPaneFormatters(e,t){var r;(r=this.paneManager.paneComponents[e])==null||r.setPaneValueFormatters(t)}}var Zf=Object.defineProperty,Kf=Object.defineProperties,qf=Object.getOwnPropertyDescriptors,Ia=Object.getOwnPropertySymbols,Jf=Object.prototype.hasOwnProperty,Qf=Object.prototype.propertyIsEnumerable,Oa=(n,e,t)=>e in n?Zf(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ev=(n,e)=>{for(var t in e||(e={}))Jf.call(e,t)&&Oa(n,t,e[t]);if(Ia)for(var t of Ia(e))Qf.call(e,t)&&Oa(n,t,e[t]);return n},tv=(n,e)=>Kf(n,qf(e));const Ba=(n,e={})=>new Zt(n,e);window.DXChart=tv(ev({},window.DXChart),{ChartBootstrap:Zt,createChart:Ba})})(),rv=Pn})();})();
23
+ `;function cl(n){const t=document.createElement("template");return t.innerHTML=ll(n.devexpertsPromoLink),t}function hl(n){const t={},e=Array.from(n.querySelectorAll("[data-element]"));if(e.length!==0&&e.forEach(s=>{var r;t[(r=s.getAttribute("data-element"))!=null?r:""]=s}),ol(t))return t;throw new Error("Some chart elements are missing")}function dl(n){if(n.length>1){const t=n.reduce((r,i,a)=>{if(a!==n.length-1){const o=n[a+1].timestamp-i.timestamp;r[o]?r[o]++:r[o]=1}return r},{});let e=0,s;for(const r of Object.keys(t)){const i=parseInt(r,10),a=t[i];a>e&&i>0&&(e=a,s=i)}if(s)return s}}const ke=(n,t,e,s=1e3)=>{var r,i,a,o;const l=(i=(r=He(e))==null?void 0:r.timestamp)!=null?i:0,c=(o=(a=Ft(e))==null?void 0:a.timestamp)!=null?o:0;return n>c?t?{index:e.length-1+Math.ceil((n-c)/s),exact:!0}:{index:e.length-1,exact:!0}:n<l?t?{index:gt((n-l)/s),exact:!0}:{index:-1,exact:!0}:de(e,n,h=>h.timestamp)},Vn=1;function nn(n,t){return t===n?"none":t>n?"up":"down"}function ul(n,t){return t>n?"up":"down"}function fl(n,t,e=!1){const{expansion:s,impVolatility:r,vwap:i,volume:a,timestamp:o}=n;let l=n.hi,c=n.lo,h=n.open;const v=n.close;e&&(l=v,c=v,h=v);let p=n.idx;return t!==void 0&&(p=t),{hi:l,lo:c,open:h,close:v,timestamp:o,volume:a,expansion:s,idx:p,impVolatility:r,vwap:i}}const wr={color:"#FF00FF",lineWidth:1,hoveredLineWidth:2},Sr={paintConfig:[wr],type:"LINEAR",highLowActive:!0,visible:!0,labelLastValue:"viewport",labelMode:"label",labelAppearanceType:"badge"};var gl=Object.defineProperty,xr=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,ml=Object.prototype.propertyIsEnumerable,Pr=(n,t,e)=>t in n?gl(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,pl=(n,t)=>{for(var e in t||(t={}))vl.call(t,e)&&Pr(n,e,t[e]);if(xr)for(var e of xr(t))ml.call(t,e)&&Pr(n,e,t[e]);return n};class bl{constructor(t,e,s,r){this.series=t,this.config=e,this.yAxisBoundsProvider=s,this.axisState=r}getUnorderedLabels(){if(this.config.visible){const e=this.config.labelLastValue==="series"?this.series.getLastDataSeriesPoint:this.series.getLastVisualSeriesPoint,s=this.yAxisBoundsProvider(),r=this.config.labelMode,i=this.config.labelAppearanceType,a=e();if(a!==void 0){const o=this.series.view.toY(a.close);if(isFinite(o)){const l=this.series.valueFormatter(a.close),c=this.getLabelDrawConfig();return[{labels:[pl({y:o,description:this.series.name,mode:r,labelType:i,labelText:l},c)],axisState:this.axisState,bounds:s}]}}}return[]}getLabelDrawConfig(){var t;const e=this.series.config,r=((t=e.paintConfig[0])!=null?t:wr).color;return{textColor:Ye(r,"white","black"),bgColor:r,paddingBottom:e.labelPaddingBottom,paddingEnd:e.labelPaddingEnd,paddingTop:e.labelPaddingTop}}}let Zt=window.devicePixelRatio,sn=window.matchMedia(`screen and (resolution: ${window.devicePixelRatio}dppx)`);const Gn=()=>{sn.removeEventListener("change",Gn),Zt=window.devicePixelRatio,sn=window.matchMedia(`screen and (resolution: ${window.devicePixelRatio}dppx)`),sn.addEventListener("change",Gn)};sn.addEventListener("change",Gn);const Cl=()=>Zt,yl=n=>pe(Zt*n)/Zt,st=n=>gt(Zt*n)/Zt,Tr=n=>ao(Zt*n)/Zt,je=n=>JSON.parse(JSON.stringify(n));function $n(n){return Object.entries(n)}const Mr=(n,t)=>{for(const[e,s]of Array.from(n.entries()))if(s===t)return e};function _r(n){return Object.keys(n)}function Ar(n,t){if(Object.is(n,t))return!0;if(typeof n!="object"||n===null||typeof t!="object"||t===null)return!1;const e=Object.keys(n),s=Object.keys(t);if(e.length!==s.length)return!1;for(let r=0,i=e.length;r<i;r++)if(!hasOwnProperty.call(t,e[r])||!Ar(n[e[r]],t[e[r]]))return!1;return!0}function Dr(n){n===void 0&&(n={});var t=n.connector,e=t===void 0?function(){return new V}:t,s=n.resetOnError,r=s===void 0?!0:s,i=n.resetOnComplete,a=i===void 0?!0:i,o=n.resetOnRefCountZero,l=o===void 0?!0:o;return function(c){var h,v,p,C=0,O=!1,B=!1,Y=function(){v==null||v.unsubscribe(),v=void 0},k=function(){Y(),h=p=void 0,O=B=!1},z=function(){var Z=h;k(),Z==null||Z.unsubscribe()};return y(function(Z,J){C++,!B&&!O&&Y();var K=p=p!=null?p:e();J.add(function(){C--,C===0&&!B&&!O&&(v=Zn(z,l))}),K.subscribe(J),!h&&C>0&&(h=new me({next:function(U){return K.next(U)},error:function(U){B=!0,Y(),v=Zn(k,r,U),K.error(U)},complete:function(){O=!0,Y(),v=Zn(k,a),K.complete()}}),Qt(Z).subscribe(h))})(c)}}function Zn(n,t){for(var e=[],s=2;s<arguments.length;s++)e[s-2]=arguments[s];if(t===!0){n();return}if(t!==!1){var r=new me({next:function(){r.unsubscribe(),n()}});return Qt(t.apply(void 0,x([],b(e)))).subscribe(r)}}const rn=(n,t)=>n/t,Tt=(n,t)=>n/t,re=(n,t)=>n*t,Er=(n,t)=>(n-t)*100/t,Or=(n,t)=>n*t/100+t,Lr=n=>Math.log2(n),Kn=n=>Math.pow(2,n);class wl extends tt{constructor(){super(...arguments),this._xStart=0,this._xEnd=0,this._yStart=0,this._yEnd=0,this._zoomX=1,this._zoomY=1,this._inverseY=!1,this.changed=new V,this.xChanged=this.changed.pipe(yt(()=>({start:this.xStart,end:this.xEnd})),Gt((t,e)=>t.start===e.start&&t.end===e.end),Dr()),this.yChanged=this.changed.pipe(yt(()=>({start:this.yStart,end:this.yEnd})),Gt((t,e)=>t.start===e.start&&t.end===e.end),Dr())}toX(t){return this.getBounds().x+Tt(t-this.xStart,this.zoomX)}xPixels(t){return Tt(t,this.zoomX)}toY(t){return this.inverseY?this.getBounds().y+Tt(t-this.yStart,this.zoomY):this.getBounds().y+this.getBounds().height-Tt(t-this.yStart,this.zoomY)}yPixels(t){return Tt(t,this.zoomY)}fromX(t){const e=t-this.getBounds().x;return re(e+Tt(this.xStart,this.zoomX),this.zoomX)}fromY(t){const e=t-this.getBounds().y;return this.inverseY?re(e+Tt(this.yStart,this.zoomY),this.zoomY):re(this.getBounds().height-e+Tt(this.yStart,this.zoomY),this.zoomY)}recalculateZoomX(){this.zoomX=this.calculateZoomX(this.xStart,this.xEnd)}recalculateZoomY(){this.zoomY=this.calculateZoomY(this.yStart,this.yEnd)}calculateZoomX(t,e){return rn(e-t,this.getBounds().width)}calculateZoomY(t,e){return rn(e-t,this.getBounds().height)}recalculateZoom(t=!0){this.recalculateZoomX(),this.recalculateZoomY(),t&&this.fireChanged()}setXScale(t,e,s=!0){this.xStart=t,this.xEnd=e,this.recalculateZoomX(),s&&this.fireChanged()}setYScale(t,e,s=!0){this.yStart=t,this.yEnd=e,this.recalculateZoomY(),s&&this.fireChanged()}export(){return{xStart:this.xStart,xEnd:this.xEnd,yStart:this.yStart,yEnd:this.yEnd,zoomX:this.zoomX,zoomY:this.zoomY,inverseY:this.inverseY}}apply(t){this.xStart=t.xStart,this.xEnd=t.xEnd,this.yStart=t.yStart,this.yEnd=t.yEnd,this.zoomX=t.zoomX,this.zoomY=t.zoomY,this.inverseY=t.inverseY,this.fireChanged()}fireChanged(){this.changed.next()}get xStart(){return this._xStart}set xStart(t){this._xStart=t}get xEnd(){return this._xEnd}set xEnd(t){this._xEnd=t}get yStart(){return this._yStart}set yStart(t){this._yStart=t}get yEnd(){return this._yEnd}set yEnd(t){this._yEnd=t}get zoomX(){return this._zoomX}set zoomX(t){this._zoomX=t}get zoomY(){return this._zoomY}set zoomY(t){this._zoomY=t}get inverseY(){return this._inverseY}set inverseY(t){this._inverseY=t}isViewportValid(){return this.xStart!==this.xEnd&&this.yStart!==this.yEnd&&isFinite(this.yStart)&&isFinite(this.yEnd)}}const Sl=(n,t)=>!_r(n).some(e=>n[e]!==t[e]);class xl{constructor(t,e){this.scale=t,this.dataSeries=e,this.prevAnimationId=""}getBaselineForPercent(t){const e=this.scale.currentAnimation;let s;if(e!=null&&e.animationInProgress){e.id!==this.prevAnimationId&&(this.initialBaseline=void 0,this.targetBaseline=void 0,this.prevAnimationId=e.id);const r=e.easingFn(e.getProgress());this.initialBaseline===void 0&&(this.initialBaseline=t(de(this.dataSeries.visualPoints,e.xStart,i=>i.centerUnit).index)),this.targetBaseline===void 0&&(this.targetBaseline=t(de(this.dataSeries.visualPoints,e.animationConfig.targetXStart,i=>i.centerUnit).index)),s=this.initialBaseline+(this.targetBaseline-this.initialBaseline)*r}else s=t();return s}}class Ir{constructor(t,e,s,r){this.dataSeries=t,this.scale=e,this.getAxisType=s,this.getBaseline=r,this.toY=i=>this.scale.toY(this.toAxisUnits(i)),this.toX=i=>this.scale.toX(i),this.xPixels=i=>this.scale.xPixels(i),this.yPixels=i=>this.scale.yPixels(i),this.percentAnimationHandler=new xl(this.scale,this.dataSeries)}toAxisUnits(t,e=this.getBaseline){switch(this.getAxisType()){case"percent":const s=this.percentAnimationHandler.getBaselineForPercent(e);return Er(t,s);case"logarithmic":return Lr(t);case"regular":return t}}priceFromY(t){const e=this.scale.fromY(t);return this.fromAxisUnits(e)}fromAxisUnits(t){switch(this.getAxisType()){case"percent":return Or(t,this.getBaseline());case"logarithmic":return Kn(t);case"regular":return t}}}var Pl=Object.defineProperty,Tl=Object.defineProperties,Ml=Object.getOwnPropertyDescriptors,Br=Object.getOwnPropertySymbols,_l=Object.prototype.hasOwnProperty,Al=Object.prototype.propertyIsEnumerable,Rr=(n,t,e)=>t in n?Pl(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Dl=(n,t)=>{for(var e in t||(t={}))_l.call(t,e)&&Rr(n,e,t[e]);if(Br)for(var e of Br(t))Al.call(t,e)&&Rr(n,e,t[e]);return n},El=(n,t)=>Tl(n,Ml(t));class Ue{constructor(t,e){this.centerUnit=t,this.close=e}y(t){return st(t.toY(this.close))}x(t){return st(t.toX(this.centerUnit))}clone(){return new Ue(this.centerUnit,this.close)}}class Fr extends tt{constructor(t,e,s=je(Sr)){var r;super(),this.extentComponent=t,this.id=e,this.name="",this.hovered=!1,this._dataPoints=[],this.pricePrecisions=[2],this.linkedDataSeriesModels=[],this._dataPointsFlat=[],this._visualPoints=[],this._visualPointsFlat=[],this.dataIdxStart=0,this.dataIdxEnd=0,this.getPaintConfig=i=>{var a;return(a=this.config.paintConfig[i])!=null?a:this.config.paintConfig[0]},this.getBaseline=(i=this.dataIdxStart)=>{var a,o;return(o=(a=this.visualPoints[i])==null?void 0:a.close)!=null?o:1},this.getTextForPoint=i=>`${i.close}`,this.getLastVisualSeriesPoint=()=>{const i=this.visualPoints,a=de(i,this.scale.xEnd,o=>o.centerUnit).index;return i[a]},this.getLastDataSeriesPoint=()=>{const i=this.visualPoints;return Ft(i)},this.config=$t(s,Sr),this.scale=t.scale,this.view=new Ir(this,this.scale,()=>this.extentComponent.yAxis.getAxisType(),this.getBaseline),this.yAxisLabelProvider=new bl(this,this.config,t.getYAxisBounds,(r=t.yAxis)==null?void 0:r.state),this.highLowProvider=Ll(this),t.addDataSeries(this),this.activate()}get dataPoints2D(){return this._dataPoints}get dataPoints(){return this._dataPointsFlat}set dataPoints(t){this._dataPoints=Js(t),this._dataPointsFlat=this._dataPoints.flat(),this.visualPoints=this._toVisualPoints(this._dataPoints)}get visualPoints(){return this._visualPointsFlat}get visualPoints2D(){return this._visualPoints}set visualPoints(t){this._visualPoints=Js(t),this._visualPointsFlat=this._visualPoints.flat()}doActivate(){this.addRxSubscription(this.scale.xChanged.subscribe(()=>this.recalculateDataViewportIndexes())),this.addRxSubscription(this.scale.scaleInversedSubject.subscribe(()=>this.recalculateVisualPoints()))}setDataPoints(t){this.dataPoints=t,this.extentComponent.paneComponent.updateView()}_toVisualPoints(t){return t.map(e=>this.toVisualPoints(e))}moveToExtent(t){var e;this.extentComponent.removeDataSeries(this),this.extentComponent=t,this.scale=t.scale,this.view=new Ir(this,this.scale,()=>this.extentComponent.yAxis.getAxisType(),this.getBaseline),this.yAxisLabelProvider.yAxisBoundsProvider=t.getYAxisBounds,this.yAxisLabelProvider.axisState=(e=t.yAxis)==null?void 0:e.state,this.deactivate(),this.activate(),t.addDataSeries(this)}toVisualPoints(t){return t.map((e,s)=>({centerUnit:s,close:e.close}))}setType(t){this.config.type=t,this.extentComponent.dynamicObjectsCanvasModel.fireDraw()}recalculateVisualPoints(){this.visualPoints=this._toVisualPoints(this.dataPoints2D)}recalculateDataViewportIndexes(t=this.scale.xStart,e=this.scale.xEnd){const{dataIdxStart:s,dataIdxEnd:r}=this.calculateDataViewportIndexes(t,e);this.dataIdxStart=s,this.dataIdxEnd=r}calculateDataViewportIndexes(t,e){const s=de(this.visualPoints,t,i=>i.centerUnit).index,r=de(this.visualPoints,e,i=>i.centerUnit).index;return{dataIdxStart:s,dataIdxEnd:r}}valueFormatter(t){return Hr(t)}getSeriesInViewport(t,e){let s=this.dataIdxStart,r=this.dataIdxEnd;if(e!==void 0&&t!==void 0){const i=this.calculateDataViewportIndexes(t,e);s=i.dataIdxStart,r=i.dataIdxEnd}return Po(this.visualPoints2D,s,r)}}const Ol=n=>{const t={high:Number.MIN_SAFE_INTEGER,low:Number.MAX_SAFE_INTEGER,highIdx:0,lowIdx:0};for(let e=0;e<n.length;e++){const s=n[e];s.close>t.high&&(t.high=s.close,t.highIdx=e),s.close<t.low&&(t.low=s.close,t.lowIdx=e)}return t},Ll=n=>({isHighLowActive:()=>n.config.highLowActive,calculateHighLow:t=>{const e=Ol(n.getSeriesInViewport(t==null?void 0:t.xStart,t==null?void 0:t.xEnd).flat());return El(Dl({},e),{high:n.view.toAxisUnits(e.high),low:n.view.toAxisUnits(e.low)})}}),Hr=n=>{const e=i=>Math.ceil(Math.log(Math.abs(i))*Math.LOG10E),r=((i,a=5)=>Math.max(0,a-Math.max(0,e(i))))(n);return wt.makeDecimal(n,r)};class an extends Ue{constructor(t,e,s,r,i,a,o,l,c=!1,h=!1,v=!1){super(t,r),this.startUnit=t-e/2,this.width=e,this.open=s,this.high=i,this.low=a,this.name=o,this.candle=l,this.hasBorder=c,this.isActive=h,this.isHollow=v}bodyHeight(t){return st(Math.abs(t.toY(this.open)-t.toY(this.close)))}candleHeight(t){return st(Math.abs(t.toY(this.high)-t.toY(this.low)))}bodyAsVLine(t){if(this.width<2)return[this.centerUnit,this.yLineStart(t),this.width,this.candleHeight(t)]}bodyRect(t){return[this.startUnit,this.yBodyStart(t),this.width,this.bodyHeight(t)]}getCandle(){return this.candle}yBodyKeyPoints(t){const e=st(t.toY(this.high)),s=st(t.toY(this.low)),r=st(t.toY(this.open)),i=st(t.toY(this.close)),[a,o]=r>i?[i,r]:[r,i],[l,c]=e>s?[s,e]:[e,s];return[l,a,o,c]}yLineEnd(t){return st(Math.max(t.toY(this.high),t.toY(this.low)))}yLineStart(t){return st(Math.min(t.toY(this.high),t.toY(this.low)))}yBodyStart(t){return st(Math.min(t.toY(this.open),t.toY(this.close)))}yBodyEnd(t){return st(Math.max(t.toY(this.open),t.toY(this.close)))}xCenter(t){return this.x(t)}xStart(t){return yl(t.toX(this.startUnit))}}const _e=60,Yr=(n,t,e,s,r=_e)=>{const i=We(n,s,r);i.volume=e;let a;if(t.length===0)a=0;else if(s>=t.length){const o=t[t.length-1],c=(s-(t.length-1))*e;a=o.centerUnit+c}else{const o=t[0],c=-s*e;a=o.centerUnit-c}return new an(a,e,i.open,i.close,i.lo,i.hi,nn(i.open,i.close),i)},Il=(n,t,e,s,r=_e)=>{const i=Bl(n,s,r);let a;if(t.length===0)a=0;else if(s>=t.length){const o=t[t.length-1],c=(s-(t.length-1))*e;a=o.centerUnit+c}else{const o=t[0],c=-s*e;a=o.centerUnit-c}return new Ue(a,i.close)},We=(n,t,e=_e)=>({hi:NaN,lo:NaN,open:NaN,close:NaN,timestamp:Nr(n,t,e),volume:NaN,expansion:!0,idx:t}),Bl=(n,t,e=_e)=>({close:NaN,timestamp:Nr(n,t,e)});function Nr(n,t,e=_e){var s,r;const i=pe(t);if(n.length===0)return 0;const a=Ft(n);if(i>=n.length&&a)return kr(a,n.length-1,i,e);const o=He(n);return i<0&&o?kr(o,0,i,e):(r=(s=n[i])==null?void 0:s.timestamp)!=null?r:0}const kr=(n,t,e,s=_e)=>n.timestamp+(e-(t!=null?t:0))*s;class Rl{constructor(t){this.type=t,this.mainDataPoints=[],this.mainVisualPoints=[],this.dataUpdatedSubject=new V,this.dataSetSubject=new V,this.dataRemovedSubject=new V,this.dataPrependSubject=new V,this.meanDataWidth=1,this.period=1}dataFromTimestamp(t,e=!0){const s=ke(t,e,this.mainDataPoints,this.period);return this.dataFromIdx(s.index)}recalculatePeriod(){const t=dl(this.mainDataPoints);t&&(this.period=t)}dataFromIdx(t){const e=this.mainVisualPoints[t];return e||(this.type==="candle"?Yr(this.mainDataPoints,this.mainVisualPoints,this.meanDataWidth,t,this.period):Il(this.mainDataPoints,this.mainVisualPoints,this.meanDataWidth,t,this.period))}}var Fl=Object.defineProperty,jr=Object.getOwnPropertySymbols,Hl=Object.prototype.hasOwnProperty,Yl=Object.prototype.propertyIsEnumerable,Ur=(n,t,e)=>t in n?Fl(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Nl=(n,t)=>{for(var e in t||(t={}))Hl.call(t,e)&&Ur(n,e,t[e]);if(jr)for(var e of jr(t))Yl.call(t,e)&&Ur(n,e,t[e]);return n};class kl{constructor(t,e){this.canvasModel=t,this.config=e,this.prevState={},this.prevWidth=0,this.prevHeight=0}draw(){if(Ar(this.config.colors.chartAreaTheme,this.prevState)&&this.prevHeight===this.canvasModel.height&&this.prevWidth===this.canvasModel.width)return;this.canvasModel.clear();const t=this.canvasModel.ctx;if(this.config.colors.chartAreaTheme.backgroundMode==="gradient"){const e=t.createLinearGradient(0,0,this.canvasModel.width,this.canvasModel.height);e.addColorStop(0,this.config.colors.chartAreaTheme.backgroundGradientTopColor),e.addColorStop(1,this.config.colors.chartAreaTheme.backgroundGradientBottomColor),t.fillStyle=e}else t.fillStyle=this.config.colors.chartAreaTheme.backgroundColor;t.fillRect(0,0,this.canvasModel.width,this.canvasModel.height),this.prevState=Nl({},this.config.colors.chartAreaTheme),this.prevWidth=this.canvasModel.width,this.prevHeight=this.canvasModel.height}getCanvasIds(){return[this.canvasModel.canvasId]}}const on=(n,t,e,s,r,i,a)=>{const o=Cl(),l=[e*o,s*o,r*o,i*o];let c=n.getImageData(...l);if(a!==void 0){const h=c.data[3]/255;if(h===1)for(let v=3;v<c.data.length;v+=4)c.data[v]=gt(c.data[v]*a);else for(let v=0;v<c.data.length;v++){const p=c.data[v];c.data[v]=v%4===3?gt(p*a):gt(h*p)}c=new ImageData(c.data,c.width,c.height,{colorSpace:c.colorSpace})}t.putImageData(c,l[0],l[1])},Wr=(n,{x:t,width:e,activeCandle:s})=>new an(t,e,n.open,n.close,n.hi,n.lo,nn(n.open,n.close),n,!0,Jn(n,s)),jl=(n,{x:t,width:e,activeCandle:s,prevCandle:r})=>{var i;return new an(t,e,n.open,n.close,n.hi,n.lo,ul((i=r==null?void 0:r.close)!=null?i:n.close,n.close),n,!0,Jn(n,s),n.close>n.open)},Ul=(n,{x:t,width:e,activeCandle:s,prevCandle:r})=>{var i;return new an(t,e,n.open,n.close,n.hi,n.lo,nn((i=r==null?void 0:r.close)!=null?i:n.close,n.close),n,!0,Jn(n,s),n.close>n.open)},Jn=(n,t)=>{const e=t&&t.idx===n.idx;return e!=null?e:!1},zr=()=>Vn,Ce=class{static autoDetectIncrementOfValueRange(n){const t=this.getDigitsInNumber(n);return n===0?.01:Math.pow(10,t-3)}static getDigitsInNumber(n){const t=s=>gt(Math.log10((s^s>>31)-(s>>31)))+1;let e=t(n);return e===1&&n<1&&(e=t(n*1e9)-9),e}static getPriceIncrement(n,t=[]){if(!this.validatePriceIncrementsOrPrecisions(t))return this.DEFAULT_INCREMENT;if(isNaN(n))return Math.round(t[0]);n=Math.abs(n);let e=1;const s=1e-6;for(;e<t.length&&n>t[e]+Math.min(t[e-1],t[e+1])*s;)e+=2;return e>=t.length||n<t[e]-Math.min(t[e-1],t[e+1])*s?t[e-1]:Math.min(t[e-1],t[e+1])}static getPricePrecision(n,t){if(!this.validatePriceIncrementsOrPrecisions(t))return 0;if(isNaN(n))return Math.round(t[0]);n=Math.abs(n);let e=1;for(;e<t.length&&n>t[e];)e+=2;return Math.round(t[e-1])}static roundPriceToIncrement(n,t,e){const s=Ce.getPriceIncrement(e||n,t);return wt.roundToNearest(n,s)}static computePrecisions(n){const t=[...n];for(let e=0;e<n.length;e+=2)t[e]=Ce.calculatePrecision(n[e]);for(let e=1;e<n.length;e+=2)t[e]=n[e]+Math.min(n[e-1],n[e+1])*Ce.RELATIVE_EPS;return t}static calculatePrecision(n){let t=n>1?Math.abs(Math.floor(n)-n):n;for(let e=0;e<Ce.MAXIMUM_PRECISION;e++){const s=Math.floor(t+.5),r=Math.abs(t*Ce.RELATIVE_EPS);if(s>=t-r&&s<=t+r)return e;t*=10}return Ce.MAXIMUM_PRECISION}static validatePriceIncrementsOrPrecisions(n){return!(n.length===0||!Array.isArray(n)||n.findIndex(t=>t!==0)===-1)}};let Kt=Ce;Kt.DEFAULT_INCREMENT=.01,Kt.DEFAULT_PRECISION=2,Kt.RELATIVE_EPS=1e-8,Kt.MAXIMUM_PRECISION=10;const Wl=(n,t)=>{var e;const s=(e=Ft(t))!=null?e:1;return Math.pow(10,-s)};var zl=Object.defineProperty,Xl=Object.defineProperties,Vl=Object.getOwnPropertyDescriptors,Xr=Object.getOwnPropertySymbols,Gl=Object.prototype.hasOwnProperty,$l=Object.prototype.propertyIsEnumerable,Vr=(n,t,e)=>t in n?zl(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Zl=(n,t)=>{for(var e in t||(t={}))Gl.call(t,e)&&Vr(n,e,t[e]);if(Xr)for(var e of Xr(t))$l.call(t,e)&&Vr(n,e,t[e]);return n},Kl=(n,t)=>Xl(n,Vl(t));const Jl=n=>({isHighLowActive:()=>!0,calculateHighLow:t=>{const e=t?t.xStart:n.scale.xStart,s=t?t.xEnd:n.scale.xEnd,{dataIdxStart:r,dataIdxEnd:i}=n.calculateDataViewportIndexes(e,s),a=n.visualPoints.slice(r,i+1),o=Gr(a),l=()=>{var c,h;return(h=(c=n.visualPoints[r])==null?void 0:c.close)!=null?h:1};return Kl(Zl({},o),{low:n.view.toAxisUnits(o.low,l),high:n.view.toAxisUnits(o.high,l)})}}),Gr=n=>{const t={high:Number.MIN_SAFE_INTEGER,low:Number.MAX_SAFE_INTEGER,highIdx:0,lowIdx:0};for(let e=0;e<n.length;e++){const s=n[e];s.high>t.high&&(t.high=s.high,t.highIdx=e),s.low<t.low&&(t.low=s.low,t.lowIdx=e)}return t},Ql=30,ql=(n,t,e)=>{const s=n.startViewportMovementAnimation(t,{duration:Ql,targetXStart:e.xStart,targetXEnd:e.xEnd,targetYStart:e.yStart,targetYEnd:e.yEnd,targetZoomX:e.zoomX,targetZoomY:e.zoomY});t.currentAnimation=s};class tc{constructor(t,e){this.delegate=t,this.auto=!0,this.highLowPostPorcessor={},this.highLowProviders=e!=null?e:{}}setHighLowProvider(t,e){this.highLowProviders[t]=e}deleteHighLowProvider(t){delete this.highLowProviders[t]}setHighLowPostProcessor(t,e){this.highLowPostPorcessor[t]=e}setAutoAndRecalculateState(t,e){this.auto=e,e&&ec(this.delegate,t,Object.values(this.highLowProviders),Object.values(this.highLowPostPorcessor))}}const ec=(n,t,e,s)=>{const r=e.filter(o=>o.isHighLowActive()).map(o=>o.calculateHighLow(t)),i=$r(r),a=s.reduce((o,l)=>l(o),i);t.yStart=a.low,t.yEnd=a.high,t.zoomY=n.calculateZoomY(t.yStart,t.yEnd)};function $r(n){if(n.length===0)return nc();let t=n[0].high,e=n[0].low;return n.forEach(s=>{isFinite(s.high)&&s.high>=t&&(t=s.high),isFinite(s.low)&&s.low<=e&&(e=s.low)}),{low:e,high:t}}const nc=()=>({high:Number.MIN_SAFE_INTEGER,low:Number.MAX_SAFE_INTEGER});var sc=Object.defineProperty,Zr=Object.getOwnPropertySymbols,rc=Object.prototype.hasOwnProperty,ic=Object.prototype.propertyIsEnumerable,Kr=(n,t,e)=>t in n?sc(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Jr=(n,t)=>{for(var e in t||(t={}))rc.call(t,e)&&Kr(n,e,t[e]);if(Zr)for(var e of Zr(t))ic.call(t,e)&&Kr(n,e,t[e]);return n};const ac=(n,t,e,s)=>{var r,i,a,o;const l=Jr({},n),c=(i=(r=t[e])==null?void 0:r.startUnit)!=null?i:0,h=(o=(a=To(-e,t))==null?void 0:a.startUnit)!=null?o:0;let v=n.xStart,p=n.xEnd;return l.xStart>=h&&(v=h,p=p-(l.xStart-h)),l.xEnd<c&&(v=c-re(s.width,l.zoomX),p=c),l.xStart=v,l.xEnd=p,l},oc=(n,t,e,s)=>{const r=Jr({},t),i=s(),a=r.xEnd-r.xStart,o=a<e.minCandles,l=i.width/e.minWidth,c=a>l;if(i.width>0){if(c)return r.xStart=r.xEnd-l,r.zoomX=rn(r.xEnd-r.xStart,i.width),r;if(o)return r.xEnd=n.xEnd,r.xStart=r.xEnd-e.minCandles,r.zoomX=rn(r.xEnd-r.xStart,i.width),r}return r},lc=(n,t)=>n/t,cc=(n,t)=>n/t,Dg=(n,t)=>n*t,Qr=(n,t)=>{const e=n.zoomY;n.zoomY=cc(n.zoomX,t);const s=n.zoomY/e,r=n.yEnd-n.yStart,a=r*s-r;n.yEnd=n.yEnd+a},hc=(n,t)=>{const e=n.xStart;n.xStart=t,n.xEnd=n.xEnd+(t-e)},dc=(n,t)=>{const e=n.yStart;n.yStart=t,n.yEnd=n.yEnd+(t-e)},qr=(n,t,e,s,r)=>{const i=(t.xEnd-t.xStart)*s,a=i*e,o=i*(1-e);return r?(t.xStart=t.xStart+a,t.xEnd=t.xEnd-o):(t.xStart=t.xStart-a,t.xEnd=t.xEnd+o),t.zoomX=n.calculateZoomX(t.xStart,t.xEnd),t},uc=(n,t,e,s)=>qr(n,t,1,e,s);var fc=Object.defineProperty,ti=Object.getOwnPropertySymbols,gc=Object.prototype.hasOwnProperty,vc=Object.prototype.propertyIsEnumerable,ei=(n,t,e)=>t in n?fc(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ln=(n,t)=>{for(var e in t||(t={}))gc.call(t,e)&&ei(n,e,t[e]);if(ti)for(var e of ti(t))vc.call(t,e)&&ei(n,e,t[e]);return n};const mc=()=>({high:Number.NEGATIVE_INFINITY,low:Number.POSITIVE_INFINITY,highIdx:0,lowIdx:0});class ni extends wl{constructor(t,e,s){super(),this.config=t,this.getBounds=e,this.canvasAnimation=s,this.scaleInversedSubject=new V,this.beforeStartAnimationSubject=new V,this.history=[],this.zoomXYRatio=0,this.xConstraints=[],this.scalePostProcessor=(r,i)=>this.xConstraints.reduce((a,o)=>o(r,a),i),this.state=je(t.scale),this.autoScaleModel=new tc(this),this.offsets=this.config.components.offsets,this.addXConstraint((r,i)=>oc(r,i,this.config.components.chart,this.getBounds))}addXConstraint(t){this.xConstraints=[...this.xConstraints,t]}updateOffsets(t){this.offsets=ln(ln({},this.offsets),t),this.doAutoScale(!0)}getOffsets(){return this.offsets}zoomXToPercent(t,e,s=!1,r=this.config.scale.zoomSensitivity){this.beforeStartAnimationSubject.next();const i=this.export();qr(this,i,t,r,e),this.zoomXTo(i,s)}zoomXToEnd(t,e=this.config.scale.zoomSensitivity){this.beforeStartAnimationSubject.next();const s=this.export();uc(this,s,e,t),this.zoomXTo(s)}haltAnimation(){var t;(t=this.currentAnimation)!=null&&t.animationInProgress&&(this.currentAnimation.finishAnimation(),this.doAutoScale())}zoomXTo(t,e){const s=ln({},t),r=this.scalePostProcessor(s,t);this.state.lockPriceToBarRatio&&Qr(r,this.zoomXYRatio),this.state.auto&&this.autoScaleModel.setAutoAndRecalculateState(r,!0),e?this.apply(r):ql(this.canvasAnimation,this,r)}setXScale(t,e){const s=this.export();super.setXScale(t,e,!1);const r=this.export(),i=this.scalePostProcessor(s,r);this.state.lockPriceToBarRatio&&Qr(i,this.zoomXYRatio),this.state.auto&&this.autoScaleModel.setAutoAndRecalculateState(i,!0),this.apply(i)}moveXStart(t){const e=this.export(),s=ln({},e);this.haltAnimation(),hc(e,t);const r=this.scalePostProcessor(s,e);this.state.auto&&this.autoScaleModel.setAutoAndRecalculateState(r,!0),this.apply(r)}moveYStart(t){if(this.haltAnimation(),!this.state.auto){const e=this.export();dc(e,t),this.apply(e)}}doAutoScale(t=!1){if(!this.isViewportAnimationInProgress()&&this.state.auto||t){const e=this.export();this.autoScaleModel.setAutoAndRecalculateState(e,!0),Sl(e,this.export())||this.apply(e)}}isViewportAnimationInProgress(){const t=this.currentAnimation;return t==null?void 0:t.animationInProgress}pushToHistory(t){this.history.push(t)}popFromHistory(){return this.history.pop()}clearHistory(){this.history=[]}isDefaultXBounds(){return this.xStart===0&&this.xEnd===0}isDefaultYBounds(){return this.yStart===0&&this.yEnd===0}isScaleReady(){return!this.isDefaultXBounds()&&!this.isDefaultYBounds()}autoScale(t=!0){this.config.components.yAxis.type==="percent"?this.state.auto=!0:this.state.auto=t,t&&(this.clearHistory(),this.doAutoScale())}setLockPriceToBarRatio(t=!1){const{type:e}=this.config.components.yAxis;if(e==="percent"||e==="logarithmic"){this.state.lockPriceToBarRatio=!1;return}t&&this.recalculateZoomXYRatio(),this.state.lockPriceToBarRatio=t}recalculateZoomXYRatio(){this.zoomXYRatio=lc(this.zoomX,this.zoomY)}}class pc extends ni{constructor(t,e,s,r){super(e,s,r),this.delegate=t,this.config=e,this.getBounds=s}doActivate(){this.addRxSubscription(this.delegate.xChanged.subscribe(()=>this.doAutoScale(this.state.auto)))}get xStart(){return this.delegate.xStart}set xStart(t){this.delegate.xStart=t}get xEnd(){return this.delegate.xEnd}set xEnd(t){this.delegate.xEnd=t}get zoomX(){return this.delegate.zoomX}set zoomX(t){this.delegate.zoomX=t}observeXChanged(){return this.delegate.xChanged}fireChanged(){this.delegate.changed.next(),this.changed.next()}}const bc=qe().colors;class ue extends Fr{constructor(t,e,s,r,i,a,o,l=bc){super(t,e),this.eventBus=s,this.candlesTransformersByChartType=a,this.candleWidthByChartType=o,this.colors=l,this.zippedHighLow=mc(),this.lastPriceMovement="none",this.lastVisualCandleChangedSubject=new V,this.meanCandleWidth=Vn,this._instrument=i,this.instrument=i,this.highLowProvider=Jl(this),this.scale=r,this.name=i.symbol}get dataPoints(){return super.dataPoints}set dataPoints(t){super.dataPoints=t,this.applyPriceMovement()}get instrument(){return this._instrument}set instrument(t){var e;this._instrument=t,this.pricePrecisions=Kt.computePrecisions((e=t.priceIncrements)!=null?e:[.01])}recalculateDataViewportIndexes(t=this.scale.xStart,e=this.scale.xEnd){super.recalculateDataViewportIndexes(t,e),this.recalculateZippedHighLow(),this.eventBus.fireDraw()}applyPriceMovement(){const t=Ft(this.dataPoints);t&&(this.lastPriceMovement=nn(t.open,t.close))}recalculateVisualPoints(){super.recalculateVisualPoints(),this.recalculateMeanCandleWidth(this.visualPoints)}recalculateZippedHighLow(){return this.zippedHighLow=Gr(this.visualPoints.slice(this.dataIdxStart,this.dataIdxEnd))}updateCurrentPrice(t){this.previousPrice=this.currentPrice||t,this.currentPrice=t,this.currentPrice!==this.previousPrice&&(this.lastPriceMovement=this.currentPrice>this.previousPrice?"up":"down")}updateCandleSeriesColors(t){this.colors=$t(t,this.colors),this.recalculateVisualPoints()}observeLastVisualCandleChanged(){return this.lastVisualCandleChangedSubject.asObservable()}doDeactivate(){super.doDeactivate()}toVisualPoints(t,e=0){var s,r;if(t.length===0)return[];const i=this.config.type,a=[];let o=e;const l=(s=this.candleWidthByChartType[i])!=null?s:zr;for(let c=0;c<t.length;c++){const h=t[c],v=t[c-1],p=l(h),C=o+p/2,O=(r=this.candlesTransformersByChartType[i])!=null?r:Wr;a.push(O(h,{x:C,width:p,prevCandle:v,activeCandle:this.activeCandle})),o+=p}return a}recalculateMeanCandleWidth(t){t.length!==0?this.meanCandleWidth=t.reduce((e,s)=>e+s.width,0)/t.length:this.meanCandleWidth=Vn}setActiveCandle(t){this.activeCandle=t,this.recalculateVisualPoints()}clearData(){this.dataPoints=[],this.clearVisualCandles(),this.clearPrices()}clearPrices(){this.previousPrice=void 0,this.currentPrice=void 0,this.lastPriceMovement="none"}clearVisualCandles(){this.visualPoints=[]}}function Eg(n){switch(n){case"line":case"area":return!0;default:return!1}}class Cc{constructor(t){this.config=t}draw(t,e,s,r){if(s instanceof ue){const i=It(e);if(i.length===0)return;r.singleColor?t.strokeStyle=r.singleColor:t.strokeStyle=s.colors.areaTheme.lineColor,s.hovered?t.lineWidth=this.config.selectedWidth:t.lineWidth=this.config.areaLineWidth;const a=s.extentComponent.getBounds(),o=i[0],l=s.view.toX(o.centerUnit);for(let c=0;c<i.length;c++){const h=i[c-1],v=i[c+1],p=i[c],C=s.view.toX(p.centerUnit),O=s.view.toY(p.close),B=a.y+a.height;if(h===void 0)t.beginPath(),t.lineTo(gt(C),B),t.moveTo(gt(C),O);else if(v===void 0){t.lineTo(gt(C),O),t.stroke(),t.lineTo(gt(C),B),t.lineTo(gt(l),B),t.closePath();let Y;r.singleColor?t.fillStyle=r.singleColor:t.fillStyle=s.colors.areaTheme.startColor&&s.colors.areaTheme.stopColor?(Y=t.createLinearGradient(0,0,0,a.height),Y.addColorStop(0,s.colors.areaTheme.startColor),Y.addColorStop(1,s.colors.areaTheme.stopColor),Y):"",t.fill()}else t.lineTo(gt(C),O)}}}}function si(n,t,e,s,r,i=4,a=!0,o=!1){n.save(),n.beginPath(),n.moveTo(t+i,e),n.lineTo(t+s-i,e),n.quadraticCurveTo(t+s,e,t+s,e+i),n.lineTo(t+s,e+r-i),n.quadraticCurveTo(t+s,e+r,t+s-i,e+r),n.lineTo(t+i,e+r),n.quadraticCurveTo(t,e+r,t,e+r-i),n.lineTo(t,e+i),n.quadraticCurveTo(t,e,t+i,e),n.closePath(),a&&n.fill(),o&&n.stroke(),n.restore()}function yc(n,t,e,s,r,i,a,o,l,c,h=4,v=!0,p=!1){const C=c==="right"?o:-o,O=c==="right"?h:-h,B=h;n.save(),n.beginPath(),l?n.moveTo(i+O,a):n.moveTo(i,a),l?(n.lineTo(i+C-O,a),n.quadraticCurveTo(i+C,a,i+C,a-B),n.lineTo(i+C,e+B),n.quadraticCurveTo(i+C,e,i+C-O,e),n.lineTo(t+O,e)):(n.lineTo(i+C,a),n.lineTo(i+C,e),n.lineTo(t,e)),l?(n.quadraticCurveTo(t,e,t-O/3,e+B/3),n.lineTo(s+O/3,r-B/3),n.quadraticCurveTo(s,r,s+O/3,r+B/3),n.lineTo(i-O/3,a-B/3),n.quadraticCurveTo(i,a,i+O/3,a)):(n.lineTo(s,r),n.lineTo(i,a)),n.closePath(),v&&n.fill(),p&&n.stroke(),n.restore()}function wc(n,t,e,s,r,i=1){n.save(),n.lineWidth=i,n.beginPath(),n.moveTo(t,e),n.lineTo(s,r),n.stroke(),n.closePath(),n.restore()}function ye(n,t){n.save(),n.lineWidth%2&&n.translate(.5,.5),t(),n.restore()}function ri(n,t,e){const s=Math.min(t.x,e.x)+.5,r=Math.min(t.y,e.y),i=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);n.fillRect(s,r,i,a)}const Og=n=>Array.isArray(n[0])?n:[n];class Sc{constructor(t,e){this.paneManager=t,this.seriesDrawers=e}draw(t,e,s){const r=t.ctx,i=s&&this.paneManager.panes[s];e&&(r.save(),i&&we(r,i.getBounds()),this.drawSeries(r,e),r.restore())}drawSeries(t,e){if(e.config.visible){const s=e.config.type,r=this.seriesDrawers[s];if(r){const i=e.getSeriesInViewport(e.scale.xStart-1,e.scale.xEnd+1);i&&i.length>=1&&r.draw(t,i,e,{})}else console.error(`Data series drawer with type ${s} isn't registered!`)}}}const we=(n,t)=>{n.beginPath(),n.rect(t.x,t.y,t.width,t.height),n.clip(),n.closePath()},Ae=(n,t,e,s,r=t)=>{s.forceBold?n.lineWidth=s.forceBold:e.hovered?n.lineWidth=r:n.lineWidth=t};class xc{constructor(t){this.config=t}setFillStyle(t,e,s,r){if(e.singleColor)t.strokeStyle=e.singleColor;else{const i=s.colors.barTheme;i&&(t.strokeStyle=i[`${r.name}Color`])}}draw(t,e,s,r){if(s instanceof ue){const i=It(e);Ae(t,this.config.barLineWidth,s,r),ye(t,()=>{for(const a of i){this.setFillStyle(t,r,s,a),t.beginPath();const o=st(s.view.toX(a.centerUnit)),l=st(s.view.toX(a.startUnit)),[c,h,v,p]=a.yBodyKeyPoints(s.view),C=st(s.view.xPixels(a.width)/2),O=st(s.view.toY(a.close)),B=st(s.view.toY(a.open));this.config.showWicks?(t.moveTo(o,c),t.lineTo(o,p)):(t.moveTo(o,h),t.lineTo(o,v)),t.moveTo(o,O),t.lineTo(o+C,O),t.moveTo(l,B),t.lineTo(o,B),t.stroke()}})}}}class Pc{constructor(t,e){this.baseLineModel=t,this.canvasBoundContainer=e}draw(t,e,s,r){if(r!==void 0&&s instanceof ue){const i=It(e),a=this.baseLineModel.baselineYPercents,o=this.canvasBoundContainer.getBounds(H.CHART),l=o.y+o.height*(a/100),c=i[0];for(let h=0;h<i.length;h++){const v=i[h],p=i[h-1],C=i[h+1],O=s.view.toX(c.centerUnit),B=s.view.toX(v.centerUnit),Y=s.view.toY(v.close),k=p?s.view.toY(p.close)<l:!1,z=Y<l;if(p!==void 0&&k!==z){ii(t,s,r,k);const Z=s.view.toX(p.centerUnit),J=s.view.toY(p.close),K=B-Z,U=Y-J,Q=K/U,it=Y-l,at=Q*it,nt=Z+(K-at);t.lineTo(nt,l),t.stroke(),t.lineTo(O,l),t.closePath(),t.fill(),t.beginPath(),t.moveTo(nt,l)}p===void 0?(t.beginPath(),t.moveTo(B,Y)):C===void 0?(ii(t,s,r,z),t.lineTo(B,Y),t.stroke(),t.lineTo(B,l),t.lineTo(O,l),t.closePath(),t.fill(),t.beginPath(),t.moveTo(O,l),t.lineTo(B,l),t.strokeStyle=s.colors.baseLineTheme.baselineColor,t.stroke()):t.lineTo(B,Y)}}}}const ii=(n,t,e,s)=>{e.singleColor?(n.fillStyle=e.singleColor,n.strokeStyle=e.singleColor):(n.fillStyle=s?t.colors.baseLineTheme.upperSectionFillColor:t.colors.baseLineTheme.lowerSectionFillColor,n.strokeStyle=s?t.colors.baseLineTheme.upperSectionStrokeColor:t.colors.baseLineTheme.lowerSectionStrokeColor)};class Tc{constructor(t){this.config=t,this.pixelLength=1,this.lineWidthCU=1,this.halfLineWidthCU=1}draw(t,e,s,r){if(s instanceof ue){const i=It(e);Ae(t,this.config.candleLineWidth,s,r,this.config.candleLineWidth),ye(t,()=>{this.pixelLength=1/Zt,this.halfLineWidthCU=t.lineWidth/2,this.lineWidthCU=t.lineWidth;for(const a of i){const{candleTheme:o,activeCandleTheme:l}=s.colors;o&&l&&this.drawCandle(t,r,s,a)}})}}drawCandle(t,e,s,r){const{candleTheme:i,activeCandleTheme:a}=s.colors,o=r.name,l=r.isActive?a:i,c=r.isHollow;e.singleColor?t.fillStyle=e.singleColor:c?t.fillStyle=l[`${o}WickColor`]:t.fillStyle=l[`${o}Color`];const h=st(s.view.toX(r.startUnit)),v=st(s.view.xPixels(r.width)),p=r.bodyHeight(s.view),[C,O,B,Y]=r.yBodyKeyPoints(s.view),k=O===B?O+1:B,z=C===Y?C+1:Y,Z=l[`${o}Color`],J=o==="none"?Z:l[`${o}WickColor`];t.fillStyle=Z,e.singleColor?t.strokeStyle=e.singleColor:t.strokeStyle=J;const K=c||(r.hasBorder&&r.isActive?this.config.showActiveCandlesBorder:this.config.showCandlesBorder),U=this.config.showWicks;if(v<2)t.beginPath(),t.moveTo(h,U?C:O),t.lineTo(h,U?z:k),t.stroke();else if(v<3)t.beginPath(),t.moveTo(h,U?C:O),t.lineTo(h,U?z:k),t.moveTo(h+1,O),t.lineTo(h+1,k),t.stroke();else if(v===3){const Q=v/Zt;this.drawCandlesWicks(t,h+Q,C,z,O,k),c||(t.beginPath(),t.moveTo(h+Q,O),t.lineTo(h+Q,k),t.stroke()),this.drawCandleBorder(t,e,l,r,h+this.halfLineWidthCU,O+this.halfLineWidthCU,v-this.lineWidthCU,p-this.lineWidthCU)}else{const Q=r.x(s.view);this.drawCandlesWicks(t,Q,C,z,O,k-1);const it=this.config.candlePaddingPercent,at=Math.max(st(v*it/2),this.pixelLength),nt=h+at,ot=v-at*2;c||(e.singleColor&&(t.fillStyle=e.singleColor),t.fillRect(nt,O,ot,p)),K&&this.drawCandleBorder(t,e,l,r,nt+this.halfLineWidthCU,O+this.halfLineWidthCU,ot-this.lineWidthCU,p-this.lineWidthCU)}}drawCandlesWicks(t,e,s,r,i,a){this.config.showWicks&&(t.beginPath(),t.moveTo(e,s),t.lineTo(e,i),t.moveTo(e,a),t.lineTo(e,r),t.stroke())}drawCandleBorder(t,e,s,r,i,a,o,l){if(e.singleColor)t.strokeStyle=e.singleColor;else{const c=r.name;t.strokeStyle=c==="none"?s[`${c}Color`]:s[`${c}WickColor`]}t.strokeRect(i,a,o,l)}}class Mc{constructor(t){this.config=t}draw(t,e,s,r){if(s instanceof ue){const i=e.flat(),a=s.scale.getBounds(),o=a.y+a.height;for(const l of i){t.beginPath();const c=l.name,h=this.config.barCapSize,v=s.colors.histogram;if(v===void 0)return;r.singleColor?t.fillStyle=r.singleColor:t.fillStyle=v[`${c}Bright`];const p=l.xStart(s.view),C=st(s.view.toY(l.close)),O=st(s.view.xPixels(l.width));t.fillRect(p,C,O,h);const B=t.createLinearGradient(0,C+h,0,o);r.singleColor?t.fillStyle=r.singleColor:(B.addColorStop(0,v[`${c}Cap`]),B.addColorStop(1,v[`${c}Bottom`]),t.fillStyle=B),O===0?(t.beginPath(),t.strokeStyle=B,t.moveTo(p,C+h),t.lineTo(p,o),t.stroke(),t.closePath()):t.fillRect(p,C+h,O,o-C-h)}}}}class _c{constructor(t){this.config=t}draw(t,e,s,r){if(s instanceof ue){const i=It(e);Ae(t,this.config.lineWidth,s,r,this.config.selectedWidth);const a=s.colors.lineTheme;t.lineCap="round",r.singleColor&&(t.strokeStyle=r.singleColor);for(let o=1;o<i.length;o++){const l=i[o-1],c=i[o],h=c.name;r.singleColor||(t.strokeStyle=a[`${h}Color`]);const v=s.view.toX(l.centerUnit),p=s.view.toY(l.close),C=s.view.toX(c.centerUnit),O=s.view.toY(c.close);t.beginPath(),t.moveTo(v,p),t.lineTo(C,O),t.stroke()}}}}const Ac=1.5;class Dc{constructor(t){this.config=t}draw(t,e,s,r){var i;t.fillStyle=(i=r.singleColor)!=null?i:this.config.mainColor;for(const a of It(e)){t.beginPath();const o=st(s.view.toX(a.centerUnit)),l=st(s.view.toY(a.close));t.arc(o,l,Ac,0,Math.PI*2,!0),t.fill()}}}const Ec=["candle","bar","line","area","scatterPlot","hollow","histogram","baseline","trend"];class Oc{constructor(t,e,s){this.drawer=t,this.config=e,this.chartBounds=s}draw(t,e,s,r){this.isChartTypeAllowed()&&(this.beforeDraw(t),this.drawer.draw(t,e,s,r),this.afterDraw(t,s))}beforeDraw(t){t.restore(),t.save(),we(t,this.chartBounds())}isChartTypeAllowed(){return Ec.includes(this.config.components.chart.type)}afterDraw(t,e){t.restore(),t.save(),we(t,e.scale.getBounds())}}class Lc{constructor(t){this.chartModel=t}draw(t,e,s,r){e.forEach((i,a)=>{var o;const l=s.getPaintConfig(a);t.fillStyle=(o=r.singleColor)!=null?o:l.color,i.forEach(c=>{const h=this.chartModel.getVisualCandle(pe(c.centerUnit)),v=c.close;if(h&&v===1){const p=this.chartModel.scale.zoomX,C=st(Tt(h.width,p)),O=st(h.bodyHeight(this.chartModel.scale)),B=h.xCenter(this.chartModel.scale)-C/2,Y=h.yBodyStart(this.chartModel.scale),k=this.chartModel.config.components.chart.candlePaddingPercent,z=st(C*k/2),Z=B+z,J=C-z*2;t.fillRect(Z,Y,J,O)}})})}}const ai=(n,t,e)=>{n.length!==0&&n.forEach((s,r)=>{const{centerUnit:i,close:a}=s,o=e.toX(i),l=e.toY(a);r===0?t.moveTo(o,l):t.lineTo(o,l)})},Ic=/^(#)([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,Bc=/^\s*(rgba?)\s*[(]\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*[\d.]+\s*)?[)]\s*$/i;function Rc(n){const t=Ic.exec(n)||Bc.exec(n);let e=[];return t&&(e=t.slice(2,5),t[1]==="#")?e.map(function(s){return parseInt(s,16)}):e}const oi={};function Fc(n,t){let e=oi[n+t];if(!e){const s=Rc(n);e=s&&"rgba("+s.join(",")+","+t+")",oi[n+t]=e}return e}class Hc{constructor(){}draw(t,e,s,r){s.config.visible&&(e.forEach((i,a)=>{var o;const l=s.getPaintConfig(a);Ae(t,l.lineWidth,s,r,l.hoveredLineWidth);const c=(o=r.singleColor)!=null?o:l.color;t.strokeStyle=c,this.drawLine(t,i,s.view)}),s.linkedDataSeriesModels.forEach((i,a)=>{if(ci(i.config.type)&&ci(s.config.type)&&i.config.visible){const o=[],l=s,c=l.getSeriesInViewport(l.scale.xStart-1,l.scale.xEnd+1),h=i.getSeriesInViewport(i.scale.xStart-1,i.scale.xEnd+1);c.forEach((v,p)=>{const C=Math.min(v.length,h[p].length);for(let Y=0;Y<C;Y++){const k=[v[Y].clone(),h[p][Y].clone()];o.push({diffPoints:k})}const O=l.getPaintConfig(p).color,B=i.getPaintConfig(a).color;this.drawDifference(t,O,B,o,l,i,r)})}}))}drawLine(t,e,s){t.beginPath(),ai(e,t,s),t.stroke()}drawDifference(t,e,s,r,i,a,o){const[l,c]=[[],[]];r.forEach(p=>{const[C,O]=p.diffPoints;l.push(C),c.push(O)});const h=li(l,i.view),v=li(c,a.view);this.fillCloud(t,s,h,v,o),this.fillCloud(t,e,v,h,o)}fillCloud(t,e,s,r,i){var a,o,l,c;t.save(),t.beginPath();const h=(o=(a=He(s))==null?void 0:a.x)!=null?o:0,v=(c=(l=Ft(s))==null?void 0:l.x)!=null?c:0;t.lineTo(h,0),s.forEach(p=>{t.lineTo(p.x,p.y)}),t.lineTo(v,0),t.closePath(),t.clip(),t.beginPath(),s.forEach((p,C)=>{C===0?t.moveTo(p.x,p.y):t.lineTo(p.x,p.y)}),r.slice().reverse().forEach(p=>{t.lineTo(p.x,p.y)}),t.closePath(),t.fillStyle=i.singleColor?i.singleColor:Fc(e||"#383838",.3),t.fill(),t.restore()}}const li=(n,t)=>n.map(e=>{const{centerUnit:s,close:r}=e,i=t.toX(s),a=t.toY(r);return{x:i,y:a}}),ci=n=>n==="DIFFERENCE";class Yc{constructor(){}draw(t,e,s,r){const i=s.view.toY(0);e.forEach((a,o)=>{var l;const c=s.getPaintConfig(o);Ae(t,c.lineWidth,s,r,c.hoveredLineWidth),t.strokeStyle=(l=r.singleColor)!=null?l:c.color,t.beginPath(),a.forEach(h=>{const v=s.view.toX(h.centerUnit),p=s.view.toY(h.close);t.moveTo(v,gt(i)),t.lineTo(v,gt(p))}),t.stroke()})}}class Nc{constructor(){}draw(t,e,s,r){e.forEach((i,a)=>{var o;const l=s.getPaintConfig(a);Ae(t,l.lineWidth,s,r,l.hoveredLineWidth),t.strokeStyle=(o=r.singleColor)!=null?o:l.color,this.drawLinePath(t,i,s.view)})}drawLinePath(t,e,s){t.beginPath(),ai(e,t,s),t.stroke()}}class kc{constructor(){}draw(t,e,s,r){e.forEach((i,a)=>{var o;const l=s.getPaintConfig(a),c=l.lineWidth;t.fillStyle=(o=r.singleColor)!=null?o:l.color,t.lineWidth=1,i.forEach(h=>{t.beginPath();const v=s.view.toX(h.centerUnit),p=s.view.toY(h.close);t.arc(v,p,c,0,Math.PI*2),t.fill()})})}}class jc{constructor(t){this.config=t}draw(t,e,s,r){t.save(),e.forEach((i,a)=>{var o;const l=s.getPaintConfig(a);t.fillStyle=(o=r.singleColor)!=null?o:l.color;const c=l.lineWidth+"px "+this.config.components.yAxis.fontFamily;t.font=c,i.forEach(h=>{const v=s.getTextForPoint(h),p=Ht(v,t,c),C=ne(c,t),O=s.view.toX(h.centerUnit)-p/2,B=s.view.toY(h.close)+C;t.fillText(v,O,B)})}),t.restore()}}class Uc{constructor(){}draw(t,e,s,r){e.forEach((i,a)=>{var o;const l=s.getPaintConfig(a);t.fillStyle=(o=r.singleColor)!=null?o:l.color,i.forEach(c=>{const h=s.view.toX(c.centerUnit),v=s.view.toY(c.close);this.drawCandleTriangle(t,h,v,l.lineWidth)})})}drawCandleTriangle(t,e,s,r){t.beginPath(),t.moveTo(e-r/2,s),t.lineTo(e,s-r),t.lineTo(e+r/2,s),t.fill()}}const Qn="resized_local",cn="draw",Lg="draw_last_candle",De={width:20,height:20};class hi{constructor(t,e,s,r,i,a={}){this.eventBus=t,this.canvas=e,this.drawingManager=s,this.resizer=i,this.width=0,this.height=0,this.prevHeight=0,this.prevWidth=0,this.type=qn;var o;r.push(this),this.parent=Xc(e);const l=e.getContext("2d",a);if(l===null)throw new Error("Couldn't get 2d context????");this.context=l,this._canvasId=(o=e.getAttribute("data-element"))!=null?o:"",this.updateCanvasWidthHeight(e,this.getChartResizerElement().getBoundingClientRect())}updateDPR(t){const{width:e,height:s}=t,r=window.devicePixelRatio;this.canvas.style.height=s+"px",this.canvas.style.width=e+"px",this.canvas.width=e*r,this.canvas.height=s*r,this.width=e,this.height=s,this.ctx.scale(r,r)}get canvasId(){return this._canvasId}get ctx(){return this.context}clear(){this.context.clearRect(0,0,this.width,this.height)}isLinked(){var t,e;return(e=(t=this.type)==null?void 0:t.linked)!=null?e:!1}fireDraw(){this.eventBus.fireDraw([this.canvasId])}updateCanvasWidthHeight(t,e=this.getChartResizerElement().getBoundingClientRect()){t.clientWidth!==this.width&&(t.width=t.clientWidth,this.width=t.clientWidth);const s=e.height;s!==this.height&&(t.style.height=s+"px",this.height=s,t.height=s,this.prevHeight=s)}getChartResizerElement(){var t;return(t=this.resizer)!=null?t:this.parent}isReady(){return this.width>De.width&&this.height>De.height}}const qn={name:"candle"},Wc={candle:qn,bar:{name:"candle"},line:{name:"line",linked:!0},area:{name:"area",linked:!0}};function zc(n,t,e,s,r,i,a){var o;const l=Ee(n,t,r,i,a,e);return l.type=(o=Wc[s])!=null?o:qn,l}function Ee(n,t,e,s,r,i,a){const o=new hi(n,t,s,r,i,a);return di(o,e),o}function di(n,t){const e=n.canvas;t.fixedSize&&(e.width=t.fixedSize.width,e.height=t.fixedSize.height,e.style.width=t.fixedSize.width+"px",e.style.height=t.fixedSize.height+"px",n.width=t.fixedSize.width,n.height=t.fixedSize.height),e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.direction="ltr"}function Xc(n){let t=n;for(;t;){if(t.nodeType===1&&t.hasAttribute("data-chart-container"))return t;if(t.parentElement!==null)t=t.parentElement;else break}return t}let ts=!1,es=0;const hn=new Map,ns=new Map,ui=()=>{ts||(ts=!0,es=requestAnimationFrame(()=>{ns.forEach((n,t)=>{n(),ns.delete(t)}),hn.forEach((n,t)=>{n(),hn.delete(t)}),ts=!1}))},fi=(n,t)=>{hn.set(n,t),ui()},Fg=n=>{hn.delete(n)},ss=(n,t)=>{ns.set(n,t),ui()},dn="HIT_TEST_",Hg=null;class Vc{constructor(t,e){this.chartResizeHandler=e,this.drawingOrder=[],this.drawersMap={},this.canvasIdsList=[],this.animFrameId=`draw_${te()}`,this.drawHitTestCanvas=()=>{this.drawingOrder.forEach(s=>{s.indexOf(dn)!==-1&&this.drawersMap[s].draw()})},t.on(cn,s=>{e.wasResized()&&(this.canvasIdsList&&(s&&s.length!==0?this.canvasIdsList=this.canvasIdsList.concat(s):this.canvasIdsList=void 0),fi(this.animFrameId,()=>{this.forceDraw(this.canvasIdsList),this.canvasIdsList=[],this.drawHitTestCanvas()}))})}redrawCanvasesImmediate(){this.chartResizeHandler.fireUpdates(),this.forceDraw()}drawLastBar(){this.drawingOrder.forEach(t=>{if(t.indexOf(dn)===-1){const e=this.drawersMap[t];e.drawLastBar&&e.drawLastBar()}})}forceDraw(t){this.isDrawable()&&this.drawingOrder.forEach(e=>{if(e.indexOf(dn)===-1){const s=this.drawersMap[e];if(!t||t.length===0){s.draw();return}wo(t,s.getCanvasIds()).length&&s.draw()}})}isDrawable(){var t,e,s,r;return((e=(t=this.chartResizeHandler.previousBCR)==null?void 0:t.height)!=null?e:0)>De.width&&((r=(s=this.chartResizeHandler.previousBCR)==null?void 0:s.width)!=null?r:0)>De.height}drawHitTestOnly(){this.drawHitTestCanvas()}addDrawer(t,e=te()){this.drawingOrder.indexOf(e)===-1&&this.drawingOrder.push(e),this.drawersMap[e]=t}addDrawerAfter(t,e,s){this.addDrawer(t,e);const r=this.drawingOrder.indexOf(e);this.drawingOrder.splice(r,1);const i=this.drawingOrder.indexOf(s);this.drawingOrder.splice(i+1,0,e),this.reorderDrawers(this.drawingOrder)}addDrawerBefore(t,e,s){this.addDrawer(t,e);const r=this.drawingOrder.indexOf(s);if(r!==-1){const i=this.drawingOrder.indexOf(e);return this.drawingOrder.splice(i,1),this.drawingOrder.splice(r,0,e),this.reorderDrawers(this.drawingOrder),!0}return!1}getDrawerByName(t){return this.drawersMap[t]}getNameByDrawer(t){for(const e in this.drawersMap)if(this.drawersMap[e]===t)return e}removeDrawerByName(t){const e=this.drawersMap[t];this.removeDrawer(e)}removeDrawer(t){Object.keys(this.drawersMap).forEach(e=>{if(this.drawersMap[e]===t){delete this.drawersMap[e];const s=this.drawingOrder.indexOf(e);s!==-1&&this.drawingOrder.splice(s,1)}})}reorderDrawers(t){this.drawingOrder=Zs(this.drawingOrder,t)}}class gi{static paneResizer(t){return`PANE_RESIZER_${t}`}}class Gc{constructor(t,e,s){this.seriesDrawers=t,this.canvasModel=e,this.paneManager=s}draw(){const t=this.canvasModel.ctx;this.paneManager.yExtents.forEach(e=>{t.save(),we(t,e.getBounds()),e.dataSeries.forEach(s=>this.drawSeries(t,s)),t.restore()})}drawSeries(t,e){if(e.config.visible){const s=e.config.type,r=this.seriesDrawers[s];if(r){const i={singleColor:this.canvasModel.idToColor(e.id),forceBold:7};r.draw(t,e.getSeriesInViewport(e.scale.xStart-1,e.scale.xEnd+1),e,i)}}}getCanvasIds(){return[this.canvasModel.canvasId]}}const vi={disableChartPanning:!0};class mi extends tt{constructor(t,e,s,r,i){super(),this.hitTest=t,this.dragCallbacks=e,this.canvasInputListener=s,this.chartPanComponent=r,this.dragComponentOptions=i,this.dragging=!1,this.draggedPixels=0,this.onDragStart=a=>{this.dragging=!0,this.draggedPixels=0,this.dragCallbacks.onDragStart&&this.dragCallbacks.onDragStart(a),this.dragComponentOptions.disableChartPanning&&this.chartPanComponent.deactivatePanHandlers()},this.onDragTick=a=>{this.dragging&&(this.draggedPixels+=a,this.dragCallbacks.onDragTick({delta:a,draggedPixels:this.draggedPixels}))},this.onDragEnd=()=>{this.dragging&&(this.dragging=!1,this.dragCallbacks.onDragEnd&&this.dragCallbacks.onDragEnd(this.draggedPixels),this.dragComponentOptions.disableChartPanning&&this.chartPanComponent.activateChartPanHandlers())}}doActivate(){super.doActivate()}doDeactivate(){super.doDeactivate()}}class un extends mi{constructor(t,e,s,r,i=vi){super(t,e,s,r,i)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeYDragStart(this.hitTest).subscribe(this.onDragStart)),this.addRxSubscription(this.canvasInputListener.observeYDrag().subscribe(this.onDragTick)),this.addRxSubscription(this.canvasInputListener.observeYDragEnd().subscribe(this.onDragEnd))}doDeactivate(){super.doDeactivate()}}const $c="BASELINE_RESIZER";class Zc extends tt{constructor(t,e,s,r,i,a,o){super(),this.chartModel=t,this.canvasModel=s,this.canvasInputListener=r,this.config=i,this.canvasBoundContainer=a,this.cursorHandler=o,this.resizerBounds={x:0,y:0,pageX:0,pageY:0,height:0,width:0},this.baselineYPercents=50,this.ht=zn.hitTestOf(this.resizerBounds,{extensionY:this.config.components.paneResizer.dragZone}),this.dragTickCb=c=>{const{delta:h}=c,v=this.canvasBoundContainer.getBounds(H.CHART),p=this.canvasInputListener.getCurrentPoint().y;h!==0&&Qo(p,v)&&(this.moveBaseLine(p),this.canvasModel.fireDraw())};const l=new un(this.ht,{onDragTick:this.dragTickCb},r,e);this.addChildEntity(l)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasBoundContainer.observeBoundsChanged(H.CHART).subscribe(()=>this.recalculateBounds())),this.chartModel.chartTypeChanged.subscribe(t=>{t==="baseline"?this.cursorHandler.setCursorForBounds("BASELINE_RESIZER",this.resizerBounds,this.config.components.baseline.cursor,this.config.components.baseline.dragZone):this.cursorHandler.removeCursorForCanvasEl("BASELINE_RESIZER")})}recalculateBounds(){const t=this.canvasBoundContainer.getBounds(H.CHART),e=this.canvasBoundContainer.getBounds(H.Y_AXIS);this.resizerBounds.x=t.x,this.resizerBounds.width=t.width+e.width,this.resizerBounds.height=this.config.components.baseline.height;const s=t.y+t.height*(this.baselineYPercents/100);this.resizerBounds.y=s,this.canvasBoundContainer.bounds[$c]=this.resizerBounds}moveBaseLine(t){const e=this.canvasBoundContainer.getBounds(H.CHART);this.baselineYPercents=(t-e.y)*100/e.height,this.resizerBounds.y=t}doDeactivate(){super.doDeactivate()}}const fn=n=>{var t;const e=Re(n.close,n.open,n.hi,n.lo);if(!isFinite(e))throw new Error("Received candle without any price");const s=Re(n.hi,Math.max(n.open,n.close),e),r=Re(n.lo,Math.min(n.open,n.close),e),i=Re(n.open,n.lo,e),a=Re(n.close,n.hi,e);return{hi:s,lo:r,open:i,close:a,timestamp:n.timestamp,volume:(t=n.volume)!=null?t:0,expansion:n.expansion,idx:n.idx,impVolatility:n.impVolatility}},pi=n=>{for(let t=0;t<n.length;++t)n[t].idx=t},bi=n=>{n.forEach(t=>{t.idx=void 0})};class Kc{constructor(){}draw(t,e,s){const r=s.view.toY(0),i=It(e),a=[[],[]];i.forEach((o,l,c)=>{a[o.close<this.previousValue(c,l)?1:0].push(o)}),a.forEach((o,l)=>{const c=s.getPaintConfig(l);t.strokeStyle=l===0?c.color:c.aditionalColor||"#FF00FF",t.lineWidth=c.lineWidth,t.beginPath(),o.forEach(h=>{const v=s.view.toX(h.centerUnit),p=s.view.toY(h.close);t.moveTo(v,gt(r)),t.lineTo(v,gt(p))}),t.stroke()})}previousValue(t,e){do e--;while(e>=0&&!isFinite(t[e]&&t[e].close));return t[e]?t[e].close:Number.NaN}}var Jc=Object.defineProperty,Ci=Object.getOwnPropertySymbols,Qc=Object.prototype.hasOwnProperty,qc=Object.prototype.propertyIsEnumerable,yi=(n,t,e)=>t in n?Jc(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,th=(n,t)=>{for(var e in t||(t={}))Qc.call(t,e)&&yi(n,e,t[e]);if(Ci)for(var e of Ci(t))qc.call(t,e)&&yi(n,e,t[e]);return n};class eh{constructor(){this.symbol="MOCK",this.priceIncrements=[.01]}}class nh extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v,p,C){super(),this.chartModel=t,this.canvasModel=e,this.config=s,this.scale=r,this.canvasBoundsContainer=i,this.drawingManager=a,this.hitTestCanvasModel=o,this.canvasInputListener=l,this.paneManager=v,this.dynamicObjects=C,this._dataSeriesDrawers={},this.strToBarType=B=>{var Y;return(Y=this.barTypeValues.find(k=>k===B))!=null?Y:"candle"},this.addChildEntity(this.chartModel),this.registerDefaultCandlesTransformers(),this.baselineModel=new Zc(this.chartModel,h,this.canvasModel,this.canvasInputListener,this.config,this.canvasBoundsContainer,p),this.addChildEntity(this.baselineModel);const O=new Gc(this._dataSeriesDrawers,this.hitTestCanvasModel,v);this.drawingManager.addDrawerBefore(O,dn+"DATA_SERIES","HIT_TEST_EVENTS"),this.registerDefaultDataSeriesDrawers(),this.backgroundDrawer=new kl(c,this.config),a.addDrawer(this.backgroundDrawer,"MAIN_BACKGROUND"),p.setCursorForCanvasEl(H.PANE_UUID(ht),s.components.chart.cursor),this.dataSeriesDrawer=new Sc(v,this.dataSeriesDrawers)}doActivate(){super.doActivate(),this.dynamicObjects.model.addObject({model:this.chartModel.mainCandleSeries,drawer:this.dataSeriesDrawer},this.chartModel.mainCandleSeries.extentComponent.paneUUID),this.addRxSubscription(this.paneManager.dataSeriesAddedSubject.subscribe(t=>{this.dynamicObjects.model.addObject({model:t,drawer:this.dataSeriesDrawer},t.extentComponent.paneUUID)})),this.addRxSubscription(this.paneManager.dataSeriesRemovedSubject.subscribe(t=>{this.dynamicObjects.model.removeObject(t,t.extentComponent.paneUUID)}))}registerDefaultCandlesTransformers(){this.registerCandlesTransformer("candle",Wr),this.registerCandlesTransformer("trend",Ul),this.registerCandlesTransformer("hollow",jl)}get barTypeValues(){return _r(this._dataSeriesDrawers)}get dataSeriesDrawers(){return this._dataSeriesDrawers}registerCandlesTransformer(t,e){this.chartModel.registerCandlesTransformer(t,e)}registerLastCandleLabelHandler(t,e){this.chartModel.registerLastCandleLabelHandler(t,e)}registerCandlesWidthCalculator(t,e){this.chartModel.registerCandlesWidthCalculator(t,e)}registerDefaultDataSeriesDrawers(){const t=new Tc(this.config.components.chart);this.registerDataSeriesTypeDrawer("candle",t),this.registerDataSeriesTypeDrawer("trend",t),this.registerDataSeriesTypeDrawer("hollow",t),this.registerDataSeriesTypeDrawer("bar",new xc(this.config.components.chart)),this.registerDataSeriesTypeDrawer("line",new _c(this.config.components.chart)),this.registerDataSeriesTypeDrawer("scatterPlot",new Dc(this.config.colors.scatterPlot)),this.registerDataSeriesTypeDrawer("area",new Cc(this.config.components.chart)),this.registerDataSeriesTypeDrawer("baseline",new Pc(this.baselineModel,this.canvasBoundsContainer)),this.registerDataSeriesTypeDrawer("histogram",new Mc(this.config.components.chart.histogram));const e=()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID(ht));this.registerDataSeriesTypeDrawer("LINEAR",new Nc),this.registerDataSeriesTypeDrawer("HISTOGRAM",new Yc),this.registerDataSeriesTypeDrawer("TREND_HISTOGRAM",new Kc),this.registerDataSeriesTypeDrawer("POINTS",new kc),this.registerDataSeriesTypeDrawer("COLOR_CANDLE",new Oc(new Lc(this.chartModel),this.config,e)),this.registerDataSeriesTypeDrawer("TEXT",new jc(this.config)),this.registerDataSeriesTypeDrawer("TRIANGLE",new Uc),this.registerDataSeriesTypeDrawer("DIFFERENCE",new Hc)}setChartType(t){this.config.components.chart.type=t,this.chartModel.rememberCurrentTimeframe(),this.chartModel.mainCandleSeries.setType(t),this.chartModel.mainCandleSeries.updateCandleSeriesColors(th({},this.config.colors)),this.chartModel.mainCandleSeries.recalculateVisualPoints(),this.chartModel.chartTypeChanged.next(t)}resetChartScale(){this.chartModel.doBasicScale()}setTimestampRange(t,e){return this.chartModel.setTimestampRange(t,e)}setXScale(t,e){return this.scale.setXScale(t,e)}setShowWicks(t){this.config.components.chart.showWicks=t,this.canvasModel.fireDraw()}setMainSeries(t){var e;const s=(e=t.instrument)!=null?e:this.chartModel.mainCandleSeries.instrument;this.chartModel.mainCandleSeries.instrument=s,this.chartModel.setAllSeries({candles:t.candles,instrument:s},this.chartModel.getSecondarySeries().map(r=>{var i;const a=(i=r.instrument)!=null?i:this.chartModel.mainCandleSeries.instrument,o=r.dataPoints;return bi(o),{candles:o,instrument:a}})),this.updatePriceIncrementsIfNeeded(s)}setSecondarySeries(t){var e;const s=(e=t.instrument)!=null?e:this.chartModel.mainCandleSeries.instrument,r=this.chartModel.setSecondaryCandleSeries(t.candles,s);if(this.updatePriceIncrementsIfNeeded(s),r)return r}setAllSeries(t,e=[]){var s;const r=(s=t.instrument)!=null?s:this.chartModel.mainCandleSeries.instrument;this.updatePriceIncrementsIfNeeded(r),e.forEach(i=>{var a;const o=(a=i.instrument)!=null?a:this.chartModel.mainCandleSeries.instrument;this.updatePriceIncrementsIfNeeded(o)}),this.chartModel.setAllSeries(t,e)}toXFromCandleIndex(t){return this.chartModel.toX(t)}toXFromTimestamp(t){return this.chartModel.candleFromTimestamp(t).xCenter(this.chartModel.scale)}toY(t){return this.chartModel.toY(t)}updateAllSeries(t,e=[]){this.chartModel.updateAllSeries(t,e),this.canvasModel.fireDraw()}removeDataFrom(t){this.chartModel.removeDataFrom(t)}removeSecondarySeries(t){this.chartModel.removeSecondaryCandleSeries(t)}prependCandles(t,e){this.chartModel.prependCandles(t,e)}addLastCandle(t,e){this.chartModel.addLastCandle(t,e)}updateLastCandle(t,e){this.chartModel.updateLastCandle(t,e)}updateCandles(t,e){this.chartModel.updateCandles(t,e)}setOffsets(t){this.chartModel.setOffsets(t)}getDataSeriesDrawer(t){return this._dataSeriesDrawers[t]}registerDataSeriesTypeDrawer(t,e){this._dataSeriesDrawers[t]=e}updatePriceIncrementsIfNeeded(t){(!t.priceIncrements||!Kt.validatePriceIncrementsOrPrecisions(t.priceIncrements))&&(t.priceIncrements=[Kt.autoDetectIncrementOfValueRange(this.scale.yEnd-this.scale.yStart)])}observeOffsetsChanged(){return this.chartModel.offsetsChanged}observeChartTypeChanged(){return this.chartModel.chartTypeChanged}observeCandlesChanged(){return this.chartModel.observeCandlesChanged()}observeCandlesUpdated(){return this.chartModel.candlesUpdatedSubject}observeCandlesPrepended(){return this.chartModel.candlesPrependSubject}}class sh extends ue{constructor(t,e,s,r,i,a,o,l,c){super(e,s,r,i,a,o,l,c),this.baseModel=t}set visualPoints(t){super.visualPoints=t,this.baseModel.mainVisualPoints=super.visualPoints}get visualPoints(){return super.visualPoints}set dataPoints(t){super.dataPoints=t,this.baseModel.mainDataPoints=super.dataPoints}get dataPoints(){return super.dataPoints}recalculateMeanCandleWidth(t){super.recalculateMeanCandleWidth(t),this.baseModel.meanDataWidth=this.meanCandleWidth}}const rh=n=>t=>{if(t.length!==0){const e=t.slice(Math.max(t.length-n.state.defaultViewportItems,0)),s=e[0],r=e[e.length-1];n.setXScale(s.startUnit,r.startUnit+r.width+n.offsets.right),n.doAutoScale(!0),n.recalculateZoomXYRatio(),n.fireChanged()}},ih=(n,t)=>(e,s=null)=>{const[r,i]=e,a=t.candleFromTimestamp(r).startUnit,o=t.candleFromTimestamp(i).startUnit,l=s===null?0:t.mainCandleSeries.meanCandleWidth*2,c=s?a-l:a+l,h=s?o+l:o-l;n.setXScale(c,h)};var ah=Object.defineProperty,oh=Object.defineProperties,lh=Object.getOwnPropertyDescriptors,wi=Object.getOwnPropertySymbols,ch=Object.prototype.hasOwnProperty,hh=Object.prototype.propertyIsEnumerable,Si=(n,t,e)=>t in n?ah(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ze=(n,t)=>{for(var e in t||(t={}))ch.call(t,e)&&Si(n,e,t[e]);if(wi)for(var e of wi(t))hh.call(t,e)&&Si(n,e,t[e]);return n},rs=(n,t)=>oh(n,lh(t));class dh{constructor(t){this.config=t,this.usedChartColors={},this.symbolsToColorKeys={},this.secondaryChartColorsPool=this.createColorPool(this.config.colors.secondaryChartTheme),this.usedChartColors=Object.keys(this.secondaryChartColorsPool).reduce((e,s)=>rs(ze({},e),{[s]:0}),{})}createColorPool(t){return t.reduce((e,s,r)=>(e[`color${r}`]=rs(ze({},je(this.config.colors)),{lineTheme:ze({},s.lineTheme),areaTheme:ze({},s.areaTheme)}),e),{})}takeColorFromPool(t){let e=Number.MAX_SAFE_INTEGER,s="";for(const[r,i]of Object.entries(this.usedChartColors))i<e&&(e=i,s=r);return this.usedChartColors[s]=this.usedChartColors[s]+1,this.symbolsToColorKeys[t]=s,this.secondaryChartColorsPool[s]}addColorToPool(t){const e=this.symbolsToColorKeys[t];this.usedChartColors[e]&&(this.usedChartColors[e]=this.usedChartColors[e]-1)}updateColorConfig(t,e){var s,r;const i=this.secondaryChartColorsPool[this.usedChartColors[t]];if(i){const a=e;this.secondaryChartColorsPool[this.usedChartColors[t]]=rs(ze({},e),{lineTheme:Object.assign(i.lineTheme,(s=a.lineTheme)!=null?s:{}),areaTheme:Object.assign(i.areaTheme,(r=a.areaTheme)!=null?r:{})})}}}var uh=Object.defineProperty,xi=Object.getOwnPropertySymbols,fh=Object.prototype.hasOwnProperty,gh=Object.prototype.propertyIsEnumerable,Pi=(n,t,e)=>t in n?uh(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,gn=(n,t)=>{for(var e in t||(t={}))fh.call(t,e)&&Pi(n,e,t[e]);if(xi)for(var e of xi(t))gh.call(t,e)&&Pi(n,e,t[e]);return n};class vh extends tt{constructor(t,e,s,r,i,a,o,l,c,h){super(),this.chartBaseModel=t,this.paneManager=e,this.bus=s,this.canvasModel=r,this.config=i,this.scale=a,this.formatterFactory=o,this.mainCanvasParent=l,this.canvasBoundsContainer=c,this.chartResizeHandler=h,this.prevChartWidth=0,this.prevYWidth=0,this.candleSeries=[],this.nextCandleTimeStampSubject=new V,this.chartTypeChanged=new V,this.mainInstrumentChangedSubject=new V,this.scaleInversedSubject=new V,this.offsetsChanged=new V,this.candlesTransformersByChartType={},this.lastCandleLabelsByChartType={},this.candleWidthByChartType={},this.lastTimeFrame=[0,0],this.FAKE_CANDLES_DEFAULT=100,this.toY=p=>this.mainCandleSeries.view.toY(p),this.chartTypeChanged.next(this.config.components.chart.type),this.secondaryChartColors=new dh(this.config);const v=new sh(this.chartBaseModel,this.paneManager.panes[ht].mainExtent,this.paneManager.hitTestController.getNewDataSeriesHitTestId(),this.bus,this.scale,new eh,this.candlesTransformersByChartType,this.candleWidthByChartType,gn({},this.config.colors));v.config.type=this.config.components.chart.type,this.candleSeries.push(v),a.addXConstraint((p,C)=>ac(C,this.mainCandleSeries.visualPoints,this.config.components.chart.minCandlesOffset,a.getBounds())),this.basicScaleViewportTransformer=rh(a),this.timeFrameViewportTransformer=ih(a,this),this.pane=this.paneManager.panes[ht]}get mainCandleSeries(){return this.candleSeries[0]}get secondaryCandleSeries(){return this.candleSeries.filter(t=>t!==this.mainCandleSeries)}get candlesUpdatedSubject(){return this.chartBaseModel.dataUpdatedSubject}get candlesSetSubject(){return this.chartBaseModel.dataSetSubject}get candlesRemovedSubject(){return this.chartBaseModel.dataRemovedSubject}get candlesPrependSubject(){return this.chartBaseModel.dataPrependSubject}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasBoundsContainer.observeBoundsChanged(H.PANE_UUID(ht)).pipe(Gt(br)).subscribe(t=>{this.handleChartResize(t)}))}handleChartResize(t){if(t.width>De.width&&t.height>De.height){const e=this.getEffectiveChartWidth(),s=this.getEffectiveYAxisWidth();if(this.prevChartWidth===0){this.scale.isViewportValid()?this.scale.recalculateZoom():this.doBasicScale(),this.prevChartWidth=e,this.prevYWidth=s;return}if(s!==this.prevYWidth){if(this.config.scale.keepZoomXOnYAxisChange){const i=re(s-this.prevYWidth,this.scale.zoomX);this.scale.setXScale(this.scale.xStart,this.scale.xEnd-i)}else this.scale.recalculateZoomX();this.prevYWidth=s,this.prevChartWidth=e;return}const r=re(e-this.prevChartWidth,this.scale.zoomX);this.scale.setXScale(this.scale.xStart-r,this.scale.xEnd),this.scale.recalculateZoomY(),this.prevYWidth=s,this.prevChartWidth=e}}setMainCandleSeries(t,e){this.mainCandleSeries.instrument=e,this.setAllSeries({candles:t,instrument:e},this.getSecondarySeries().map(s=>{const r=s.dataPoints;return bi(r),{candles:r,instrument:s.instrument}}))}setSecondaryCandleSeries(t,e=this.mainCandleSeries.instrument,s=!0){const r=vn(t.map(fn)),i=this.reindexCandlesBasedOnSeries(this.mainCandleSeries.dataPoints,r),a=this.secondarySeriesAdjustments(this.mainCandleSeries.dataPoints,i),l=this.secondaryCandleSeries.some(c=>c.instrument.symbol===e.symbol)?this.secondaryCandleSeries.find(c=>c.instrument.symbol===e.symbol):this.createSecondaryCandleSeriesModel(e);if(l)return l.dataPoints=a,s&&(this.scale.doAutoScale(),l.recalculateVisualPoints(),this.candlesSetSubject.next(),this.bus.fireDraw([this.canvasModel.canvasId])),l}setAllSeries(t,e=[]){var s;this.mainCandleSeries.instrument=(s=t.instrument)!=null?s:this.mainCandleSeries.instrument,t.instrument&&this.mainInstrumentChangedSubject.next(t.instrument),this.rememberCurrentTimeframe();const r=vn(t.candles.map(fn));this.mainCandleSeries.clearData(),pi(r),this.mainCandleSeries.dataPoints=r,this.secondaryCandleSeries.filter(i=>e.filter(a=>{var o;return((o=a.instrument)==null?void 0:o.symbol)===i.instrument.symbol}).length===0).forEach(i=>this.removeSecondaryCandleSeries(i)),e.map(i=>this.setSecondaryCandleSeries(i.candles,i.instrument,!1)),this.candleSeries.forEach(i=>{i.recalculateDataViewportIndexes(),i.recalculateVisualPoints()}),this.chartBaseModel.recalculatePeriod(),this.autoScaleOnCandles(),this.scale.doAutoScale(),this.candlesSetSubject.next(),this.bus.fireDraw([this.canvasModel.canvasId])}autoScaleOnCandles(){this.scale.state.autoScaleOnCandles&&(this.doBasicScale(),this.scale.autoScale(!0))}doBasicScale(){this.basicScaleViewportTransformer(this.mainCandleSeries.visualPoints),this.bus.fireDraw()}doPreviousTimeFrameScale(t=null){this.timeFrameViewportTransformer(this.lastTimeFrame,t),this.scale.state.autoScaleOnCandles&&this.scale.doAutoScale(!0),this.bus.fireDraw()}rememberCurrentTimeframe(){this.mainCandleSeries.visualPoints.length!==0&&(this.lastTimeFrame=[this.candleFromX(this.scale.toX(this.scale.xStart),!0).timestamp,this.candleFromX(this.scale.toX(this.scale.xEnd),!0).timestamp])}updateAllSeries(t,e=[]){t=gn({},t),t.instrument||(t.instrument=this.mainCandleSeries.instrument);const s=[t,...e];if(!this.candleSeries.every(l=>s.find(c=>{var h;return((h=c.instrument)==null?void 0:h.symbol)===l.instrument.symbol}))||e.length!==this.secondaryCandleSeries.length){console.error("All series update failed. Instruments for series are different.");return}const r=vn(t.candles.map(fn)),i=Mi(this.mainCandleSeries.dataPoints,r),a=i.candles;pi(a),this.mainCandleSeries.dataPoints=a,e.map(l=>{var c,h,v,p;const C=vn(l.candles.map(fn)),O=Mi((p=(v=this.findSecondarySeriesBySymbol((h=(c=l.instrument)==null?void 0:c.symbol)!=null?h:""))==null?void 0:v.dataPoints)!=null?p:[],C).candles;return this.setSecondaryCandleSeries(O,l.instrument,!1)}),this.candleSeries.forEach(l=>{l.recalculateVisualPoints(),l.recalculateDataViewportIndexes()});const o=this.chartBaseModel.mainVisualPoints.slice(0,i.prepended).reduce((l,c)=>l+c.width,0);this.scale.moveXStart(this.scale.xStart+o),this.candlesPrependSubject.next({prependedCandlesWidth:o,preparedCandles:r}),this.chartBaseModel.recalculatePeriod(),this.candlesUpdatedSubject.next(),this.bus.fireDraw()}removeDataFrom(t){Object.values(this.paneManager.panes).forEach(e=>{e.dataSeries.forEach(s=>{const r=de(s.dataPoints,t,a=>a.timestamp),i=r.exact?r.index:r.index+1;s.dataPoints=s.dataPoints.slice(0,i)})}),this.candlesRemovedSubject.next(),this.candlesUpdatedSubject.next(),this.canvasModel.fireDraw()}createSecondaryCandleSeriesModel(t){const e=gn(gn({},this.config.colors),this.secondaryChartColors.takeColorFromPool(t.symbol));return this.createCandleSeriesModel(t,e)}createCandleSeriesModel(t,e){const s=new ue(this.paneManager.panes[ht].mainExtent,this.paneManager.hitTestController.getNewDataSeriesHitTestId(),this.bus,this.scale,t,this.candlesTransformersByChartType,this.candleWidthByChartType,e);return s.config.type="line",this.candleSeries.push(s),s}removeSecondaryCandleSeries(t){return this.secondaryChartColors.addColorToPool(t.instrument.symbol),this.candleSeries=this.candleSeries.filter(e=>e!==t),t.deactivate(),this.paneManager.panes[ht].removeDataSeries(t),this.scale.doAutoScale(),t.colors}secondarySeriesAdjustments(t,e){const s=[];return t.forEach(r=>{var i;const a=(i=r.idx)!=null?i:0,o=e[a];if(o)s.push(o);else{let l=Ti(e,a,-1);if(l||(l=Ti(e,a,1)),l){const c=fl(l,a,!0);s.push(c)}}}),s}updateSecondaryCandleSeriesConfig(t,e,s){const r=$t(t,qe().colors);this.secondaryChartColors.updateColorConfig(e,r);const i=this.findSecondarySeriesBySymbol(e);i&&(i.config.type=s,i.updateCandleSeriesColors(r),this.bus.fireDraw([this.canvasModel.canvasId])),this.bus.fireDraw([this.canvasModel.canvasId])}setAutoScale(t){this.scale.autoScale(t)}getEffectiveYAxisWidth(){return this.canvasBoundsContainer.getBounds(H.PANE_UUID_Y_AXIS(ht)).width}getEffectiveChartWidth(){return this.canvasBoundsContainer.getBounds(H.PANE_UUID(ht)).width}getEffectiveChartHeight(){return this.canvasBoundsContainer.getBounds(H.PANE_UUID(ht)).height}setOffsets(t){this.scale.updateOffsets(t);const e=this.getCandlesCountWithRightOffset(),s=this.mainCandleSeries.visualPoints;this.hasCandles()&&e>=s.length&&this.scale.setXScale(this.scale.xStart,this.candleFromIdx(e).startUnit),this.offsetsChanged.next(),this.bus.fireDraw()}getOffsets(){return this.scale.getOffsets()}fromY(t){return this.scale.fromY(t)}priceFromY(t,e){return(e!=null?e:this.mainCandleSeries).view.priceFromY(t)}fromX(t){return this.scale.fromX(t)}toX(t){const e=this.candleFromIdx(t);return this.scale.toX(e.centerUnit)}candleFromX(t,e=!1,s=this.mainCandleSeries){const r=this.scale.fromX(t);return this.candleFromUnit(r,e,s)}candleFromUnit(t,e=!1,s=this.mainCandleSeries){var r,i;const a=de(s.visualPoints,t,v=>v.startUnit),o=s.visualPoints,l=this.getLastVisualCandle();o[a.index]!==void 0&&(t<0||l&&t>l.startUnit+l.width)&&(a.index+=pe((t-o[a.index].centerUnit)/this.mainCandleSeries.meanCandleWidth));const c=a.index,h=Math.max(Math.min(o.length-1,c),0);return(c<0||c>=o.length)&&e?We(this.mainCandleSeries.dataPoints,c,this.chartBaseModel.period):(i=(r=o[h])==null?void 0:r.candle)!=null?i:We(this.mainCandleSeries.dataPoints,h,this.chartBaseModel.period)}candleFromTimestamp(t,e=!0){return this.chartBaseModel.dataFromTimestamp(t,e)}candleFromIdx(t){return this.chartBaseModel.dataFromIdx(t)}isReady(){return this.canvasModel.isReady()&&this.hasCandles()}registerCandlesTransformer(t,e){this.candlesTransformersByChartType[t]=e}registerCandlesWidthCalculator(t,e){this.candleWidthByChartType[t]=e}registerLastCandleLabelHandler(t,e){this.lastCandleLabelsByChartType[t]=e}hasCandles(){return this.mainCandleSeries.visualPoints.length!==0}getVisualCandle(t){var e,s,r;const i=t-((r=(s=(e=this.mainCandleSeries.visualPoints[0])==null?void 0:e.candle)==null?void 0:s.idx)!=null?r:0);return this.mainCandleSeries.visualPoints[i]}getFirstIdx(){return this.mainCandleSeries.dataIdxStart}getLastIdx(){return this.mainCandleSeries.dataIdxEnd}getFirstTimestamp(t=!0){return t?this.candleFromIdx(this.getFirstIdx()).candle.timestamp:this.candleFromUnit(this.scale.xStart,!0).timestamp}getLastTimestamp(t=!0){return t?this.candleFromIdx(this.getLastIdx()).candle.timestamp:this.candleFromUnit(this.scale.xEnd,!0).timestamp}setTimestampRange(t,e){const s=this.candleFromTimestamp(t).startUnit,r=this.candleFromTimestamp(e),i=r.startUnit+r.width;return this.scale.setXScale(s,i)}getLastCandle(){const t=this.mainCandleSeries.dataPoints;return Ft(t)}getLastVisualCandle(){const t=this.mainCandleSeries.visualPoints;return Ft(t)}getMaxCandlesFitLength(){return gt(this.getEffectiveChartWidth()/this.config.components.chart.minWidth)}getSecondarySeries(){return this.secondaryCandleSeries}isSeriesInstrument(t,e){return t.instrument.symbol===e}findSeriesBySymbol(t){return this.candleSeries.filter(e=>this.isSeriesInstrument(e,t))}findSecondarySeriesBySymbol(t){return this.secondaryCandleSeries.find(e=>this.isSeriesInstrument(e,t))}reindexCandlesBasedOnSeries(t,e){return e.reduce((s,r)=>{const i=r.timestamp,a=ke(i,!1,t,this.chartBaseModel.period);return a.index>=0&&a.index<t.length&&(r.idx=a.index,s[a.index]=r),s},[])}getPeriod(){return this.chartBaseModel.period}isCandleInViewport(t){return this.getFirstIdx()<=t&&t<=this.getLastIdx()}updateCandles(t,e=this.mainCandleSeries.instrument.symbol){const s=this.mainCandleSeries.instrument.symbol===e,r=this.findSeriesBySymbol(e);if(r.length===0){console.warn("updateCandles failed. Can't find series",e);return}r.forEach(i=>{const a=i.dataPoints;let o=!1,l=!1,c;t.forEach(h=>{var v;if(!h)return;const p=ke(h.timestamp,!0,a,this.getPeriod()),C=Math.min(p.index,a.length);o=o||C===a.length,a[C]=h,h.idx=C,i.dataPoints=a,i.recalculateDataViewportIndexes(),l=l||this.isCandleInViewport(C);const O=C>=a.length-1,B=c&&h.timestamp<c.timestamp;if(O&&!B&&(c=h),o&&c&&s&&l){const Y=(v=this.candleWidthByChartType[this.config.components.chart.type])!=null?v:zr;this.scale.moveXStart(this.scale.xStart+Y(c))}}),c&&i.updateCurrentPrice(c.close),l&&c&&t.length===1?this.bus.fireDraw([this.canvasModel.canvasId]):i.recalculateVisualPoints()}),this.scale.doAutoScale(),this.candlesUpdatedSubject.next()}observeCandlesChanged(){return Lt(this.candlesSetSubject,this.candlesUpdatedSubject)}getCandles(){return this.mainCandleSeries.dataPoints}getCandlesWithFake(t=0,e){let s=this.getCandles().slice();const r=this.getCandlesCount(),i=e!=null?e:r+this.FAKE_CANDLES_DEFAULT;s=s.slice(Math.max(0,t),Math.min(r,i));const a=[],o=[];for(let c=r;c<i;c++)a.push(We(this.mainCandleSeries.dataPoints,c,this.getPeriod()));const l=Math.min(0,i);for(let c=t;c<l;c++)o.push(We(this.mainCandleSeries.dataPoints,c,this.getPeriod()));return[...o,...s,...a]}getCandlesCount(){return this.mainCandleSeries.dataPoints.length}getCandlesCountWithRightOffset(){return this.getCandlesCount()+this.getOffsets().right}clearData(){this.candleSeries.forEach(t=>t.clearData())}prependCandles(t,e){const s=t.slice(),r=[];return e.forEach(i=>{const o=ke(i.timestamp,!1,t).index;o<0?r.push(i):t[o].timestamp===i.timestamp?s[o]=i:console.warn(`Couldn't update candle with timestamp ${i.timestamp}`)}),{prepended:r.length,candles:[...r,...s]}}addLastCandle(t,e=this.mainCandleSeries.instrument.symbol){this.updateCandles([t],e)}updateLastCandle(t,e=this.mainCandleSeries.instrument.symbol){this.updateCandles([t],e)}}const vn=n=>n.slice().sort((t,e)=>t.timestamp===e.timestamp?0:t.timestamp>e.timestamp?1:-1),Ti=(n,t,e)=>{if(t>=n.length)return n[n.length-1];for(let s=t;s<n.length&&s>=0;s+=e){const r=n[s];if(r)return r}},Mi=(n,t)=>{const e=n.slice(),s=[],r=[];return t.forEach(i=>{const o=ke(i.timestamp,!0,n).index;o<0?s.push(i):o>=n.length?r.push(i):n[o].timestamp===i.timestamp?e[o]=i:console.warn(`Couldn't update candle with timestamp ${i.timestamp}`)}),{prepended:s.length,appended:r.length,candles:[...s,...e,...r]}};class Xe{constructor(t){this.canvasModel=t}draw(){this.canvasModel.clear()}getCanvasIds(){return[this.canvasModel.canvasId]}}class is{constructor(t){this.drawers=t!=null?t:new Map}draw(){this.drawers.forEach(t=>t.draw())}addDrawer(t,e){const s=e!=null?e:"drawer"+this.drawers.size;this.drawers.set(s,t)}drawLastBar(){this.drawers.forEach(t=>t.drawLastBar&&t.drawLastBar())}removeDrawer(t){const e=Mr(this.drawers,t);e?this.drawers.delete(e):console.warn("Couldn't find drawer type")}removeDrawerByName(t){this.drawers.delete(t)}getDrawer(t){return this.drawers.get(t)}moveTop(t){const e=Mr(this.drawers,t);e?this.moveTopByName(e):console.warn("Couldn't find drawer type")}moveTopByName(t){if(this.drawers.size===1)return;const e=this.drawers.get(t);this.drawers.delete(t),e&&this.drawers.set(t,e)}getSize(){return this.drawers.size}getAll(){return this.drawers}getCanvasIds(){const t=It(Array.from(this.drawers).map(([,s])=>s.getCanvasIds())),e=new Set([...t]);return Array.from(e)}}class mh{constructor(t,e,s){this.model=t,this.crossToolCanvasModel=e,this.crossToolTypeDrawers=s}draw(){const t=this.crossToolTypeDrawers[this.model.type];t?this.model.currentHover&&t.draw(this.crossToolCanvasModel.ctx,this.model.currentHover):console.error(`No cross tool drawer type registered for drawer type ${this.model.type}`)}getCanvasIds(){return[this.crossToolCanvasModel.canvasId]}}class ph extends tt{constructor(t,e,s,r){super(),this.config=t,this.crossToolCanvasModel=e,this.crossEventProducer=s,this.hoverProducer=r,this.currentHoverSubject=new ee(null),this.type="cross-and-labels",this.type=t.type}get currentHover(){return this.currentHoverSubject.getValue()}set currentHover(t){this.currentHoverSubject.next(t)}setType(t){this.type=t}doActivate(){super.doActivate(),this.addRxSubscription(this.hoverProducer.hoverSubject.subscribe(t=>{this.crossEventProducer.crossSubject.getValue()!==null&&t!==null?this.updateHover(t):this.currentHover=null,this.fireDraw()}))}fireDraw(){this.type!=="none"&&this.crossToolCanvasModel.fireDraw()}updateHover(t,e=this.config.magnetTarget){if(this.currentHover===null?this.currentHover={x:t.x,y:0,time:t.timeFormatted,paneId:t.paneId}:(this.currentHover.x=t.x,this.currentHover.time=t.timeFormatted),t.candleHover&&t.paneId===ht)switch(e){case"O":this.currentHover.y=t.candleHover.openY;break;case"C":this.currentHover.y=t.candleHover.closeY;break;case"H":this.currentHover.y=t.candleHover.highY;break;case"L":this.currentHover.y=t.candleHover.lowY;break;case"OHLC":this.currentHover.y=t.candleHover.closestOHLCY;break;case"none":this.currentHover.y=t.y;break}else this.currentHover.y=t.y;this.currentHoverSubject.next(this.currentHover)}}const zt=4;function bh(n,t,e,s,r,i,a,o=!1){var l,c,h,v,p,C,O;const B=i.align,Y=(l=r.textFont)!=null?l:be(i),k=r.bgColor,z=(c=r.textColor)!=null?c:Ye(k,a.labelTextColor,a.labelInvertedTextColor),Z=(h=r.paddingTop)!=null?h:zt,J=(v=r.paddingBottom)!=null?v:zt,K=(p=r.paddingEnd)!=null?p:zt,U=pe(ne(Y,n)/2),Q=s-U-Z,at=s+U+J-Q;if((s<t.y+at/2||s>t.y+t.height-at/2)&&!o)return;n.save(),n.fillStyle=k,n.strokeStyle=k;const nt=pe(t.width/6),ot=B==="right"?t.x:t.x+t.width,dt=B==="right"?ot+nt:ot-nt,ct=i.labelBoxMargin.end,St=ct-K,ut=t.width-nt-St;yc(n,dt,Q,ot,Q+pe(at/2),dt,Q+at,ut,(O=(C=i.typeConfig.badge)==null?void 0:C.rounded)!=null?O:!1,B),n.fillStyle=z,n.font=Y;const vt=B==="right"?t.x+t.width-Ht(e,n,Y)-ct:t.x+ct;n.fillText(e,vt,s+U-1),n.restore()}function Ch(n,t,e,s,r,i,a,o=!1){var l,c,h,v,p,C,O,B,Y,k,z;const Z=i.align,J=(l=r.textFont)!=null?l:be(i),K=r.bgColor,U=(c=r.textColor)!=null?c:Ye(K,a.labelTextColor,a.labelInvertedTextColor),Q=(h=i.typeConfig.rectangle)==null?void 0:h.paddings,it=(p=(v=r.paddingTop)!=null?v:Q==null?void 0:Q.top)!=null?p:zt,at=(O=(C=r.paddingBottom)!=null?C:Q==null?void 0:Q.bottom)!=null?O:zt,nt=(Y=(B=r.paddingEnd)!=null?B:Q==null?void 0:Q.end)!=null?Y:zt,ot=r.paddingStart,dt=ne(J,n),ct=s-dt/2-it,ut=s+dt/2+at-ct,vt=(z=r.rounded)!=null?z:(k=i.typeConfig.rectangle)==null?void 0:k.rounded;if((s<t.y+ut/2||s>t.y+t.height-ut/2)&&!o)return;n.save(),n.fillStyle=K,n.strokeStyle=K;const pt=i.labelBoxMargin.end;n.font=J;const Yt=Ht(e,n,J),Nt=pt-nt,kt=ot!==void 0?Yt+ot+nt:t.width-Nt,ve=Z==="right"?t.x+t.width-Nt-kt:t.x+Nt,Pn=Z==="right"?t.x+t.width-Yt-pt:pt;vt?si(n,ve,ct,kt,ut,4,!0):n.fillRect(ve,ct,kt,ut),n.fillStyle=U,n.fillText(e,Pn,s+dt/2-1),n.restore()}function yh(n,t,e,s,r,i,a,o=!1,l){var c,h,v,p,C,O,B,Y,k;const z=i.align,Z=(c=r.textFont)!=null?c:be(i),J=r.bgColor,K=(h=r.textColor)!=null?h:Ye(J,a.labelTextColor,a.labelInvertedTextColor),U=(v=i.typeConfig.rectangle)==null?void 0:v.paddings,Q=(C=(p=r.paddingTop)!=null?p:U==null?void 0:U.top)!=null?C:zt,it=(B=(O=r.paddingBottom)!=null?O:U==null?void 0:U.bottom)!=null?B:zt,at=(k=(Y=r.paddingEnd)!=null?Y:U==null?void 0:U.end)!=null?k:zt,nt=r.paddingStart,ot=ne(Z,n),dt=s-ot/2-Q,St=s+ot/2+it-dt;if((s<t.y+St/2||s>t.y+t.height-St/2)&&!o)return;n.save(),n.fillStyle=J,n.strokeStyle=J;const ut=i.labelBoxMargin.end;n.font=Z;const vt=Ht(e,n,Z),pt=ut-at,Yt=nt!==void 0?vt+nt+at:t.width-pt,Nt=z==="right"?t.x+t.width-pt-Yt:t.x+pt,kt=z==="right"?t.x+t.width-vt-ut:ut;l&&on(l,n,Nt,dt,Yt,St),n.fillStyle=K,n.fillText(e,kt,s+ot/2-1),n.restore()}function wh(n,t,e=zt){return ne(n,t)/2+e}const Sh="badge",_i=4,Ai={badge:bh,rectangle:Ch,plain:yh};function Di(n,t,e,s,r,i,a,o){var l,c,h,v,p;const C=r.y,O=r.labelText,B=(l=r.mode)!=null?l:"label",Y=(c=r.labelType)!=null?c:Sh,k=r.description,z=(h=r.textFont)!=null?h:be(a),Z=r.bgColor,J=(v=r.lineColor)!=null?v:Z,K=Ht(k!=null?k:"",n,z)+8,U=gt(r.y),Q=ne(z,n),it=C-Q/2,nt=C+Q/2-it;n.save(),n.fillStyle=Z,n.strokeStyle=J;const ot=i.getBounds(H.PANE_UUID(ht)),dt=Ai[Y],ct=a.labels.descriptions,St=xh(e,U,nt),ut=()=>ct&&Ph(t,n,e,s,r,a.align,a);let vt,pt;const Yt=2;a.align==="right"?(vt=ot.x,pt=ct?ot.x+ot.width-K:ot.x+ot.width+Yt):(vt=ct?ot.x+K:ot.x-Yt,pt=ot.x+ot.width);const Nt=(p=r.lineY)!=null?p:r.y,kt=()=>St&&ye(n,()=>wc(n,vt,Nt,pt,Nt,1)),ve=()=>dt(n,e,O,C,r,a,o,!1,t);switch(B){case"line":kt(),ut();break;case"line-label":kt(),ut(),ve();break;case"label":ut(),ve();break;case"none":break}n.restore()}const xh=(n,t,e)=>t>n.y+e/2&&t<n.y+n.height-e/2;function Ph(n,t,e,s,r,i="right",a){var o,l,c;const h=r.description;if(!h||h.length===0)return;const v=r.y,p=be(a),C=Ht(h,t,p),O=ne(p,t),B=(o=r.paddingTop)!=null?o:_i,Y=(l=r.paddingBottom)!=null?l:_i,k=v-O/2-B,Z=v+O/2+Y-k;if(v<e.y+Z/2||v>e.y+e.height-Z/2)return;t.save();const J=C+5,K=4,U=C+K*2,Q=s.x+s.width,it=i==="right"?Q-U:s.x+K;on(n,t,it,k,J,Z,.8),t.fillStyle=(c=r.descColor)!=null?c:r.bgColor,t.font=p;const at=i==="right"?Q-C-K*2:s.x+K*2;t.fillText(h,at,v+O/2-1),t.restore()}class Ei{constructor(t,e,s,r=()=>!0,i){this.config=t,this.canvasBoundsContainer=e,this.paneManager=s,this.crossDrawPredicate=r,this.noLines=i}draw(t,e){this.crossDrawPredicate()&&ye(t,()=>this.drawCrossTool(t,e))}drawCrossTool(t,e){var s,r,i,a,o;const l=this.canvasBoundsContainer.getBounds(H.ALL_PANES),c=this.canvasBoundsContainer.getBoundsHitTest(H.ALL_PANES,{extensionY:1e-4}),h=(s=this.config.components.xAxis.padding.top)!=null?s:0,v=(i=this.config.components.yAxis.typeConfig[(r=this.config.components.crossTool.yLabel.type)!=null?r:"badge"])==null?void 0:i.paddings,p=(a=v==null?void 0:v.start)!=null?a:0,C=(o=this.paneManager.panes[e.paneId])==null?void 0:o.ht;if(c(e.x,l.y)){const O={start:[l.x,e.y],end:[l.x+l.width+p,e.y]},B={start:[e.x,l.y],end:[e.x,l.y+l.height+h]},Y=C==null?void 0:C(e.x,e.y);this.noLines||(t.strokeStyle=this.config.colors.crossTool.lineColor,t.setLineDash(this.config.components.crossTool.lineDash),t.beginPath(),Y&&(t.moveTo(...O.start),t.lineTo(...O.end)),t.moveTo(...B.start),t.lineTo(...B.end),t.stroke()),Y&&this.drawYLabel(t,e),this.drawXLabel(t,e)}}drawXLabel(t,e){var s,r,i,a,o;const l=this.config.components.crossTool.xLabel.padding,c=this.config.components.crossTool.xLabel.margin,h=this.config.colors.crossTool;if(this.config.components.xAxis.visible){t.font=this.config.components.xAxis.fontSize+"px "+this.config.components.xAxis.fontFamily;const v=e.x,p=e.time,C=t.measureText(p).width,O=this.config.components.xAxis.fontSize,B=this.canvasBoundsContainer.getBounds(H.X_AXIS);t.save(),t.fillStyle=h.labelBoxColor;const Y=(s=l==null?void 0:l.left)!=null?s:0,k=(r=l==null?void 0:l.right)!=null?r:0,z=(i=l==null?void 0:l.top)!=null?i:0,Z=(a=l==null?void 0:l.bottom)!=null?a:0,J=(o=c==null?void 0:c.top)!=null?o:0,K=C+Y+k,U=O+z+Z,Q=Math.max(v-K/2,0),it=B.y+J;si(t,Q,it,K,U),t.fillStyle=h.labelTextColor;const at=Math.max(v-C/2,Y),nt=B.y+J+O+z-1;t.fillText(p,at,nt),t.restore()}}drawYLabel(t,e){const s=this.config.components.crossTool.yLabel.padding,r=this.config.colors.crossTool;if(this.config.components.yAxis.visible){const i=this.paneManager.panes[e.paneId],a=e.y;if(!i)return;for(const o of i.yExtentComponents){const l=o.regularValueFromY(a),c=o.valueFormatter(l),h=this.canvasBoundsContainer.getBounds(H.PANE_UUID_Y_AXIS(i.uuid,o.idx)),v=Ai[this.config.components.crossTool.yLabel.type];v(t,h,c,a,{textColor:r.labelTextColor,bgColor:r.labelBoxColor,paddingBottom:s==null?void 0:s.bottom,paddingEnd:s==null?void 0:s.end,paddingTop:s==null?void 0:s.top},o.yAxis.state,this.config.colors.yAxis,!0)}}}}class Th{draw(){}}class Mh extends tt{constructor(t,e,s,r,i,a,o){super(),this.config=t,this.crossToolCanvasModel=e,this.canvasBoundsContainer=s,this.drawingManager=r,this.paneManager=i,this.crossToolTypeDrawers={},this.model=new ph(t.components.crossTool,this.crossToolCanvasModel,a,o),this.addChildEntity(this.model);const l=new Xe(this.crossToolCanvasModel);this.registerDefaultDrawerTypes();const c=new mh(this.model,this.crossToolCanvasModel,this.crossToolTypeDrawers),h=new is;h.addDrawer(l,"CLEAR_CANVAS"),h.addDrawer(c,"CROSS_TOOL_DRAWER"),this.drawingManager.addDrawer(h,"CROSS_TOOL")}registerDefaultDrawerTypes(){this.registerCrossToolTypeDrawer("cross-and-labels",new Ei(this.config,this.canvasBoundsContainer,this.paneManager,()=>!0)),this.registerCrossToolTypeDrawer("just-labels",new Ei(this.config,this.canvasBoundsContainer,this.paneManager,()=>!0,!0)),this.registerCrossToolTypeDrawer("none",new Th)}setVisible(t){this.model.setType(t?"cross-and-labels":"none")}setType(t){this.model.setType(t)}observeCrossToolChanged(){return this.model.currentHoverSubject}setMagnetTarget(t){this.config.components.crossTool.magnetTarget=t}registerCrossToolTypeDrawer(t,e){this.crossToolTypeDrawers[t]=e}}class _h{constructor(t,e){this.dynamicObjectsModel=t,this.canvasModel=e}draw(){const t=this.dynamicObjectsModel.objects;Object.entries(t).forEach(([e,s])=>{for(const r of s){const{model:i,drawer:a}=r;a.draw(this.canvasModel,i,e)}})}getCanvasIds(){return[this.canvasModel.canvasId]}}class mn{constructor(t){this.data=t,this.next=null}}class Ah{constructor(t){if(this._head=null,this._tail=null,this.length=0,this._head=t!=null?t:null,this.head!==null){let e;for(e=this.head;e.next;)e=e.next;this._tail=e}}insertAtEnd(t){const e=new mn(t);let s;if(this.head===null)this._head=e;else{for(s=this.head;s.next;)s=s.next;s.next=e}return this._tail=e,this.length++,e}insertAt(t,e){if(t>-1&&t<this.length&&this.head){let s=this.head,r=0,i=null;const a=new mn(e);if(t===this.length-1&&(this._tail=a),t===0)a.next=s,this._head=a;else{for(;r<t&&s.next;)r++,i=s,s=s.next;a.next=s,i&&(i.next=a)}return this.length++,s}else return this._head=new mn(e),this.length++,this.head}removeAt(t){if(t>-1&&t<this.length&&this.head){let e=this.head,s=null,r=0;if(t===0)this._head=e.next;else{for(;r<t&&e.next;)r++,s=e,e=e.next;s&&(s.next=e.next),t===this.length-1&&(this._tail=e)}return this.length--,e}else return null}getNodePosition(t){let e=0,s=this.head;for(;t;){if((s==null?void 0:s.data)===t.data)return e;s=s&&s.next,e++}return-1}size(){return this.length}get head(){return this._head}get tail(){return this._tail}*[Symbol.iterator](){let t=this.head;for(;t;)yield t.data,t=t.next}}class Dh extends tt{constructor(){super(),this.modelToObjectMap=new Map,this._objects=new ee({})}addObject(t,e){var s;const r=this.objects,i=(s=r[e])!=null?s:new Ah;Object.keys(r).find(a=>a===e)||(r[e]=i),i.insertAtEnd(t),this.modelToObjectMap.set(t.model,t),this.setDynamicObjects(r)}removeObject(t,e){const s=this.objects,r=s[e],i=this.modelToObjectMap.get(t);if(r&&i){const a=new mn(i),o=r.getNodePosition(a);r.removeAt(o),this.modelToObjectMap.delete(t),r.size()===0&&delete s[e],this.setDynamicObjects(s)}}bringToFront(t,e){const s=this.objects[t];if(s){const r=s.getNodePosition(e);if(r>=0&&r<s.size()){const i=s.removeAt(r);i&&s.insertAtEnd(i.data)}this.setDynamicObjects(this.objects)}}bringToBack(t,e){const s=this.objects[t];if(s){const r=s.getNodePosition(e);if(r>0&&r<=s.size()){const i=s.removeAt(r);i&&s.insertAt(0,i==null?void 0:i.data)}this.setDynamicObjects(this.objects)}}moveForward(t,e){const s=this.objects[t];if(s){const r=s.getNodePosition(e);if(r>=0&&r<s.size()){const i=s.removeAt(r);i&&s.insertAt(r+1,i.data)}this.setDynamicObjects(this.objects)}}moveBackwards(t,e){const s=this.objects[t];if(s){const r=s.getNodePosition(e);if(r>0&&r<=s.size()){const i=s.removeAt(r);i&&s.insertAt(r-1,i==null?void 0:i.data)}this.setDynamicObjects(this.objects)}}get objects(){return this._objects.getValue()}setDynamicObjects(t){this._objects.next(t)}}class Eh extends tt{constructor(t,e){super();const s=new Dh;this.model=s,this.addChildEntity(s);const r=new _h(s,t);e.addDrawer(r,"DYNAMIC_OBJECTS")}}const Oh=()=>n=>n.toString(),Lh=(n,t)=>{var e;const s="date.get"+(t((e=n.timezone)!=null?e:"")?"":"UTC"),r={YYYY:a("FullYear"),YY:a("FullYear")+" % 100",MMM:o("shortMonths","Month"),MMMM:l(o("shortMonths","Month")),M:"1+"+a("Month"),d:a("Date"),H:a("Hours"),m:a("Minutes"),s:a("Seconds"),sss:a("Milliseconds"),EEE:o("shortDays","Day"),SSS:"this.addTwoZeros("+a("Milliseconds")+")",T:"date.getTime()"};["s","m","H","d","M"].forEach(function(h){r[h+h]="this.addZero("+r[h]+")"});const i=new RegExp(Object.keys(r).sort().reverse().join("|"),"g");function a(h){return s+h+"()"}function o(h,v){return"this."+h+"["+a(v)+"]"}function l(h){return h+".toUpperCase()"}function c(h){return"' + ("+r[h]+") + '"}return function(h){var v;const p={shortDays:Ih(n),shortMonths:Bh(n),addZero(C){return C<10?"0"+C:C},addTwoZeros(C){return(C<100?"0":"")+(C<10?"0":"")+C},tzDate:t((v=n.timezone)!=null?v:"")||function(C){return C instanceof Date?C:new Date(+C)}};return new Function("date","date=this.tzDate(date); return '"+h.replace(i,c)+"'").bind(p)}};function Ih(n){var t;return(t=n.shortDays)!=null?t:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}function Bh(n){var t;return(t=n.shortMonths)!=null?t:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}const Oi=(n,t,e)=>{if(n){if(typeof n=="string")return e(n);if(Array.isArray(n)){const s=n.filter(r=>{if(r.showWhen){const i=[];return r.showWhen.periodLessThen&&i.push(()=>{var a,o;return t<((o=(a=r.showWhen)==null?void 0:a.periodLessThen)!=null?o:0)}),r.showWhen.periodMoreThen&&i.push(()=>{var a,o;return t>=((o=(a=r.showWhen)==null?void 0:a.periodMoreThen)!=null?o:0)}),i.every(a=>a())}else return!0});if(s.length>0){const r=s[0];if(r.format)return e(r.format);if(r.customFormatter)return r.customFormatter}}}return Oh()},Rh={"rhombus-small":4,rhombus:6,"rhombus-large":8},Ve=(n,t)=>`${n}_${t}`;class Fh{constructor(t,e,s,r,i,a,o){this.backgroundCanvas=t,this.canvasModel=e,this.chartModel=s,this.config=r,this.canvasBoundsContainer=i,this.model=a,this.formatterProvider=o,this.customIcons={};const l=this.config.components.events.icons;l&&(this.createCustomIcon("earnings",l.earnings),this.createCustomIcon("dividends",l.dividends),this.createCustomIcon("splits",l.splits),this.createCustomIcon("conference-calls",l.conferenceCalls))}createCustomIcon(t,e){if(e){const s=this.createIconImage(e.normal),r=this.createIconImage(e.hover);this.customIcons[Ve(t,"normal")]=s,this.customIcons[Ve(t,"hover")]=r}}createIconImage(t){var e;const r=new DOMParser().parseFromString(t,"text/html").querySelector("svg");let i=0;r&&(i=parseInt((e=r.getAttribute("height"))!=null?e:"",10));const l="data:image/svg+xml;base64,"+btoa(t),c=new Image;return c.src=l,{img:c,svgHeight:i}}draw(){if(!this.config.components.events.visible)return;const t=this.canvasBoundsContainer.getBounds(H.EVENTS),e=this.canvasBoundsContainer.getBounds(H.ALL_PANES),s=this.canvasModel.ctx;s.save(),this.model.events.filter(r=>this.config.components.events.eventsVisibility[r.type]).forEach(r=>{const i=this.chartModel.candleFromTimestamp(r.timestamp).xCenter(this.chartModel.scale);if(i>e.x&&i<e.x+e.width){const a=this.config.colors.events[r.type].color;s.strokeStyle=a,this.customIcons[Ve(r.type,"hover")]!==void 0?this.drawCustomSvgEvent(s,i,t,r):this.drawDefaultEvent(s,i,t,r,a),this.model.hoveredEvent.getValue()===r&&(s.beginPath(),s.moveTo(i,e.y),s.lineTo(i,t.y+t.height/2),s.stroke(),s.closePath(),this.config.components.xAxis.visible&&this.drawLabel(i,r))}}),s.restore()}drawCustomSvgEvent(t,e,s,r){const i=s.y+s.height/2,a=this.customIcons[Ve(r.type,"normal")],o=this.customIcons[Ve(r.type,"hover")];this.model.hoveredEvent.getValue()===r?t.drawImage(o.img,e-o.svgHeight/2,i-o.svgHeight/2):t.drawImage(a.img,e-a.svgHeight/2,i-a.svgHeight/2)}drawDefaultEvent(t,e,s,r,i){const a=s.y+s.height/2;t.fillStyle=i,t.lineWidth=1.5;const o=as(r);t.beginPath(),t.moveTo(e-o,a),t.lineTo(e,a-o),t.lineTo(e+o,a),t.lineTo(e,a+o),t.closePath(),this.model.hoveredEvent.getValue()===r?t.fill():t.stroke()}drawLabel(t,e){var s;const r=this.canvasModel.ctx,i=this.canvasBoundsContainer.getBounds(H.X_AXIS),a=this.config.components.xAxis.fontFamily,o=this.config.components.xAxis.fontSize,l=(s=this.config.components.xAxis.padding.top)!=null?s:0,c=i.y+o-1+l;r.font=`${o}px ${a}`;const h=this.formatterProvider()(e.timestamp),v=r.measureText(h).width;on(this.backgroundCanvas.ctx,r,t-v/2,i.y+1,v,i.height-1),r.fillStyle=this.config.colors.events[e.type].color,r.fillText(h,t-v/2,c)}getCanvasIds(){return[this.canvasModel.canvasId]}}function as(n){return Rh[n.style]}const pn=5;class Hh{constructor(t,e,s,r,i){this.hitTestCanvasModel=t,this.chartModel=e,this.config=s,this.canvasBoundsContainer=r,this.model=i}draw(){const t=this.hitTestCanvasModel.ctx,e=this.canvasBoundsContainer.getBounds(H.EVENTS);t.save(),this.model.events.forEach((s,r)=>{const i=this.model.events[r-1],a=i&&this.chartModel.candleFromTimestamp(i.timestamp).xCenter(this.chartModel.scale),o=this.chartModel.candleFromTimestamp(s.timestamp).xCenter(this.chartModel.scale);if(o>e.x&&o<e.x+e.width){const l=this.config.colors.events[s.type].color;t.strokeStyle=l,t.fillStyle=l;const c=as(s);t.fillStyle=this.hitTestCanvasModel.idToColor(s.id);const h=(c+pn)*2;if(a!==void 0){const v=as(i);if(a+v>o-h/2){const C=c*2+pn;t.fillRect(a+v,e.y,C,e.height)}else t.fillRect(o-c-pn,e.y,h,e.height)}else t.fillRect(o-c-pn,e.y,h,e.height)}}),t.restore()}getCanvasIds(){return[this.hitTestCanvasModel.canvasId]}}var Yh=Object.defineProperty,Li=Object.getOwnPropertySymbols,Nh=Object.prototype.hasOwnProperty,kh=Object.prototype.propertyIsEnumerable,Ii=(n,t,e)=>t in n?Yh(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,jh=(n,t)=>{for(var e in t||(t={}))Nh.call(t,e)&&Ii(n,e,t[e]);if(Li)for(var e of Li(t))kh.call(t,e)&&Ii(n,e,t[e]);return n};const Bi=317,os={DRAWINGS:[1,199],NEWS:[200,299],DATA_SERIES:[300,2999],EVENTS:[3e3,4e3],EXECUTED_ORDERS:[4001,5e3]};class Uh extends hi{constructor(t,e,s,r,i,a,o,l){super(t,e,i,o,l,{willReadFrequently:!0,desynchronized:!0}),this.canvasInputListener=s,this.canvasBoundsContainer=r,this.hitTestSubscribers=[],this.eventsSubscriptions=[],this.hoverSubject=new V,this.touchStartSubject=new V,this.dblClickSubject=new V,this.rightClickSubject=new V,this.curImgData=new Uint8ClampedArray(4),this.prevAnimationFrameId=-1,di(this,a),e.style.visibility="hidden",this.enableUserControls()}enableUserControls(){if(this.eventsSubscriptions.length===0){const t=this.canvasBoundsContainer.getBoundsHitTest(H.ALL_PANES),e=this.canvasInputListener.observeMouseMove().pipe(Ne(100,void 0,{trailing:!0})).subscribe(c=>this.eventHandler(c,"hover")),s=this.canvasInputListener.observeTouchStart().pipe(yt(()=>this.canvasInputListener.currentPoint)).subscribe(c=>this.eventHandler(c,"touchstart")),r=Lt(this.canvasInputListener.observeMouseDown(t),this.canvasInputListener.observeTouchStart().pipe(yt(()=>this.canvasInputListener.currentPoint))).subscribe(c=>this.eventHandler(c,"mousedown")),i=Lt(this.canvasInputListener.observeMouseUp(t),this.canvasInputListener.observeTouchEndDocument().pipe(yt(()=>this.canvasInputListener.currentPoint))).subscribe(c=>this.eventHandler(c,"mouseup")),a=this.canvasInputListener.observeDbClick(t).subscribe(c=>this.eventHandler(c,"dblclick")),o=this.canvasInputListener.observeContextMenu(t).pipe(yt(()=>jh({},this.canvasInputListener.currentPoint))).subscribe(c=>{this.eventHandler(c,"contextmenu")}),l=this.canvasInputListener.observeWheel(t).subscribe(c=>setTimeout(()=>this.eventHandler(c,"zoom"),0));this.eventsSubscriptions.push(e,r,a,o,l,s,i)}}disableUserControls(){this.eventsSubscriptions.forEach(t=>t.unsubscribe()),this.eventsSubscriptions=[]}addSubscriber(t){this.hitTestSubscribers.push(t)}removeSubscriber(t){this.hitTestSubscribers=this.hitTestSubscribers.filter(e=>e===t)}idToColor(t){const e=(t*Bi).toString(16);return"#000000".substr(0,7-e.length)+e}colorToId(t){return t/Bi}observeHoverOnElement(){return this.hoverSubject.asObservable()}observeTouchStartOnElement(){return this.touchStartSubject.asObservable()}observeDblClickOnElement(){return this.dblClickSubject.asObservable()}observeRightClickOnElement(){return this.rightClickSubject.asObservable()}getPixel(t,e){const s=window.devicePixelRatio;return this.prevAnimationFrameId!==es&&(this.curImgData=this.ctx.getImageData(t*s,e*s,1,1).data,this.prevAnimationFrameId=es),this.curImgData}resolveModel(t){const e=this.getPixel(t.x,t.y),s=this.colorToId(e[0]*65536+e[1]*256+e[2]),r=Number(s),[i]=ls(this.hitTestSubscribers,r);return i==null?void 0:i.lookup(s)}resolveCursor(t){var e;if(!this.hitTestSubscribers.some(l=>l.resolveCursor!==void 0))return;const s=this.getPixel(t.x,t.y),r=this.colorToId(s[0]*65536+s[1]*256+s[2]),i=Number(r),[a]=ls(this.hitTestSubscribers,i),o=a==null?void 0:a.lookup(r);return(e=a==null?void 0:a.resolveCursor)==null?void 0:e.call(a,t,o)}eventHandler(t,e){var s,r,i,a,o,l,c;const h=this.getPixel(t.x,t.y),v=this.colorToId(h[0]*65536+h[1]*256+h[2]),p=Number(v),[C,O]=ls(this.hitTestSubscribers,p),B=C==null?void 0:C.lookup(v),Y={point:t,model:B};switch(e){case"mousedown":B&&((s=C==null?void 0:C.onMouseDown)==null||s.call(C,B,t)),O.forEach(k=>k.onMouseDown&&k.onMouseDown(null,t));break;case"mouseup":B&&((r=C==null?void 0:C.onMouseUp)==null||r.call(C,B,t)),O.forEach(k=>k.onMouseUp&&k.onMouseUp(null,t));break;case"hover":B&&((i=C==null?void 0:C.onHover)==null||i.call(C,B,t)),O.forEach(k=>k.onHover&&k.onHover(null,t)),this.hoverSubject.next(Y);break;case"touchstart":B&&((a=C==null?void 0:C.onTouchStart)==null||a.call(C,B,t)),O.forEach(k=>k.onTouchStart&&k.onTouchStart(null,t)),this.touchStartSubject.next(Y);break;case"dblclick":B&&((o=C==null?void 0:C.onDblClick)==null||o.call(C,B,t)),this.dblClickSubject.next(Y);break;case"contextmenu":B&&((l=C==null?void 0:C.onRightClick)==null||l.call(C,B,t)),this.rightClickSubject.next(Y);break;case"zoom":B&&((c=C==null?void 0:C.onZoom)==null||c.call(C,B,t)),O.forEach(k=>k.onZoom&&k.onZoom(null,t));break;default:break}}}const ls=(n,t)=>{let e;const s=[];return n.forEach(r=>{const[i,a]=r.getIdRange();t>=i&&t<=a?e=r:s.push(r)}),[e,s]};var Wh=Object.defineProperty,zh=Object.defineProperties,Xh=Object.getOwnPropertyDescriptors,Ri=Object.getOwnPropertySymbols,Vh=Object.prototype.hasOwnProperty,Gh=Object.prototype.propertyIsEnumerable,Fi=(n,t,e)=>t in n?Wh(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,$h=(n,t)=>{for(var e in t||(t={}))Vh.call(t,e)&&Fi(n,e,t[e]);if(Ri)for(var e of Ri(t))Gh.call(t,e)&&Fi(n,e,t[e]);return n},Zh=(n,t)=>zh(n,Xh(t));class Kh extends tt{constructor(t){super(),this.canvasModel=t,this.events=[],this.hoveredEvent=new ee(null)}setEvents(t){this.events=this.indexEvents(t)}indexEvents(t){const e=this.getIdRange()[0];return t.map((s,r)=>Zh($h({},s),{id:r+e})).sort((s,r)=>s.timestamp-r.timestamp)}getIdRange(){return os.EVENTS}lookup(t){return this.events.filter(e=>e.id===t)[0]}onHover(t,e){this.hoveredEvent.getValue()!==t&&(t&&(t.point=e),this.hoveredEvent.next(t),this.canvasModel.fireDraw())}onTouchStart(t,e){this.onHover(t,e)}}class Jh extends tt{constructor(t,e,s,r,i,a,o,l,c){super(),this.config=t,this.canvasModel=e,this.canvasBoundsContainer=i,this.drawingManager=a,this.formatterFactory=o,this.eventsXAxisLabelFormatterProvider=()=>Oi(this.config.components.events.xAxisLabelFormat,r.getPeriod(),this.formatterFactory);const h=new Kh(e);this.eventsModel=h,this.addChildEntity(h),s.addSubscriber(h);const v=new Fh(c,e,r,t,i,h,this.eventsXAxisLabelFormatterProvider);this.drawingManager.addDrawer(v,"EVENTS");const p=new Hh(s,r,t,i,h);this.drawingManager.addDrawerBefore(p,"HIT_TEST_EVENTS","HIT_TEST_DRAWINGS"),l.setCursorForCanvasEl(H.EVENTS,t.components.events.cursor)}setEvents(t){this.eventsModel.setEvents(t),this.canvasModel.fireDraw()}setVisible(t){this.config.components.events.visible=t,this.canvasBoundsContainer.recalculateBounds(),this.canvasModel.fireDraw()}setEventTypeVisible(t){$t(this.config.components.events.eventsVisibility,t,{overrideExisting:!0,addIfMissing:!1}),this.canvasModel.fireDraw()}observeEventHovered(){return this.eventsModel.hoveredEvent.asObservable()}}class Qh{constructor(t,e,s,r,i,a,o,l,c=()=>!0,h){this.canvasModel=t,this.viewportModel=e,this.config=s,this.yAxisState=r,this.xBoundsProvider=i,this.yBoundsProvider=a,this.xLabelsProvider=o,this.yLabelsProvider=l,this.drawPredicate=c,this.getBaseline=h}draw(){if(this.drawPredicate()){const t=this.canvasModel.ctx;ye(t,()=>this.drawVertical(t)),ye(t,()=>this.drawHorizontal(t)),ye(t,()=>this.drawZeroLine(t))}}drawZeroLine(t){if(this.getBaseline&&this.yAxisState.type==="percent"&&this.yAxisState.zeroPercentLine){const e=this.xBoundsProvider(),s=gt(this.getBaseline());t.beginPath(),t.strokeStyle=this.config.colors.yAxis.zeroPercentLine,t.setLineDash([]),t.moveTo(e.x,s),t.lineTo(e.x+e.width,s),t.stroke(),t.closePath()}}drawVertical(t){const e=this.xLabelsProvider();if(e.length&&this.config.components.grid.vertical){t.lineWidth=this.config.components.grid.width,t.strokeStyle=this.config.colors.chartAreaTheme.gridColor,t.setLineDash(this.config.components.grid.dash||[]);const s=this.xBoundsProvider(),r=s.x+s.width;for(const i of e){const a=st(this.viewportModel.toX(i.value));a>s.x&&a<r&&(t.beginPath(),t.moveTo(a,s.y),t.lineTo(a,s.y+s.height),t.stroke())}}}drawHorizontal(t){const e=this.yLabelsProvider();if(e.length&&this.config.components.grid.horizontal){t.lineWidth=this.config.components.grid.width,t.strokeStyle=this.config.colors.chartAreaTheme.gridColor,t.setLineDash(this.config.components.grid.dash||[]);const s=this.yBoundsProvider();for(const r of e){const i=gt(this.viewportModel.toY(r.value)),a=wh(r.text,t,zt);i>s.y+a&&i<s.y+s.height-a&&(t.beginPath(),t.moveTo(s.x,i),t.lineTo(s.x+s.width,i),t.stroke())}}}getCanvasIds(){return[this.canvasModel.canvasId]}}class Hi extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v,p){super(),this.drawerName=i,this.drawingManager=a,this.drawer=new Qh(t,e,s,r,o,l,c,h,p,v)}doDeactivate(){super.doDeactivate(),this.drawingManager.removeDrawer(this.drawer)}doActivate(){super.doActivate(),this.drawingManager.addDrawer(this.drawer,this.drawerName)}}class qh{constructor(t,e,s,r){this.canvasModel=t,this.chartModel=e,this.config=s,this.canvasBoundsContainer=r}draw(){if(this.config.components.highLow.visible&&this.chartModel.isReady()){const{high:t,low:e,highIdx:s,lowIdx:r}=this.chartModel.mainCandleSeries.zippedHighLow,i=this.chartModel.mainCandleSeries.dataIdxStart,a=i+s,o=i+r,l=this.canvasModel.ctx;l.save(),l.font=this.config.components.highLow.font,this.drawMarkerLabel(l,a,t,"high"),this.drawMarkerLabel(l,o,e,"low"),l.restore()}}drawMarkerLabel(t,e,s,r){const i=this.getMarkerY(t,s,r==="low");if(!this.checkMarkerInBounds(i))return;const a=this.getMarkerText(s,r),o=this.getMarkerX(t,e,a);t.fillStyle=r==="high"?this.config.colors.highLowTheme.highColor:this.config.colors.highLowTheme.lowColor,t.fillText(a,o,i)}getMarkerText(t,e){const s=this.chartModel.pane.regularFormatter(t);return`${e==="high"?"H:":"L:"} ${s}`}getMarkerY(t,e,s=!1){const r=this.chartModel.toY(e);if(s){const i=Nn(t);return r+i}return r}checkMarkerInBounds(t){const e=this.canvasBoundsContainer.getBounds(H.CHART);return t>e.y&&t<e.y+e.height}getMarkerX(t,e,s){let r=this.chartModel.toX(e);const i=this.canvasBoundsContainer.getBounds(H.CHART),a=4,o=t.measureText(s).width;return r+a+o>i.width&&(r=r-(a+o)),r+a}getCanvasIds(){return[this.canvasModel.canvasId]}}class td extends tt{constructor(t,e,s,r,i){super();const a=new qh(e,s,t,r);i.addDrawer(a,"HIGH_LOW")}}const ed=["AFTER_MARKET","PRE_MARKET","NO_TRADING","REGULAR"],nd=24*60*60*1e3;class sd extends tt{constructor(t){super(),this.chartModel=t,this.highlights=[],this.visualHighlights={},this.highlightsUpdatedSubject=new V}activate(){this.addRxSubscription(this.chartModel.scale.xChanged.subscribe(()=>this.highlights.length&&this.recalculateVisualHighlights()))}getHighlights(){return this.highlights}getVisualHighlights(){return this.visualHighlights}recalculateVisualHighlights(){this.visualHighlights={};const t=this.chartModel.getFirstTimestamp(),e=this.chartModel.getLastTimestamp()+nd;Do(this.highlights,t,e,rd).forEach(r=>{var i;this.visualHighlights[r.type]||(this.visualHighlights[r.type]=[]),(i=this.visualHighlights[r.type])==null||i.push(r)})}setHighlights(t){this.highlights=t,this.highlights.sort((e,s)=>e.to-s.to),this.highlightsUpdatedSubject.next(this.highlights),this.highlights.length?this.recalculateVisualHighlights():this.visualHighlights={}}observeHighlightsUpdated(){return this.highlightsUpdatedSubject.asObservable()}}const rd=n=>n.to,fe=[20,10];class id{constructor(t,e,s,r,i){this.highlightsModel=t,this.chartModel=e,this.canvasModel=s,this.canvasBoundsContainer=r,this.config=i}draw(){var t,e,s,r;if(this.config.components.highlights.visible){const i=this.chartModel.getCandles(),a=this.canvasModel.ctx,o=this.highlightsModel.getVisualHighlights();if(this.highlightsModel.getHighlights().length&&i.length!==0&&this.chartModel.scale.isScaleReady()){const c=this.canvasBoundsContainer.getBounds(H.ALL_PANES);a.save(),we(a,c);const h=(t=this.config.components.highlights.border.width)!=null?t:1,v=(e=this.config.components.highlights.border.dash)!=null?e:[0,0],p=(s=this.config.components.highlights.fontSize)!=null?s:11,C=(r=this.config.components.highlights.fontFamily)!=null?r:"monospace",O=`${p}px ${C}, monospace`;a.font=O,a.lineWidth=h,a.setLineDash(v),ed.forEach(B=>{var Y,k;const z=o[B];if(z){const Z=this.config.colors.highlights[B],J=(Y=Z==null?void 0:Z.border)!=null?Y:"#ffffff",K=(k=Z==null?void 0:Z.background)!=null?k:"#ffffff";a.save(),a.beginPath(),a.fillStyle=K,a.strokeStyle=J,z.forEach(U=>{var Q,it,at;const nt=this.chartModel.candleFromTimestamp(U.from),ot=Tt(nt.width,this.chartModel.scale.zoomX),dt=nt.xStart(this.chartModel.scale),ct=this.chartModel.candleFromTimestamp(U.to),St=Tt(ct.width,this.chartModel.scale.zoomX),ut=ct.xStart(this.chartModel.scale)+St;if(U.border&&this.drawBorders(U.border,a,dt+ot,ut-St,c),a.fillRect(dt,c.y,ut-dt,c.y+c.height),U.label){const vt=(Q=U.label.text)!=null?Q:"",pt=this.config.colors.highlights[U.type];a.save(),a.fillStyle=(it=pt==null?void 0:pt.label)!=null?it:"#ffffff";const Yt=Ht(vt,a,O),[Nt,kt]=this.resolveHighlightLabelPosition((at=U.label.placement)!=null?at:"left-left",c,[dt,ut],Yt);a.fillText(vt,Nt,kt),a.restore()}}),a.closePath(),a.restore()}}),a.restore()}}}resolveHighlightLabelPosition(t,e,s,r){const[i,a]=s;switch(t){case"right-left":return[a-fe[1]-r,e.y+fe[0]];case"left-left":return[i-fe[1]-r,e.y+fe[0]];case"right-right":return[a+fe[1],e.y+fe[0]];case"left-right":default:return[i+fe[1],e.y+fe[0]]}}drawBorders(t,e,s,r,i){const a=t.left,o=t.right;a&&(e.beginPath(),e.moveTo(s,i.y),e.lineTo(s,i.y+i.height),e.stroke(),e.closePath()),o&&(e.beginPath(),e.moveTo(r,i.y),e.lineTo(r,i.y+i.height),e.stroke(),e.closePath())}getCanvasIds(){return[this.canvasModel.canvasId]}}const ad="HIGHLIGHTS_PLUGIN";class od extends tt{constructor(t,e,s,r,i,a){super(),this.eventBus=t,this.config=e,this.highlightsModel=new sd(s),this.addChildEntity(this.highlightsModel),this.highLightsDrawer=new id(this.highlightsModel,s,r,i,e),a.addDrawer(this.highLightsDrawer,ad)}getHighlights(){return this.highlightsModel.getHighlights()}setHighlights(t){this.highlightsModel.setHighlights(t)}setHighlightsVisible(t=!0){this.config.components.highlights.visible=t,this.eventBus.fireDraw(this.highLightsDrawer.getCanvasIds())}observeHighlightsUpdated(){return this.highlightsModel.observeHighlightsUpdated()}}function ld(){return y(function(n,t){var e,s=!1;n.subscribe(Wt(t,function(r){var i=e;e=r,s&&t.next([i,r]),s=!0}))})}function lt(n,t){return y(function(e,s){var r=0;e.subscribe(Wt(s,function(i){return n.call(t,i,r++)&&s.next(i)}))})}var cd=Object.defineProperty,hd=Object.defineProperties,dd=Object.getOwnPropertyDescriptors,Yi=Object.getOwnPropertySymbols,ud=Object.prototype.hasOwnProperty,fd=Object.prototype.propertyIsEnumerable,Ni=(n,t,e)=>t in n?cd(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ki=(n,t)=>{for(var e in t||(t={}))ud.call(t,e)&&Ni(n,e,t[e]);if(Yi)for(var e of Yi(t))fd.call(t,e)&&Ni(n,e,t[e]);return n},ji=(n,t)=>hd(n,dd(t));const ie=4;class gd{constructor(t,e,s,r,i,a){this.config=t,this.chartModel=e,this.canvasModel=s,this.canvasBoundsContainer=r,this.formatterFactory=i,this.visualCandlesProvider=a}draw(){if(this.config.components.navigationMap.visible){const t=this.visualCandlesProvider();if(t.length){const e=this.canvasBoundsContainer.getBounds(H.N_MAP),s=this.canvasBoundsContainer.getBounds(H.N_MAP_BTN_L),r=this.canvasBoundsContainer.getBounds(H.N_MAP_BTN_R),i=this.canvasBoundsContainer.getBounds(H.N_MAP_KNOT_L),a=this.canvasBoundsContainer.getBounds(H.N_MAP_KNOT_R),o=this.canvasBoundsContainer.getBounds(H.N_MAP_SLIDER_WINDOW),l=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART),c=this.canvasModel.ctx;c.fillStyle=this.config.colors.navigationMap.backgroundColor,c.fillRect(e.x,e.y,e.width,e.height),c.strokeStyle=this.config.colors.paneResizer.lineColor,c.lineWidth=1,c.beginPath(),c.moveTo(e.x,e.y),c.lineTo(e.x+e.width,e.y),c.closePath(),c.stroke(),s.width!==0&&this.drawLeftArrowButton(c,s,this.config),r.width!==0&&this.drawRightArrowButton(c,r,this.config),c.fillStyle=this.config.colors.navigationMap.mapFillColor,c.beginPath(),c.moveTo(l.x,l.y+l.height);for(const h of t)c.lineTo(h[0],h[1]);if(c.lineTo(l.x+l.width,l.y+l.height),c.lineTo(l.x,l.y+l.height),c.closePath(),this.config.colors.navigationMap.mapGradientTopColor&&this.config.colors.navigationMap.mapGradientBottomColor){const h=c.createLinearGradient(l.x,l.y,l.x,l.y+l.height);h.addColorStop(0,this.config.colors.navigationMap.mapGradientTopColor),h.addColorStop(1,this.config.colors.navigationMap.mapGradientBottomColor),c.fillStyle=h}c.fill(),this.config.colors.navigationMap.mapColor&&(c.strokeStyle=this.config.colors.navigationMap.mapColor,c.stroke()),this.drawSlider(c,i,a,s,o),this.drawTimeLabels(c)}}}blockDrawSliderOnLeftArrow(t,e,s,r){t.x<=s.x+s.width&&(t.x=s.x+s.width,r.x=t.x+t.width,e.x=r.x+r.width)}drawSlider(t,e,s,r,i){this.blockDrawSliderOnLeftArrow(e,s,r,i),this.drawKnotButton(t,e,this.config,!0),this.drawKnotButton(t,s,this.config,!1),t.fillStyle=this.config.colors.navigationMap.sliderColor,t.fillRect(i.x,i.y,i.width,i.height)}drawLeftArrowButton(t,e,s){t.fillStyle=s.colors.navigationMap.buttonColor,t.fillRect(e.x,e.y,e.width,e.height),t.beginPath();const r=Math.round(e.x+e.width/2-ie/2),i=Math.round(e.y+e.height/2);t.moveTo(r,i),t.lineTo(r+ie,i+ie),t.lineTo(r+ie,i-ie),t.fillStyle=s.colors.navigationMap.buttonArrowColor,t.fill()}drawRightArrowButton(t,e,s){t.fillStyle=s.colors.navigationMap.buttonColor,t.fillRect(e.x,e.y,e.width,e.height),t.beginPath();const r=Math.round(e.x+e.width/2-ie/2),i=Math.round(e.y+e.height/2);t.moveTo(r,i-ie),t.lineTo(r,i+ie),t.lineTo(r+ie,i),t.fillStyle=s.colors.navigationMap.buttonArrowColor,t.fill()}drawKnotButton(t,e,s,r){const i=s.components.navigationMap.knots.border;t.fillStyle=s.colors.navigationMap.knotColor;const a=r?e.x-i:e.x+i;t.fillRect(a,e.y,e.width,e.height),t.lineWidth=s.components.navigationMap.knots.lineWidth,i>0&&(t.beginPath(),t.moveTo(a,e.y),t.lineTo(a,e.y+e.height),t.lineTo(a+e.width,e.y+e.height),t.lineTo(a+e.width,e.y),t.lineTo(a,e.y),t.lineWidth=i,t.strokeStyle=s.colors.navigationMap.knotBorderColor,t.stroke()),t.beginPath(),t.moveTo(a+e.width/2,e.y+e.height/4),t.lineTo(a+e.width/2,e.y+3*e.height/4),t.strokeStyle=s.colors.navigationMap.knotLineColor,t.stroke()}drawTimeLabels(t){const e=It(this.chartModel.mainCandleSeries.getSeriesInViewport()),s=this.config.components.navigationMap.timeLabels,r=s.visible;if(e.length&&r){const i=e[0].candle.timestamp,a=e[e.length-1].candle.timestamp,o=this.canvasBoundsContainer.getBounds(H.N_MAP_LABEL_L),l=this.canvasBoundsContainer.getBounds(H.N_MAP_LABEL_R),h={textFill:this.config.colors.navigationMap.timeLabelsTextColor,textFontFamily:s.fontFamily,textSize:`${s.fontSize}px`},v={dateFormat:s.dateFormat,padding:s.padding,textProperties:ji(ki({},h),{textAlign:"left"})},p={dateFormat:s.dateFormat,padding:s.padding,textProperties:ji(ki({},h),{textAlign:"right"})};this.drawTimeLabel(t,o,i,v),this.drawTimeLabel(t,l,a,p)}}drawTimeLabel(t,e,s,r){const i=r.padding,a=er(s,r.dateFormat,this.formatterFactory);Qs(t,r.textProperties);const o=Nn(t),l=tr(a);Eo(t,l,e.x+i.x,e.y+o+i.y,r.textProperties)}getCanvasIds(){return[this.canvasModel.canvasId]}}class Ge extends mi{constructor(t,e,s,r,i=vi){super(t,e,s,r,i)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeXDragStart(this.hitTest).subscribe(this.onDragStart)),this.addRxSubscription(this.canvasInputListener.observeXDrag().subscribe(this.onDragTick)),this.addRxSubscription(this.canvasInputListener.observeXDragEnd().subscribe(this.onDragEnd))}doDeactivate(){super.doDeactivate()}}const Ui=4;class vd extends tt{constructor(t,e,s,r,i,a){super(),this.bus=t,this.chartModel=e,this.scale=s,this.canvasInputListeners=r,this.canvasBoundsContainer=i,this.chartPanComponent=a,this.leftKnotDragStartXRelative=0,this.rightKnotDragStartXRelative=0,this.lastMousePosition=0,this.leftKnotDragStart=C=>{const O=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART);this.leftKnotDragStartXRelative=C.x-O.x-Ui},this.leftKnotDragTick=C=>{const{delta:O}=C,Y=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART).width,k=(this.leftKnotDragStartXRelative+O)/Y;this.canvasBoundsContainer.leftRatio=k,this.scale.setXScale(Math.round(this.chartModel.mainCandleSeries.dataPoints.length*this.canvasBoundsContainer.leftRatio),this.scale.xEnd)},this.rightKnotDragStart=C=>{const O=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART);this.rightKnotDragStartXRelative=C.x-O.x+Ui},this.rightKnotDragTick=C=>{const{delta:O}=C,Y=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART).width,k=(this.rightKnotDragStartXRelative+O)/Y;this.canvasBoundsContainer.rightRatio=k,this.scale.setXScale(this.scale.xStart,Math.round(this.chartModel.mainCandleSeries.dataPoints.length*this.canvasBoundsContainer.rightRatio))},this.sliderDragStart=()=>{this.lastMousePosition=0},this.sliderDragTick=C=>{const{delta:O}=C,B=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART),Y=this.chartModel.mainCandleSeries.meanCandleWidth/(B.width/this.chartModel.mainCandleSeries.dataPoints.length),k=(this.lastMousePosition-O)*Y;this.scale.moveXStart(this.scale.xStart-k),this.lastMousePosition=O};const o=this.canvasBoundsContainer.getBoundsHitTest(H.N_MAP_KNOT_L),l=this.canvasBoundsContainer.getBoundsHitTest(H.N_MAP_KNOT_R),c=new Ge(o,{onDragStart:this.leftKnotDragStart,onDragTick:this.leftKnotDragTick},this.canvasInputListeners,this.chartPanComponent),h=new Ge(l,{onDragStart:this.rightKnotDragStart,onDragTick:this.rightKnotDragTick},this.canvasInputListeners,this.chartPanComponent);this.addChildEntity(c),this.addChildEntity(h);const v=this.canvasBoundsContainer.getBoundsHitTest(H.N_MAP_SLIDER_WINDOW),p=new Ge(v,{onDragStart:this.sliderDragStart,onDragTick:this.sliderDragTick},this.canvasInputListeners,this.chartPanComponent);this.addChildEntity(p)}doActivate(){super.doActivate();const t=this.canvasBoundsContainer.getBoundsHitTest(H.N_MAP_BTN_L);this.addRxSubscription(this.canvasInputListeners.observeClick(t).subscribe(()=>{this.scale.moveXStart(this.scale.xStart-1)})),this.addRxSubscription(this.canvasInputListeners.observeTouchStart(t).subscribe(()=>{this.scale.moveXStart(this.scale.xStart-1)}));const e=this.canvasBoundsContainer.getBoundsHitTest(H.N_MAP_BTN_R);this.addRxSubscription(this.canvasInputListeners.observeClick(e).subscribe(()=>{this.scale.moveXStart(this.scale.xStart+1)})),this.addRxSubscription(this.canvasInputListeners.observeTouchStart(e).subscribe(()=>{this.scale.moveXStart(this.scale.xStart+1)})),this.addRxSubscription(this.scale.xChanged.subscribe(()=>{const s=this.chartModel.mainCandleSeries;this.canvasBoundsContainer.leftRatio=s.dataIdxStart/(s.dataPoints.length-1),this.canvasBoundsContainer.rightRatio=s.dataIdxEnd/(s.dataPoints.length-1),this.canvasBoundsContainer.recalculateNavigationMapElementBounds(),this.bus.fireDraw()}))}}class md extends tt{constructor(t,e,s,r,i,a,o,l,c,h){super(),this.eventBus=t,this.chartModel=e,this.canvasModel=s,this.config=r,this.canvasInputListeners=i,this.canvasBoundsContainer=a,this.chartPanComponent=c,this.visualCandles=[];const v=new gd(r,e,s,a,l,()=>this.visualCandles);o.addDrawer(v,H.N_MAP_CHART),this.navigationMapMoveHandler=new vd(this.eventBus,this.chartModel,this.chartModel.scale,this.canvasInputListeners,this.canvasBoundsContainer,this.chartPanComponent),h.setCursorForCanvasEl(H.N_MAP_CHART,r.components.navigationMap.cursors.chart),h.setCursorForCanvasEl(H.N_MAP_BTN_L,r.components.navigationMap.cursors.buttonLeft),h.setCursorForCanvasEl(H.N_MAP_BTN_R,r.components.navigationMap.cursors.buttonRight),h.setCursorForCanvasEl(H.N_MAP_KNOT_L,r.components.navigationMap.cursors.leftResizer),h.setCursorForCanvasEl(H.N_MAP_KNOT_R,r.components.navigationMap.cursors.rightResizer),h.setCursorForCanvasEl(H.N_MAP_SLIDER_WINDOW,r.components.navigationMap.cursors.slider)}doActivate(){super.doActivate(),this.addRxSubscription(Lt(this.chartModel.observeCandlesChanged(),this.canvasBoundsContainer.observeBoundsChanged(H.N_MAP),this.chartModel.scale.xChanged.pipe(ld(),lt(([t,e])=>{const r=t.start<0||t.end>0,i=e.start<0||e.end>0;return r&&!i||i}))).subscribe(()=>{this.config.components.navigationMap.visible&&(this.visualCandles=this.makeVisualCandles(),this.canvasModel.fireDraw())}))}makeVisualCandles(){var t;const e=this.chartModel.getCandles();if(!e.length)return[];const s=this.chartModel.mainCandleSeries.dataIdxStart,r=this.chartModel.mainCandleSeries.dataIdxEnd,i=Math.round(Math.max(-s,0)),a=Math.max(this.chartModel.getCandlesCountWithRightOffset(),r)+i;let o=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY;const c=this.canvasBoundsContainer.getBounds(H.N_MAP_CHART),h=c.width,v=[];let p=0,C,O;for(C=0;C<h;C++)O=gt(C*a/h)-i,O in e?(v[C]=e[O].close,p=(t=v[C])!=null?t:0,o=Math.max(o,p),l=Math.min(l,p)):v[C]=0;return o-=l,v.map((B,Y)=>[Y+c.x,(o+l-B)*c.height/o+c.y])}setVisible(t=!0){var e;(e=this.config.components)!=null&&e.navigationMap&&(this.config.components.navigationMap.visible=t,this.eventBus.fire(Qn),this.canvasModel.fireDraw())}}class pd extends tt{constructor(t,e,s){super(),this.scale=t,this.canvasInputListeners=e,this.mainCanvasParent=s,this.touchedCandleIndexes=[0,0]}doActivate(){this.addRxSubscription(this.canvasInputListeners.observeTouchStart().subscribe(t=>this.handleTouchStartEvent(t))),this.addRxSubscription(this.canvasInputListeners.observeTouchMove().subscribe(t=>this.handleTouchMoveEvent(t)))}handleTouchStartEvent(t){t.touches.length===2&&(this.touchedCandleIndexes=this.getXPositions(t).map(e=>this.scale.fromX(e)))}handleTouchMoveEvent(t){t.touches.length===2&&this.pinchHandler(this.touchedCandleIndexes,this.getXPositions(t))}getXPositions(t){const e=this.mainCanvasParent.getBoundingClientRect(),s=[0,0],r=document.body.scrollLeft||document.documentElement.scrollLeft;for(let i=0,a=t.touches.length;i<a;i++){const o=t.touches[i];s[i]=o.pageX-e.left-r}return s}pinchHandler(t,e){const s=(e[0]*t[1]-e[1]*t[0])/(e[0]-e[1]),r=s+(t[0]-t[1])/(e[0]-e[1])*this.scale.getBounds().width;this.scale.setXScale(s,r)}}const Wi=()=>{const n=/Mac|iPod|iPhone|iPad/i.test(navigator.userAgent),e=[/Android/i,/webOS/i,/BlackBerry/i,/Windows Phone/i].some(s=>navigator.userAgent.match(s));return n?"apple":e?"mobile":"other"},Yg=(n,t)=>n==="apple"||n==="mobile"?3:t,bd=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),Cd=!!window.chrome,zi=typeof InstallTrigger!="undefined",yd=navigator.platform.indexOf("Win")>-1,Xi=n=>{let t=!1;const{wheelDeltaY:e,wheelDeltaX:s}=n;if(e||s){let r;if(bd)r=e===n.deltaY*-3||Math.abs(e+Math.sign(e))===Math.abs(Math.round(n.deltaY)*3)||Math.abs(e-Math.sign(e))===Math.abs(Math.round(n.deltaY)*3);else if(Cd){if(r=e+Math.sign(e)===n.deltaY*-3?e+Math.sign(e)===n.deltaY*-3:e===n.deltaY*-3,yd){const i=Math.round(n.deltaY)===e||Math.abs(Math.round(n.deltaY)+Math.sign(n.deltaY))===Math.abs(e)||Math.abs(Math.round(n.deltaY)-Math.sign(n.deltaY))===Math.abs(e);r=Math.abs(e)===Math.abs(n.deltaY)||i}}else zi?Math.abs(n.deltaY)>Math.abs(n.deltaX)?r=!1:r=s===n.deltaX*-3:r=e===n.deltaY*-3;r&&(t=!0)}else n.deltaMode===0&&(t=!0);return zi&&n.deltaY>=16&&Math.abs(n.deltaY)%16===0&&(t=!1),n.ctrlKey&&(t=!0),t},wd=n=>n.components.yAxis.type==="percent"?n.scale.zoomSensitivity/4:n.scale.zoomSensitivity;var cs=Math.pow;class Sd extends tt{constructor(t,e,s,r,i,a,o,l){super(),this.bus=t,this.config=e,this.scale=s,this.mainCanvasParent=r,this.canvasInputListener=i,this.canvasBoundsContainer=a,this.canvasAnimation=o,this.chartPanComponent=l,this.currentPoint={x:0,y:0},this.xDraggedCandlesDelta=0,this.lastXStart=0,this.wheelTrottleTime=15,this.zoomXHandler=v=>{const p=Xi(v),C=v.deltaY<0,O=p?wd(this.config):this.config.scale.zoomSensitivity;if(this.config.scale.zoomToCursor){const Y=this.canvasBoundsContainer.getBounds(H.CANVAS).width,z=v.offsetX/Y;this.scale.zoomXToPercent(z,C,!1,O)}else this.scale.zoomXToEnd(C,O);this.bus.fireDraw()},this.onXDragStart=()=>{this.canvasAnimation.forceStopAnimation(In),this.xDraggedCandlesDelta=0,this.lastXStart=this.scale.xStart},this.onXDragTick=v=>{const{delta:p}=v;this.currentPoint.x=p;const C=re(p,this.scale.zoomX);this.scale.moveXStart(this.lastXStart-C),this.bus.fireDraw()},this.touchHandler=new pd(this.scale,this.canvasInputListener,this.mainCanvasParent);const c=this.canvasBoundsContainer.getBoundsHitTest(H.ALL_PANES),h=new Ge(c,{onDragStart:this.onXDragStart,onDragTick:this.onXDragTick},this.canvasInputListener,this.chartPanComponent,{disableChartPanning:!1});this.addChildEntity(h)}doActivate(){super.doActivate();const t=this.canvasBoundsContainer.getBoundsHitTest(H.ALL_PANES);this.addRxSubscription(Lt(this.canvasInputListener.observeWheel(t),this.canvasInputListener.observePinch(t)).pipe(Ne(this.wheelTrottleTime,void 0,{trailing:!0,leading:!0})).subscribe(this.zoomXHandler)),this.addRxSubscription(this.canvasInputListener.observeScrollGesture().pipe(Ne(this.wheelTrottleTime,void 0,{trailing:!0,leading:!0})).subscribe(e=>{let s=-1;const r=Wi();(r==="apple"||r==="mobile")&&(s=1);let i=0,a=0;if(i+=e.deltaX*s,a+=e.deltaY*-s,i!==0&&Math.abs(i)>Math.abs(a)){const o=re(i,this.scale.zoomX);this.scale.moveXStart(this.scale.xStart-o)}else a!==0&&Math.abs(a)>Math.abs(i)&&this.zoomXHandler(e);this.bus.fireDraw()})),this.addRxSubscription(this.chartPanComponent.chartBaseModel.dataPrependSubject.asObservable().subscribe(({prependedCandlesWidth:e})=>{this.lastXStart+=e})),this.touchHandler.activate(),this.addSubscription(this.touchHandler.deactivate.bind(this.touchHandler))}registerChartYPanHandler(t,e){let s=t.yStart;const r=()=>{this.canvasAnimation.forceStopAnimation(In),this.currentPoint={x:0,y:0},s=t.yStart},i=o=>{const{delta:l}=o;if(this.currentPoint.y=l,t.state.auto)xd(this.currentPoint,t.state.autoScaleDisableOnDrag)&&t.autoScale(!1);else{const c=re(t.state.inverse?-l:l,t.zoomY);t.moveYStart(s+c)}},a=new un(e,{onDragTick:i,onDragStart:r},this.canvasInputListener,this.chartPanComponent,{disableChartPanning:!1});return this.addChildEntity(a),a}}const xd=(n,t)=>{if(!t.enabled)return!1;const e=Math.abs(n.y),s=cs(cs(Math.abs(n.x),2)+cs(e,2),.5),r=Math.abs(Math.acos(e/s));return e>t.yDiff&&r<t.edgeAngle};class Pd extends tt{constructor(t,e,s,r,i,a,o,l){super(),this.eventBus=t,this.mainScale=e,this.canvasBoundsContainer=s,this.config=r,this.canvasAnimation=i,this.canvasInputListener=a,this.mainCanvasParent=o,this.chartBaseModel=l,this.chartPanComponents=[],this.chartAreaPanHandler=new Sd(this.eventBus,this.config,this.mainScale,this.mainCanvasParent,this.canvasInputListener,this.canvasBoundsContainer,this.canvasAnimation,this),this.chartPanComponents.push(this.chartAreaPanHandler)}doActivate(){this.activateChartPanHandlers()}doDeactivate(){this.deactivatePanHandlers()}activateChartPanHandlers(){this.chartPanComponents.forEach(t=>t.activate())}deactivatePanHandlers(){this.chartPanComponents.forEach(t=>t.deactivate())}}const Vi=n=>t=>{const{top:e,bottom:s}=n(),r=t.high-t.low,i=r===0?1:r,a=i*e/100,o=i*s/100,l=t.low-o,c=t.high+a;return{low:l,high:c}},Gi=(n,t)=>{const e=Vi(n);return{isHighLowActive:()=>!0,calculateHighLow:s=>{const r=t.calculateHighLow(s);return e(r)}}};function Td(){return Hs(1)}function $i(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return Td()(Ke(n,Ze(n)))}function Md(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=Ze(n);return y(function(s,r){(e?$i(n,s,e):$i(n,s)).subscribe(r)})}function _d(n){return lt(function(t,e){return n<=e})}class Ad{constructor(t,e,s,r,i){this.config=t,this.boundsProvider=e,this.canvasModel=s,this.canvasAnimation=r,this.animationId=i}draw(){if(this.config.components.paneResizer.visible){const t=this.config.components.paneResizer.fixedMode,e=this.boundsProvider(),s=this.canvasModel.ctx,r=this.canvasAnimation.getColorAlphaAnimation(this.animationId),i=this.config.components.paneResizer.dragZone;!t&&r&&(s.fillStyle=r.getColor(0),s.fillRect(e.x,e.y-i,e.width,e.height+2*i)),s.fillStyle=this.config.colors.paneResizer.lineColor,this.config.animation.paneResizer.bgMode?s.fillRect(e.x,e.y,e.width,e.height):s.fillRect(e.x,e.y-i,e.width,e.height+2*i)}}getCanvasIds(){return[this.canvasModel.canvasId]}}class Dd extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v){super(),this.id=t,this.boundsProvider=e,this.hitTest=s,this.dragTickCb=r,this.chartPanComponent=i,this.canvasModel=a,this.drawingManager=o,this.canvasInputListener=l,this.canvasAnimation=c,this.config=h,this.canvasBoundsContainer=v,this.initialY=0,this.resizeEvent$=new V,this.onYDragStart=()=>{this.config.components.crossTool.type="none",this.initialY=this.boundsProvider().y},this.onYDragEnd=()=>{this.config.components.crossTool.type="cross-and-labels",this.initialY=this.boundsProvider().y,this.canvasBoundsContainer.graphsHeightRatioChangedSubject.next(this.canvasBoundsContainer.graphsHeightRatio)},this.onYDragTick=p=>{const{delta:C,draggedPixels:O}=p;Math.abs(this.initialY-this.boundsProvider().y+O)>=0&&(this.dragTickCb(C),this.resizeEvent$.next())},this.animationId=`${this.id}_RESIZER`}doActivate(){if(super.doActivate(),!this.config.components.paneResizer.fixedMode){const s=new un(this.hitTest,{onDragTick:this.onYDragTick,onDragStart:this.onYDragStart,onDragEnd:this.onYDragEnd},this.canvasInputListener,this.chartPanComponent);this.addChildEntity(s),this.config.animation.paneResizer.enabled&&this.addRxSubscription(this.canvasInputListener.observeMouseEnter(this.hitTest,!0).pipe(Md(!1),Gt(),_d(1)).subscribe(r=>{r?this.handleHoverAnimation("appearing"):this.handleHoverAnimation("fading")}))}const e=new Ad(this.config,this.boundsProvider,this.canvasModel,this.canvasAnimation,this.animationId);this.drawingManager.addDrawer(e,gi.paneResizer(this.id)),this.addSubscription(()=>this.drawingManager.removeDrawerByName(gi.paneResizer(this.id)))}doDeactivate(){super.doDeactivate(),this.resizeEvent$.complete()}handleHoverAnimation(t){let e;this.config.animation.paneResizer.bgMode?(e=this.canvasAnimation.getColorAlphaAnimation(this.animationId),(!e||!e.animationInProgress)&&this.canvasAnimation.startColorAlphaAnimation(this.animationId,[{color:this.config.colors.paneResizer.bgHoverColor,type:t}])):(e=this.canvasAnimation.getColorTransitionAnimation(this.animationId),(!e||!e.animationInProgress)&&this.canvasAnimation.startColorTransitionAnimation(this.animationId,[{startColor:this.config.colors.paneResizer.bgColor,endColor:this.config.colors.paneResizer.bgHoverColor,type:t}],this.config.animation.paneResizer.duration)),e&&e.animationInProgress&&e.revert()}}const Ed=n=>t=>{let e;if(typeof t=="number")e=t;else if(typeof t=="string")e=Number(t);else return"\u2014";const[s]=n.dataSeries;if(s!==void 0){const r=Kt.getPricePrecision(e,s.pricePrecisions);return e.toFixed(r)}return`${e}`},Od=n=>(t,e)=>{const[s]=n.dataSeries;let r=t;const i=e!=null?e:s;i!==void 0&&(r=Er(t,i.getBaseline()));const a=r.toFixed(Kt.DEFAULT_PRECISION).replace("-","\u2212")+" %";return a==="\u22120.00 %"?"0.00 %":a},Ld=n=>({percent:Od(n),regular:Ed(n)});class Id extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v=new Set,p={regular:Hr}){super(),this.paneUUID=t,this.idx=e,this.paneComponent=s,this.chartBaseModel=r,this.canvasBoundsContainer=i,this.hitTestController=a,this.dynamicObjectsCanvasModel=o,this.scale=l,this.dragNDrop=h,this.dataSeries=v,this.formatters=p,this.getYAxisBounds=()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID_Y_AXIS(this.paneUUID,this.idx)),this.yAxisHT=this.canvasBoundsContainer.getBoundsHitTest(H.PANE_UUID_Y_AXIS(this.paneUUID,this.idx)),this.toVisualPoints=C=>C.map(O=>new Ue(this.chartBaseModel.dataFromTimestamp(O.timestamp).centerUnit,O.close)),this.toY=C=>{var O,B;return(B=(O=this.mainDataSeries)==null?void 0:O.view.toY(C))!=null?B:1},this.valueFormatter=(C,O)=>{var B;return((B=this.formatters[this.yAxis.getAxisType()])!=null?B:this.formatters.regular)(C,O)},this.addChildEntity(l),this.setValueFormatters(Ld(this)),this.yAxis=c(this.valueFormatter.bind(this),()=>this.mainDataSeries),this.addChildEntity(this.yAxis)}doDeactivate(){super.doDeactivate(),this.dataSeries.forEach(t=>{this.paneComponent.seriesRemovedSubject.next(t),t.deactivate()})}getBounds(){return this.scale.getBounds()}getBaseline(){var t,e;return(e=(t=this.mainDataSeries)==null?void 0:t.getBaseline())!=null?e:1}createDataSeries(){const t=new Fr(this,this.hitTestController.getNewDataSeriesHitTestId());return t.toVisualPoints=this.toVisualPoints,t}addDataSeries(t){this.dataSeries.add(t),this.dataSeries.size===1&&(this.mainDataSeries=t),this.paneComponent.updateView(),this.paneComponent.seriesAddedSubject.next(t)}removeDataSeries(t){this.dataSeries.delete(t),this.paneComponent.updateView(),this.paneComponent.seriesRemovedSubject.next(t)}get regularFormatter(){return this.formatters.regular}setValueFormatters(t){this.formatters=t}regularValueFromY(t){var e,s;return(s=(e=this.mainDataSeries)==null?void 0:e.view.priceFromY(t))!=null?s:this.scale.fromY(t)}}const Zi=n=>({isHighLowActive:()=>!0,calculateHighLow:t=>{const e=Array.from(n.dataSeries).filter(s=>s.highLowProvider.isHighLowActive()).map(s=>s.highLowProvider.calculateHighLow(t));return $r(e)}});class Bd{constructor(t,e){this.paneComponents=t,this.canvasModel=e,this.dataSeriesIdCounter=os.DATA_SERIES[0],this.getNewDataSeriesHitTestId=()=>this.dataSeriesIdCounter++}getIdRange(){return os.DATA_SERIES}get allDataSeries(){return Fe(Fe(Object.values(this.paneComponents),t=>t.yExtentComponents),t=>Array.from(t.dataSeries))}lookup(t){return this.allDataSeries.find(s=>s.id===t)}onHover(t){this.allDataSeries.forEach(e=>e.hovered=e.id===(t==null?void 0:t.id)),this.canvasModel.fireDraw()}onMouseDown(t){t&&this.handleYExtentDragStart(t)}onMouseUp(){this.handleYExtentDragEnd()}handleYExtentDragStart(t){Object.values(this.paneComponents).forEach(e=>e.yExtentComponents.forEach(s=>s.dragNDrop.deactivate())),t.extentComponent.dragNDrop.activate()}handleYExtentDragEnd(){Object.values(this.paneComponents).forEach(t=>t.yExtentComponents.forEach(e=>e.dragNDrop.activate()))}}const ae="#FF00FF",Rd=(n,t)=>n==="down"?t.lastPrice.textNegative:n==="up"?t.lastPrice.textPositive:t.lastPrice.textSelected,Fd=(n,t)=>{const e=t.barTheme[`${n}Color`];return e!=null?e:ae},Hd=(n,t)=>{const e=t.lineTheme[`${n}Color`];return e!=null?e:ae},Yd=(n,t)=>{const e=t.candleTheme[`${n}Color`];return e!=null?e:ae},Nd=(n,t)=>{const e=t.areaTheme.lineColor;return e!=null?e:ae},kd=(n,t)=>{const e=t.scatterPlot.mainColor;return e!=null?e:ae},jd=(n,t)=>{const e=t.histogram[`${n}Cap`];return e!=null?e:ae},Ud=(n,t)=>{const e=n==="up"?t.baseLineTheme.upperSectionStrokeColor:t.baseLineTheme.lowerSectionStrokeColor;return e!=null?e:ae},Ki=(n,t)=>{const e=t.candleTheme[`${n}WickColor`];return e!=null?e:ae},Wd=()=>(console.warn("Fallback for label default color"),ae);function zd(n,t){if(n.filter(i=>i!==null).length<=1)return n.map(i=>i.y);const e=t-2,s=n.map((i,a)=>Xd(i,a,e)).filter($s).sort(Vd),r=new Array(s.length);return s.forEach((i,a)=>{if(i===null)return;const o=s[a+1];if(o&&o.top<i.bottom){const l=o.labelWeight-i.labelWeight===1?2:0,c=i.bottom-o.top+l;o.top+=c,o.bottom+=c}r[i.actualIndex]=(i.top+i.bottom)/2}),r}const Xd=(n,t,e)=>n?{top:n.y-e/2,bottom:n.y+e/2,labelWeight:n.weight,actualIndex:t}:null,Vd=(n,t)=>{const e=n.top,s=t.top;return e>s?1:e<s||e===s&&n.labelWeight<t.labelWeight?-1:0};var Gd=Object.defineProperty,$d=Object.defineProperties,Zd=Object.getOwnPropertyDescriptors,Ji=Object.getOwnPropertySymbols,Kd=Object.prototype.hasOwnProperty,Jd=Object.prototype.propertyIsEnumerable,Qi=(n,t,e)=>t in n?Gd(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,qi=(n,t)=>{for(var e in t||(t={}))Kd.call(t,e)&&Qi(n,e,t[e]);if(Ji)for(var e of Ji(t))Jd.call(t,e)&&Qi(n,e,t[e]);return n},ta=(n,t)=>$d(n,Zd(t));const hs={MAIN:"MAIN"};class Qd extends tt{constructor(t,e,s,r,i,a,o){super(),this.eventBus=t,this.scale=e,this.canvasBoundsContainer=s,this.state=r,this.canvasModel=i,this.paneUUID=a,this.updateYAxisWidth=o,this.orderedLabels=[],this.customLabels={},this.labelsProviders={},this.labelsPositionRecalculatedSubject=new V,this.animFrameId=`anim_cache_${te()}`,this.initModel()}doActivate(){super.doActivate(),this.addRxSubscription(Lt(this.canvasBoundsContainer.observeBoundsChanged(H.PANE_UUID(this.paneUUID)),this.canvasBoundsContainer.barResizerChangedSubject,this.scale.changed).subscribe(()=>{this.updateLabels()}))}initModel(){this.initLabelsGroups(),this.recalculateLabels(),this.canvasModel.fireDraw()}initLabelsGroups(){for(const t of Object.keys(this.labelsProviders))this.createGroup(t),Object.entries(this.labelsProviders[t]).forEach(([e,s])=>{this.addToGroup(s,t,e)})}updateLabels(t=!1){this.recalculateLabels(),ss(this.animFrameId,()=>{t&&this.updateYAxisWidth(),this.canvasModel.fireDraw()})}recalculateLabels(){var t,e;this.orderedLabels=[];const s=this.state.fontSize+((t=this.state.labelBoxMargin.top)!=null?t:0)+((e=this.state.labelBoxMargin.bottom)!=null?e:0);for(const r of Object.values(this.labelsProviders)){const i=It(Object.values(r).map(l=>l.getUnorderedLabels())),a=It(i.map(l=>l.labels)).map(l=>{var c;return{y:l.y,weight:(c=l.labelWeight)!=null?c:Number.POSITIVE_INFINITY}}),o=zd(a,s);i.forEach(l=>{const c=o.splice(0,l.labels.length);this.orderedLabels.push(this.updateLabelsCoordinates(l,c))})}this.orderedLabels=this.orderedLabels.reverse()}createGroup(t){!this.labelsProviders[t]&&(this.labelsProviders[t]={})}addToGroup(t,e,s){this.labelsProviders[e]&&(Object.values(this.labelsProviders[e]).includes(t)||(this.labelsProviders[e][s]=t))}updateLabelsCoordinates(t,e){return ta(qi({},t),{labels:t.labels.map((s,r)=>ta(qi({},s),{lineY:s.y,y:e[r]}))})}observeLabelsPositionsRecalculated(){return this.labelsPositionRecalculatedSubject.asObservable()}registerYAxisLabelsProvider(t,e,s){var r;const i=(r=this.labelsProviders[t])!=null?r:{};i[s]=e,this.labelsProviders[t]=i,this.initModel()}unregisterYAxisLabelsProvider(t,e){var s;const r=(s=this.labelsProviders[t])!=null?s:{};delete r[e],this.labelsProviders[t]&&Object.keys(this.labelsProviders[t]).length===0&&delete this.labelsProviders[t],this.initModel()}}const ea=10;class qd extends tt{constructor(t,e,s,r,i,a,o,l){if(super(),this.bus=t,this.viewportModel=r,this.canvasBoundsContainer=a,this.autoScaleCallback=l,this.yAxisDragEndSubject=new V,this.lastYStart=0,this.lastYEnd=0,this.lastYHeight=0,this.lastYPxHeight=0,this.onYDragStart=()=>{this.lastYStart=this.viewportModel.yStart,this.lastYEnd=this.viewportModel.yEnd,this.lastYHeight=this.viewportModel.yEnd-this.viewportModel.yStart,this.lastYPxHeight=this.canvasBoundsContainer.getBounds(H.Y_AXIS).height},this.onYDragTick=c=>{const{delta:h}=c;let v;h<0?v=1/(1+-h/this.lastYPxHeight*(ea-1)):v=1+h/this.lastYPxHeight*(ea-1);const C=(this.lastYHeight*v-this.lastYHeight)/2,O=this.lastYStart-C,B=this.lastYEnd+C;this.autoScaleCallback(!1),this.viewportModel.setYScale(O,B),this.bus.fireDraw()},this.onYDragEnd=()=>{this.yAxisDragEndSubject.next()},e.customScale){const c=()=>e.type!=="percent",h=new un(o,{onDragTick:ds(this.onYDragTick,c),onDragStart:ds(this.onYDragStart,c),onDragEnd:ds(this.onYDragEnd,c)},i,s,{disableChartPanning:!1});this.addChildEntity(h),e.customScaleDblClick&&i.observeDbClick(o).subscribe(()=>{l(!0),this.bus.fireDraw()})}}}const ds=(n,t)=>(...e)=>t()&&n(...e);class tu{constructor(t,e=()=>!0){this.dataProvider=t,this.dataUpdatedPredicate=e,this.calculatedInThisFrame=!1,this.animFrameId=`anim_cache_${te()}`}calculateOrGet(){var t;return this.calculatedInThisFrame||(this.cache=this.dataProvider(),this.dataUpdatedPredicate()&&(this.calculatedInThisFrame=!0),fi(this.animFrameId,()=>{this.calculatedInThisFrame=!1})),(t=this.cache)!=null?t:this.dataProvider()}forceCalculateOrGet(){return this.invalidate(),this.calculateOrGet()}getLastCachedValue(){return this.cache}updateCacheValue(t){this.cache=t}invalidate(){this.cache=void 0,this.calculatedInThisFrame=!1}}const eu=0,nu=.01;class us{constructor(t,e,s,r,i=!1,a,o,l=Bn,c=23){this.increment=t,this.startEndProvider=e,this.lengthProvider=s,this.valueFormatter=r,this.withZero=i,this.axisTypeProvider=a,this.baseLineProvider=o,this.labelFilter=l,this.singleLabelHeightPixels=c,this.gridDistanceMultipliers=[2,4,5,10],this.lastSingleLabelHeightValue=0,this.distanceBetweenLabelsChangeSubject=new V,this.newGeneratedLabelsSubject=new V,this.lastStart=0,this.lastEnd=0,this.labelsCache=new tu(()=>this.labelFilter(this.doGenerateLabels()))}generateRegularLabels(t,e,s){const r=[];this.withZero&&r.push({value:0,text:"0"});let i=wt.roundToNearest(t,s);for(;i<e;){const a=wt.roundToNearest(i,s),o=this.valueFormatter(a);r.push({value:a,text:o}),i=wt.roundDecimal(i+s)}return r}generatePercentLabels(t,e,s){const r=[],i=this.baseLineProvider();let a=wt.roundToNearest(t,s);for(;a<e;){const o=wt.roundToNearest(a,s),l=Or(o,i),c=this.valueFormatter(l);r.push({value:o,text:c}),a=wt.roundDecimal(a+s)}return r}generateLogarithmLabels(t,e,s){const r=[];let i=wt.roundToNearest(t,s);for(;i<e;){const a=Kn(i),o=this.valueFormatter(a);r.push({value:i,text:o}),i=wt.roundDecimal(i+s)}return r}doGenerateLabels(){var t;const e=this.lengthProvider();if(e<=0)return[];const[s,r]=this.calculateMinMax(),i=this.getAxisStep(s,r,e);this.lastSingleLabelHeightValue||(this.lastSingleLabelHeightValue=i);let a;const o=this.axisTypeProvider();if(o==="logarithmic"?a=this.generateLogarithmLabels(s,r,i):o==="percent"?a=this.generatePercentLabels(s,r,i):a=this.generateRegularLabels(s,r,i),this.lastSingleLabelHeightValue!==i&&this.labelsCache.cache){const l=(t=this.labelsCache.getLastCachedValue())!=null?t:[];this.distanceBetweenLabelsChangeSubject.next([l,a]),this.lastSingleLabelHeightValue=i}return this.newGeneratedLabelsSubject.next(a),a}calculateMinMax(){const[t,e]=this.startEndProvider(),s=this.lengthProvider(),r=us.getLabelBounds(t,e,s);return[r[0],r[1]]}getAxisStep(t,e,s){const r=e-t,i=s/this.singleLabelHeightPixels,a=this.calculateIncrement(r),o=r/i;return this.calculateAxisStep(o,a)}observeDistanceBetweenLabelsChanged(){return this.distanceBetweenLabelsChangeSubject.asObservable()}observeLabelsChanged(){return this.newGeneratedLabelsSubject.asObservable()}calculateIncrement(t){if(this.increment)return this.increment;if(!isNaN(t)){const e=Kt.autoDetectIncrementOfValueRange(t);return this.adjustIncrementOnAxisType(e)}return this.adjustIncrementOnAxisType(nu)}adjustIncrementOnAxisType(t){switch(this.axisTypeProvider()){case"percent":return t;case"logarithmic":const[e]=this.calculateMinMax(),r=Kn(e)+t;return Lr(r)-e;case"regular":return t}}generateNumericLabels(){const[t,e]=this.startEndProvider();return(t!==this.lastStart||e!==this.lastEnd)&&this.labelsCache.invalidate(),this.lastStart=t,this.lastEnd=e,this.labelsCache.calculateOrGet()}static getLabelBounds(t,e,s){const r=Math.abs((e-t)*(eu/s));return[t-r,e+r]}calculateAxisStep(t,e){if(e===0)return console.error("NumericAxisLabelsGenerator failed at calculateAxisStep: increment = 0"),0;let s=e,r=e,i=0;for(;s<t&&s>0;)i>=this.gridDistanceMultipliers.length&&(i=0,r*=10),s=r*this.gridDistanceMultipliers[i++];return s}}class su extends us{constructor(t,e,s,r,i=()=>"regular",a=23){super(t,()=>[s.yStart,s.yEnd],()=>s.getBounds().height,r,!1,i,()=>{var o,l;return(l=(o=e())==null?void 0:o.getBaseline())!=null?l:1},void 0,a),this.dataSeriesProvider=e}getLargestLabel(){var t;return((t=this.labelsCache.getLastCachedValue())!=null?t:[]).reduce((e,s)=>s.text.length>e.length?s.text:e,"")}calculateIncrement(t){var e;const s=this.dataSeriesProvider();if(s){const r=Ft(s.dataPoints),i=(e=r==null?void 0:r.close)!=null?e:0,a=Wl(i,s.pricePrecisions);return this.adjustIncrementOnAxisType(a)}return super.calculateIncrement(t)}}function fs(n,t,e){var s=I(n)||t||e?{next:n,error:t,complete:e}:n;return s?y(function(r,i){var a;(a=s.subscribe)===null||a===void 0||a.call(s);var o=!0;r.subscribe(Wt(i,function(l){var c;(c=s.next)===null||c===void 0||c.call(s,l),i.next(l)},function(){var l;o=!1,(l=s.complete)===null||l===void 0||l.call(s),i.complete()},function(l){var c;o=!1,(c=s.error)===null||c===void 0||c.call(s,l),i.error(l)},function(){var l,c;o&&((l=s.unsubscribe)===null||l===void 0||l.call(s)),(c=s.finalize)===null||c===void 0||c.call(s)}))}):Te}class ru extends tt{constructor(t,e,s,r,i){super(),this.scale=t,this.labelsGenerator=e,this.canvasBoundsContainer=s,this.paneUUID=r,this.extentIdx=i,this.labels=[],this.prevYAxisHeight=0,this.animFrameId=`anim_cache_${te()}`}doActivate(){super.doActivate(),this.addRxSubscription(Lt(this.scale.yChanged,this.canvasBoundsContainer.observeBoundsChanged(H.PANE_UUID_Y_AXIS(this.paneUUID,this.extentIdx)).pipe(yt(t=>t.height),lt(t=>ro(t,this.prevYAxisHeight,1.5)),fs(t=>{this.labelsGenerator.labelsCache.invalidate(),this.prevYAxisHeight=t}))).subscribe(()=>this.updateLabels()))}updateLabels(){this.labels=this.labelsGenerator.generateNumericLabels(),ss(this.animFrameId,()=>this.canvasBoundsContainer.updateYAxisWidths())}}class iu extends tt{constructor(t,e,s,r,i,a,o,l,c){super(),this.paneUUID=t,this.state=s,this.canvasBoundsContainer=r,this.labelsGenerator=new su(null,l,a,o,()=>this.state.type,s.labelHeight),this.baseLabelsModel=new ru(a,this.labelsGenerator,this.canvasBoundsContainer,t,c),this.addChildEntity(this.baseLabelsModel),this.fancyLabelsModel=new Qd(e,a,r,s,i,t,()=>this.canvasBoundsContainer.updateYAxisWidths()),this.addChildEntity(this.fancyLabelsModel)}doActivate(){const t={getLargestLabel:()=>{var e;return((e=this.labelsGenerator.labelsCache.getLastCachedValue())!=null?e:[]).map(s=>s.text).concat(this.fancyLabelsModel.orderedLabels.flatMap(s=>s.labels).map(s=>s.labelText)).reduce((s,r)=>r.length>s.length?r:s,"")},getYAxisIndex:()=>0,getYAxisState:()=>this.state,getPaneUUID:()=>this.paneUUID};this.canvasBoundsContainer.yAxisBoundsContainer.registerYAxisWidthContributor(t),this.addSubscription(()=>this.canvasBoundsContainer.yAxisBoundsContainer.removeYAxisWidthContributor(t))}}class au extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v,p){super(),this.eventBus=t,this.canvasModel=s,this.scale=r,this.canvasBoundsContainer=a,this.cursors=l,this.paneUUID=v,this.extentIdx=p,this.labelsColorByChartTypeMap={},this.axisTypeSetSubject=new V,this.state=je(e.components.yAxis),this.yAxisScaleHandler=new qd(t,this.state,o,r,i,a,a.getBoundsHitTest(H.PANE_UUID_Y_AXIS(v,p)),C=>r.autoScale(C)),this.addChildEntity(this.yAxisScaleHandler),this.model=new iu(this.paneUUID,t,this.state,a,s,r,c,h,p),this.addChildEntity(this.model),this.updateCursor(),this.registerDefaultLabelColorResolvers()}registerDefaultLabelColorResolvers(){this.registerLabelColorResolver("candle",Yd),this.registerLabelColorResolver("bar",Fd),this.registerLabelColorResolver("line",Hd),this.registerLabelColorResolver("area",Nd),this.registerLabelColorResolver("scatterPlot",kd),this.registerLabelColorResolver("histogram",jd),this.registerLabelColorResolver("baseline",Ud),this.registerLabelColorResolver("trend",Ki),this.registerLabelColorResolver("hollow",Ki)}doActivate(){this.addRxSubscription(this.scale.beforeStartAnimationSubject.subscribe(()=>this.state.type==="percent"&&this.scale.haltAnimation()))}updateCursor(){this.state.type==="percent"?this.cursors.setCursorForCanvasEl(H.PANE_UUID_Y_AXIS(this.paneUUID,this.extentIdx),this.state.resizeDisabledCursor):this.cursors.setCursorForCanvasEl(H.PANE_UUID_Y_AXIS(this.paneUUID,this.extentIdx),this.state.cursor)}updateOrderedLabels(t=!1){this.model.fancyLabelsModel.updateLabels(t)}registerLabelColorResolver(t,e){this.labelsColorByChartTypeMap[t]=e}getLabelsColorResolver(t){var e;return(e=this.labelsColorByChartTypeMap[t])!=null?e:Wd}registerYAxisLabelsProvider(t,e=hs.MAIN,s=te()){return this.model.fancyLabelsModel.registerYAxisLabelsProvider(e,t,s),s}addSimpleYAxisLabel(t,e){this.model.fancyLabelsModel.customLabels[t]=e,this.canvasModel.fireDraw()}deleteSimpleYAxisLabel(t){delete this.model.fancyLabelsModel.customLabels[t],this.canvasModel.fireDraw()}getAxisType(){return this.state.type}unregisterYAxisLabelsProvider(t=hs.MAIN,e){return this.model.fancyLabelsModel.unregisterYAxisLabelsProvider(t,e),e}getBounds(){return this.canvasBoundsContainer.getBounds(H.PANE_UUID_Y_AXIS(this.paneUUID,this.extentIdx))}registerYAxisWidthContributor(t){this.canvasBoundsContainer.yAxisBoundsContainer.registerYAxisWidthContributor(t)}setAxisType(t){t!==this.state.type&&(this.state.type=t,this.axisTypeSetSubject.next(t),this.scale.autoScale(!0),this.model.fancyLabelsModel.updateLabels(!0),this.updateCursor())}setYAxisAlign(t){this.state.align=t,this.canvasBoundsContainer.updateYAxisWidths(),this.eventBus.fireDraw()}setVisible(t){this.state.visible=t,this.eventBus.fireDraw()}isVisible(){return this.state.visible}setLockPriceToBarRatio(t=!1){this.scale.setLockPriceToBarRatio(t)}changeLabelMode(t,e){this.state.labels.settings[t].mode=e,this.model.fancyLabelsModel.updateLabels()}changeLabelAppearance(t,e){this.state.labels.settings[t].type=e,this.model.fancyLabelsModel.updateLabels()}togglePriceScaleInverse(t){this.scale.state.inverse=t,this.scale.inverseY=t,this.scale.scaleInversedSubject.next(t)}changeLabelsDescriptionVisibility(t){this.state.labels.descriptions=t,this.canvasModel.fireDraw()}}class ou extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v,p,C,O,B,Y,k,z){super(),this.chartBaseModel=t,this.mainCanvasModel=e,this.yAxisLabelsCanvasModel=s,this.dynamicObjectsCanvasModel=r,this.hitTestController=i,this.config=a,this.mainScale=o,this.drawingManager=l,this.chartPanComponent=c,this.canvasInputListener=h,this.canvasAnimation=v,this.cursorHandler=p,this.eventBus=C,this.canvasBoundsContainer=O,this.uuid=B,this.seriesAddedSubject=Y,this.seriesRemovedSubject=k,this._paneOrder=0,this.yExtentComponents=[],this.getYAxisBounds=()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID_Y_AXIS(this.uuid)),this.valueFormatter=(J,K)=>this.mainExtent.valueFormatter(J,K);const Z=this.createExtentComponent(z);this.mainExtent=Z,this.ht=this.canvasBoundsContainer.getBoundsHitTest(H.PANE_UUID(B),{extensionY:-this.config.components.paneResizer.dragZone})}get scale(){return this.mainExtent.scale}get yAxis(){return this.mainExtent.yAxis}get dataSeries(){return Fe(this.yExtentComponents,t=>Array.from(t.dataSeries))}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasBoundsContainer.observeBoundsChanged(H.PANE_UUID(this.uuid)).pipe(Gt(br)).subscribe(()=>{this.yExtentComponents.forEach(t=>t.scale.recalculateZoomY()),this.dynamicObjectsCanvasModel.fireDraw()}))}toY(t){var e,s;return(s=(e=this.mainExtent.mainDataSeries)==null?void 0:e.view.toY(t))!=null?s:this.scale.toY(t)}createGridComponent(t,e,s,r){return new Hi(this.mainCanvasModel,e,this.config,r,`PANE_${t}_grid_drawer`,this.drawingManager,()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID(t)),()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID(t)),()=>[],()=>s.generateNumericLabels())}createYPanHandler(t,e){const s=this.chartPanComponent.chartAreaPanHandler.registerChartYPanHandler(e,this.canvasBoundsContainer.getBoundsHitTest(H.PANE_UUID(t)));return[()=>{this.chartPanComponent.chartAreaPanHandler.removeChildEntity(s),s.disable()},s]}addCursors(t,e){const s=H.PANE_UUID_Y_AXIS(this.uuid,t);return this.cursorHandler.setCursorForCanvasEl(s,e.state.cursor),()=>this.cursorHandler.removeCursorForCanvasEl(s)}createExtentComponent(t){var e,s;const r=this.yExtentComponents.length,i=()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID(this.uuid)),a=(e=t==null?void 0:t.scale)!=null?e:new pc(this.mainScale,this.config,i,this.canvasAnimation),[o,l]=this.createYPanHandler(this.uuid,a),c=(C,O)=>new au(this.eventBus,this.config,this.yAxisLabelsCanvasModel,a,this.canvasInputListener,this.canvasBoundsContainer,this.chartPanComponent,this.cursorHandler,C,O,this.uuid,r),h=new Id(this.uuid,r,this,this.chartBaseModel,this.canvasBoundsContainer,this.hitTestController,this.dynamicObjectsCanvasModel,a,c,l);h.addSubscription(o),h.addSubscription(this.addCursors(r,h.yAxis)),t!=null&&t.paneFormatters&&h.setValueFormatters(t.paneFormatters),((s=t==null?void 0:t.useDefaultHighLow)!=null?s:!0)&&a.autoScaleModel.setHighLowProvider("default",Gi(()=>({top:10,bottom:10,left:0,right:0,visible:!0}),Zi(h)));const p=this.createGridComponent(this.uuid,a,h.yAxis.model.labelsGenerator,h.yAxis.state);return h.addChildEntity(p),h.activate(),this.yExtentComponents.push(h),this.canvasBoundsContainer.updateYAxisWidths(),h}removeExtentComponent(t){t.disable(),this.yExtentComponents.splice(t.idx,1),this.yExtentComponents.forEach((e,s)=>e.idx=s),this.canvasBoundsContainer.updateYAxisWidths()}updateView(){this.yExtentComponents.forEach(t=>{t.scale.doAutoScale(),t.yAxis.model.labelsGenerator.generateNumericLabels()}),this.canvasBoundsContainer.updateYAxisWidths(),this.eventBus.fireDraw()}mergeYExtents(){for(let t=1;t<this.yExtentComponents.length;t++){const e=this.yExtentComponents[t];e.dataSeries.forEach(s=>s.moveToExtent(this.mainExtent)),e.disable()}this.canvasBoundsContainer.updateYAxisWidths(),this.yExtentComponents=[this.mainExtent]}getBounds(){return this.mainExtent.getBounds()}hide(){this._paneOrder=this.canvasBoundsContainer.panesOrder.indexOf(this.uuid),this.canvasBoundsContainer.removedPaneBounds(this.uuid),this.eventBus.fireDraw()}show(){this.canvasBoundsContainer.addPaneBounds(this.uuid,this._paneOrder),this.eventBus.fireDraw()}createDataSeries(){var t;return(t=this.mainExtent)==null?void 0:t.createDataSeries()}addDataSeries(t){this.mainExtent.addDataSeries(t),this.updateView()}removeDataSeries(t){this.mainExtent.removeDataSeries(t),this.updateView()}getAxisType(){return"regular"}moveUp(){this.canvasBoundsContainer.movePaneUp(this.uuid)}moveDown(){this.canvasBoundsContainer.movePaneDown(this.uuid)}canMoveUp(){const t=He(this.canvasBoundsContainer.panesOrder);return this.uuid!==t}canMoveDown(){const t=Ft(this.canvasBoundsContainer.panesOrder);return this.uuid!==t}get regularFormatter(){return this.mainExtent.formatters.regular}setPaneValueFormatters(t){this.mainExtent.setValueFormatters(t)}regularValueFromY(t){return this.mainExtent.regularValueFromY(t)}}class lu extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v,p,C,O,B){super(),this.chartBaseModel=t,this.dynamicObjectsCanvasModel=e,this.userInputListenerComponents=s,this.eventBus=r,this.mainScale=i,this.canvasBoundsContainer=a,this.config=o,this.canvasAnimation=l,this.canvasInputListener=c,this.drawingManager=h,this.cursorHandler=v,this.crossEventProducer=p,this.chartPanComponent=C,this.mainCanvasModel=O,this.yAxisLabelsCanvasModel=B,this.panes={},this.panesChangedSubject=new V,this.dataSeriesAddedSubject=new V,this.dataSeriesRemovedSubject=new V,this.hitTestController=new Bd(this.panes,this.dynamicObjectsCanvasModel);const Y=this.createPane(ht,{useDefaultHighLow:!1,scale:this.mainScale});Y.mainExtent.scale.autoScaleModel.setHighLowProvider("series",Zi(Y.mainExtent)),i.autoScaleModel.setHighLowPostProcessor("offsets",Vi(()=>this.mainScale.getOffsets()))}get panesOrder(){return this.canvasBoundsContainer.panesOrder}addBounds(t,e){return this.canvasBoundsContainer.addPaneBounds(t,e),()=>this.canvasBoundsContainer.removedPaneBounds(t)}addResizer(t){const e=this.canvasBoundsContainer.getBoundsHitTest(H.PANE_UUID_RESIZER(t),{extensionY:this.config.components.paneResizer.dragZone}),s=()=>{this.canvasBoundsContainer.resizePaneVertically(t,this.canvasInputListener.getCurrentPoint().y),this.eventBus.fireDraw([this.mainCanvasModel.canvasId,"dynamicObjectsCanvas"])},r=H.PANE_UUID_RESIZER(t),i=new Dd(r,()=>this.canvasBoundsContainer.getBounds(r),e,s,this.chartPanComponent,this.mainCanvasModel,this.drawingManager,this.canvasInputListener,this.canvasAnimation,this.config,this.canvasBoundsContainer);return this.userInputListenerComponents.push(i),i}get yExtents(){return Fe(Object.values(this.panes),t=>t.yExtentComponents)}getPaneIfHit(t){return Object.values(this.panes).find(s=>this.canvasBoundsContainer.getBoundsHitTest(H.PANE_UUID(s.uuid))(t.x,t.y))}createPane(t=te(),e){if(this.panes[t]!==void 0)return this.panes[t];const s=new ou(this.chartBaseModel,this.mainCanvasModel,this.yAxisLabelsCanvasModel,this.dynamicObjectsCanvasModel,this.hitTestController,this.config,this.mainScale,this.drawingManager,this.chartPanComponent,this.canvasInputListener,this.canvasAnimation,this.cursorHandler,this.eventBus,this.canvasBoundsContainer,t,this.dataSeriesAddedSubject,this.dataSeriesRemovedSubject,e);return this.config.components.paneResizer.visible&&s.addChildEntity(this.addResizer(t)),s.addSubscription(this.addBounds(t,e==null?void 0:e.order)),s.addSubscription(this.addCursors(t)),s.addSubscription(this.crossEventProducer.subscribeMouseOverHT(t,s.ht)),this.panes[t]=s,s.activate(),this.recalculateState(),s.mainExtent.scale.autoScale(!0),this.panesChangedSubject.next(this.panes),s}removePane(t){const e=this.panes[t];e!==void 0&&(e.disable(),e.yExtentComponents.forEach(s=>s.disable()),delete this.panes[t],this.recalculateState(),this.panesChangedSubject.next(this.panes))}addCursors(t,e=this.config.components.chart.cursor){const s=H.PANE_UUID(t),r=H.PANE_UUID_RESIZER(t);return this.cursorHandler.setCursorForCanvasEl(s,e),this.config.components.paneResizer.visible&&this.cursorHandler.setCursorForCanvasEl(r,this.config.components.paneResizer.cursor,this.config.components.paneResizer.dragZone),()=>{this.cursorHandler.removeCursorForCanvasEl(s),this.config.components.paneResizer.visible&&this.cursorHandler.removeCursorForCanvasEl(r)}}recalculateState(){Object.values(this.panes).forEach(t=>t.scale.recalculateZoomY()),this.eventBus.fireDraw([this.mainCanvasModel.canvasId,"dynamicObjectsCanvas"])}}class cu extends tt{constructor(t,e){super(),this.elements=t,this.canvasModel=e}doActivate(){super.doActivate()}createSnapshot(t){const e=this.canvasModel.canvas,s=this.canvasModel.ctx;if(s){s.clearRect(0,0,e.width,e.height);const r=e.width/window.devicePixelRatio,i=e.height/window.devicePixelRatio;return s.drawImage(this.elements.backgroundCanvas,0,0,r,i),s.drawImage(this.elements.mainCanvas,0,0,r,i),s.drawImage(this.elements.dynamicObjectsCanvas,0,0,r,i),s.drawImage(this.elements.crossToolCanvas,0,0,r,i),t&&t(s),new Promise((a,o)=>this.elements.snapshotCanvas.toBlob(l=>l?a(l):o("Blob is null")))}else return console.error("Snapshot isn't supported"),Promise.reject()}}const na=5,hu=1e-10,du=/\.?0+$/,sa=/(\.[1-9]*)0+$/,uu=n=>{const t=(e,s)=>{const r=Math.pow(10,na),i=Math.round(e*r)/r;return i<1&&i>=hu?i.toFixed(na).replace(du,"").replace(sa,""):(i+"").replace(sa,"")+(s||"")};return Math.abs(n)>999999999?(n=Math.round(n/1e6)*1e6,t(n/1e9,"B")):Math.abs(n)>999999?(n=1e3*Math.round(n/1e3),t(n/1e6,"M")):Math.abs(n)>9999?t(n/1e3,"K"):t(n)},bn=class extends tt{constructor(n,t,e,s,r){super(),this.chartComponent=n,this.drawingManager=t,this.config=e,this.volumesModel=s,this.paneManager=r,e.components.volumes.showSeparately&&this.activateSeparateVolumes()}doActivate(){super.doActivate(),this.addRxSubscription(this.chartComponent.chartModel.candlesUpdatedSubject.subscribe(()=>{var n,t;return!((n=this.pane)!=null&&n.scale.isViewportValid())&&((t=this.pane)==null?void 0:t.scale.doAutoScale(!0))})),this.addRxSubscription(this.volumesModel.volumeMax.subscribe(()=>{var n;return(n=this.pane)==null?void 0:n.scale.doAutoScale()}))}activateSeparateVolumes(){if(this.paneManager.panes[bn.UUID]===void 0){const n=this.paneManager.createPane(bn.UUID,{paneFormatters:{regular:uu},useDefaultHighLow:!1,increment:1});this.pane=n,n.mainExtent.yAxis.setAxisType("regular");const{scale:t}=n,e=Gi(()=>({top:10,bottom:0,left:0,right:0,visible:!0}),this.volumesModel.highLowProvider);t.autoScaleModel.setHighLowProvider("volumes",e),t.doAutoScale(!0)}}deactiveSeparateVolumes(){this.paneManager.removePane(bn.UUID),delete this.pane,this.drawingManager.removeDrawerByName("UNDERLAY_VOLUMES_AREA")}fromY(n){var t,e;return(e=(t=this.pane)==null?void 0:t.scale.fromY(n))!=null?e:0}};let ra=bn;ra.UUID="volumes";const Cn=.3,fu=(n,t)=>{const e=t.barTheme[`${n}Color`];return Vt()(e).alpha(Cn).toString()},gu=(n,t)=>{const e=t.volume[`${n}BarColor`];return Vt()(e).alpha(Cn).toString()},vu=(n,t)=>{const e=t.lineTheme[`${n}Color`];return Vt()(e).alpha(Cn).toString()},gs=(n,t)=>{const e=t.candleTheme[`${n}Color`];return Vt()(e).alpha(Cn).toString()},mu=3;class pu{constructor(t,e,s,r,i,a){this.config=t,this.volumesModel=e,this.chartModel=s,this.getViewportModel=r,this.volumesColorByChartTypeMap=i,this.drawPredicate=a,this.volumeBarColors={down:"#FF00FF",up:"#FF00FF",none:"#FF00FF"}}calculateColors(t){var e;const s=(e=this.volumesColorByChartTypeMap[t])!=null?e:gu;this.volumeBarColors.down=s("down",this.config.colors),this.volumeBarColors.up=s("up",this.config.colors),this.volumeBarColors.none=s("none",this.config.colors)}draw(t){if(this.config.components.volumes.visible&&this.drawPredicate()){this.calculateColors(this.config.components.chart.type);const e=t.ctx;e.save();const s=this.getViewportModel().getBounds();we(e,s),this.drawVolumes(t),e.restore()}}drawLastBar(){this.config.components.volumes.visible}drawVolumes(t){const e=this.volumesModel.volumeMax.getValue();if(e===0)return;const s=It(this.chartModel.mainCandleSeries.getSeriesInViewport(this.chartModel.scale.xStart-1,this.chartModel.scale.xEnd+1)),r=this.getViewportModel();s.forEach((i,a)=>{if(i.candle.volume){const o=r.getBounds(),l=o.height,c=s[a+1]!==void 0?st(r.toX(s[a+1].startUnit)):void 0,h=st(r.toX(i.startUnit)),v=c!==void 0?c-h:st(Tt(i.width,r.zoomX));if(this.config.components.volumes.showSeparately){const p=st(r.toY(i.candle.volume)),C=st(r.toY(0))-p;this.drawVolume(t,i,h,p,v,C)}else{const p=e/(l/mu),C=Math.max(Tt(i.candle.volume,p),2),O=st(o.y+l-C);this.drawVolume(t,i,h,O,v,C)}}})}drawVolume(t,e,s,r,i,a){const o=t.ctx,l=r,c=r+a,h=e.name;o.fillStyle=this.volumeBarColors[h],o.strokeStyle=this.volumeBarColors[h],i===0?(o.beginPath(),o.moveTo(s,l),o.lineTo(s,Tr(c)),o.stroke()):o.fillRect(s,r,i,Tr(a))}}const bu=Ao(n=>n.candle.volume);class Cu extends tt{constructor(t,e){super(),this.chartComponent=t,this.scale=e,this.volumeMax=new ee(0),this.highLowProvider={calculateHighLow:()=>({high:this.volumeMax.getValue(),low:0}),isHighLowActive:()=>!0}}doActivate(){super.doActivate(),this.addRxSubscription(Lt(this.chartComponent.chartModel.observeCandlesChanged(),this.scale.xChanged).subscribe(()=>this.updateVolumeMax())),this.addRxSubscription(this.chartComponent.chartModel.mainCandleSeries.observeLastVisualCandleChanged().subscribe(()=>this.recalculateLastVisualVolume()))}recalculateLastVisualVolume(){}updateVolumeMax(){var t;this.volumeMax.next((t=He(bu(this.chartComponent.chartModel.mainCandleSeries.getSeriesInViewport().flat())))!=null?t:0)}}class yu extends tt{constructor(t,e,s,r,i,a,o,l){super(),this.canvasModel=t,this.canvasBoundsContainer=r,this.config=a,this.volumesColorByChartTypeMap={},this.volumeVisibilityChangedSubject=new ee(!1),this.volumeIsSeparateModeChangedSubject=new ee(!1);const c=new Cu(e,s);this.volumesModel=c,this.addChildEntity(c),this.separateVolumes=new ra(e,i,a,c,o);const h=new pu(a,this.volumesModel,e.chartModel,()=>{var v,p;return this.config.components.volumes.showSeparately&&(p=(v=this.separateVolumes.pane)==null?void 0:v.scale)!=null?p:s},this.volumesColorByChartTypeMap,()=>!0);l.model.addObject({drawer:h,model:c},ht),this.addChildEntity(this.separateVolumes),this.registerDefaultVolumeColorResolvers(),this.volumeVisibilityChangedSubject.next(a.components.volumes.visible),this.volumeIsSeparateModeChangedSubject.next(a.components.volumes.showSeparately)}registerDefaultVolumeColorResolvers(){this.registerVolumeColorResolver("candle",gs),this.registerVolumeColorResolver("trend",gs),this.registerVolumeColorResolver("hollow",gs),this.registerVolumeColorResolver("line",vu),this.registerVolumeColorResolver("bar",fu)}setShowVolumesSeparatly(t){this.config.components.volumes.showSeparately!==t&&(this.config.components.volumes.showSeparately=t,t?this.separateVolumes.activateSeparateVolumes():this.separateVolumes.deactiveSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(t))}doDeactivate(){super.doDeactivate(),this.setVisible(!1)}registerVolumeColorResolver(t,e){this.volumesColorByChartTypeMap[t]=e}setVisible(t=!0){this.config.components.volumes.visible=t,this.volumeVisibilityChangedSubject.next(t),this.config.components.volumes.showSeparately===!0&&(t?(this.separateVolumes.activateSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(!0)):(this.separateVolumes.deactiveSeparateVolumes(),this.volumeIsSeparateModeChangedSubject.next(!1))),this.canvasBoundsContainer.recalculatePanesHeightRatios(),this.canvasModel.fireDraw()}}class wu{constructor(t,e,s,r,i){this.config=t,this.canvasBoundsContainer=e,this.canvasModel=s,this.waterMarkConfigProvider=r,this.watermarkDataProvider=i,this.getConfig=(a=0,o,l,c,h,v)=>{const p=this.canvasModel.ctx,C=this.canvasBoundsContainer.getBounds(H.PANE_UUID(ht)),{position:O,offsetY:B,offsetX:Y}=this.config.components.waterMark;let k;switch(v?k=v:(p.font=yn(this.config,l),k=p.measureText(o).width,C.width-10<k&&(p.font=Su(this.config,this.canvasBoundsContainer,l,k),k=p.measureText(o).width)),O){case"left-top":return{x:Y+C.x,y:B+a+C.y,font:p.font,text:o,color:c};case"left-bottom":return{x:Y+C.x,y:C.height-h-B+a+C.y,font:p.font,text:o,color:c};case"center":return{x:C.width/2-k/2+C.x,y:(C.height-h)/2+a+C.y,font:p.font,text:o,color:c}}}}draw(){var t,e,s,r,i,a,o;if((t=this.config.components.waterMark)!=null&&t.visible&&this.config.colors){const{firstRow:l,secondRow:c,thirdRow:h}=this.watermarkDataProvider(),v=this.waterMarkConfigProvider(),p=this.config.colors.waterMarkTheme,C=this.canvasModel.ctx;let O=0,B=0,Y=0,k=0,z=0;if(C.save(),v.firstRowFontSize&&l){C.font=yn(this.config,v.firstRowFontSize);const U=C.measureText(l);O=U.actualBoundingBoxAscent+U.actualBoundingBoxDescent}if(v.secondRowFontSize&&c){C.font=yn(this.config,v.secondRowFontSize);const U=C.measureText(c);B=U.actualBoundingBoxAscent+U.actualBoundingBoxDescent,Y=(e=v.firstRowBottomPadding)!=null?e:0}if(v.thirdRowFontSize&&h){C.font=yn(this.config,v.thirdRowFontSize);const U=C.measureText(h);k=U.actualBoundingBoxAscent+U.actualBoundingBoxDescent,z=(s=v.secondRowBottomPadding)!=null?s:0}const Z=(r=v.thirdRowBottomPadding)!=null?r:0,J=(i=v.logoHeight)!=null?i:0,K=O+B+Y+k+z+Z+J;if(l&&this.drawWaterMark(this.getConfig(O,l,v.firstRowFontSize,p.firstRowColor,K)),c&&this.drawWaterMark(this.getConfig(O+Y+B,c,v.secondRowFontSize,p.secondRowColor,K)),h&&this.drawWaterMark(this.getConfig(O+Y+B+z+k,h,v.thirdRowFontSize,p.thirdRowColor,K)),this.logoImage){const U=this.getConfig(O+Y+B+z+k+Z,"",v.thirdRowFontSize,p.thirdRowColor,K,v.logoWidth);this.canvasModel.ctx.drawImage(this.logoImage,U.x,U.y,(a=v.logoWidth)!=null?a:0,(o=v.logoHeight)!=null?o:0)}C.restore()}}getCanvasIds(){return[this.canvasModel.canvasId]}setLogoImage(t){this.logoImage=t}drawWaterMark(t){const e=t.text;if(!e||!e.length)return;const s=this.canvasModel.ctx;s.font=t.font,s.fillStyle=t.color;const r=t.x,i=t.y;s.fillText(e,r,i)}reset(){}}const Su=(n,t,e,s)=>{const i=((o,l)=>t.getBounds(H.CHART).width/l*o)(e,s);let a;return n.components&&n.components.waterMark&&(a=n.components.waterMark.fontFamily),i+"px "+a},yn=(n,t)=>{let e;return n.components&&n.components.waterMark&&(e=n.components.waterMark.fontFamily),t+"px "+e};var xu=Object.defineProperty,ia=Object.getOwnPropertySymbols,Pu=Object.prototype.hasOwnProperty,Tu=Object.prototype.propertyIsEnumerable,aa=(n,t,e)=>t in n?xu(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,oa=(n,t)=>{for(var e in t||(t={}))Pu.call(t,e)&&aa(n,e,t[e]);if(ia)for(var e of ia(t))Tu.call(t,e)&&aa(n,e,t[e]);return n};class Mu extends tt{constructor(t,e,s,r,i,a,o){super(),this.paneManager=t,this.chartModel=e,this.eventBus=s,this.config=r,this.canvasModel=a,this.waterMarkConfig=this.config.components.waterMark,this.waterMarkData=this.getWaterMarkData(),this.waterMarkDrawer=new wu(this.config,i,a,()=>this.waterMarkConfig,()=>this.waterMarkData),this.addRxSubscription($t(i.observeBoundsChanged(H.PANE_UUID(ht)),this.paneManager.panesChangedSubject).subscribe(l=>{this.waterMarkConfig=this.recalculateTextSize(l.width,l.height)})),this.addRxSubscription(this.chartModel.candlesSetSubject.subscribe(()=>{this.waterMarkData=this.getWaterMarkData()})),o.addDrawerAfter(this.waterMarkDrawer,"WATERMARK","DYNAMIC_OBJECTS")}setWaterMarkVisible(t){this.config.components&&this.config.components.waterMark&&(this.config.components.waterMark.visible=t,this.canvasModel.fireDraw())}setWaterMarkData(t){this.waterMarkData=t,this.canvasModel.fireDraw()}getWaterMarkData(){return this.waterMarkData||{}}setWaterMarkConfig(t){if(!(!t||!this.config.components)){if(!this.config.components.waterMark)this.config.components.waterMark=JSON.parse(JSON.stringify(t));else{const e={};$t(e,t),$t(e,this.config.components.waterMark),this.config.components.waterMark=e}this.canvasModel.fireDraw()}}setLogoImage(t){this.waterMarkDrawer.setLogoImage(t)}recalculateTextSize(t,e){const i=v=>.15*Math.log(v)/Math.log(1.5)+1,a=i(t/1920),o=i(e/1080),l=Math.min(a,o),c=l>=0?l:0,h={firstRowFontSize:Math.round(this.config.components.waterMark.firstRowFontSize*c),secondRowFontSize:Math.round(this.config.components.waterMark.secondRowFontSize*c),thirdRowFontSize:Math.round(this.config.components.waterMark.thirdRowFontSize*c)};return oa(oa({},this.config.components.waterMark),h)}}const la={x:4,y:4};function _u(n,t,e,s,r){var i,a;const o=(i=r.alignType)!=null?i:"middle",{fontSize:l,fontFamily:c,padding:h}=s.components.xAxis,v=(a=h.top)!=null?a:0,p=e.getBounds(H.X_AXIS);t.save(),t.font=`bold ${l}px ${c}`;const O=t.measureText(r.text).width+la.x*2;let B=0;const Y=r.x;switch(o){case"start":B=Y-O;break;case"end":B=Y;break;case"middle":default:B=Y-O/2;break}on(n,t,B,p.y,O,p.height-1),o!=="middle"&&(t.strokeStyle=r.color,t.beginPath(),t.moveTo(Y,p.y),t.lineTo(Y,p.y+p.height),t.stroke()),t.fillStyle=r.color;const k=B+la.x,z=p.y+v+l;t.fillText(r.text,k,z),t.restore()}class Au{constructor(t,e,s,r,i){this.backgroundCanvasModel=t,this.config=e,this.canvasModel=s,this.canvasBoundsContainer=r,this.xAxisLabelsModel=i}draw(){const t=this.canvasModel.ctx;this.drawHighlightedBackgroundBetweenLabels(),this.xAxisLabelsModel.labels.forEach(e=>{_u(this.backgroundCanvasModel.ctx,t,this.canvasBoundsContainer,this.config,e)})}drawHighlightedBackgroundBetweenLabels(){const t=this.canvasModel.ctx,e={},s=this.xAxisLabelsModel.labels.reduce((r,i)=>{if(i.subGroupId!==void 0){let a=r[i.subGroupId];a||(a=[],r[i.subGroupId]=a),a.push(i)}return r},e);Object.keys(s).forEach(r=>{const i=s[r];if(i.length===2){const a=this.canvasBoundsContainer.getBounds(H.X_AXIS);t.fillStyle=Vt().rgb(i[0].color).alpha(.1).toString(),ri(t,{x:i[0].x,y:a.y},{x:i[1].x,y:a.y+a.height})}})}getCanvasIds(){return[this.canvasModel.canvasId]}}const Ng="week-weekday",Du=["second","minute","hour","day","month","year"],Eu=["lessThanSecond"],Ou=n=>Du.some(t=>t===n),Lu=n=>n==="week-weekday",Iu=n=>Eu.some(t=>t===n),ca=n=>{const t={"!":!1,$:!1};return n.includes("!")&&(t["!"]=!0),n.includes("$")&&(t.$=!0),t},vs=n=>parseInt(n,10),ha=n=>{const[t,...e]=n.split("_");if(Ou(t)){const[s]=e,r=ca(s),i=vs(s);return{key:t,value:i,exact:r["!"]}}else if(Lu(t)){const[s,r]=e,i=ca(s),a=vs(s),o=vs(r);return{key:t,week:i.$?"$":a,weekday:o}}else return Iu(t)?{key:t}:(console.warn(`${n} is not fit, check the documentation to see available formats https://webdev.prosp.devexperts.com:8095/docs/chart/x-axis`),null)};class wn{constructor(t,e,s,r,i,a=()=>!0){this.config=t,this.canvasModel=e,this.viewportModel=s,this.canvasBoundsContainer=r,this.labelsProvider=i,this.drawPredicate=a}draw(){var t;if(this.drawPredicate()){const e=this.canvasModel.ctx,s=this.config.colors.xAxis,r=this.config.components.xAxis.fontFamily,i=wn.getFontFromConfig(this.config),a=this.config.components.xAxis.fontSize,o=(t=this.config.components.xAxis.padding.top)!=null?t:0;e.save(),e.font=i,e.fillStyle=s.backgroundColor;const l=this.canvasBoundsContainer.getBounds(H.X_AXIS);e.fillRect(l.x,l.y,l.width,l.height);const c=this.config.colors.xAxis.labelTextColor,h=this.labelsProvider();this.drawLabels(e,h,l,c,a,r,o),e.restore()}}drawLabels(t,e,s,r,i,a,o){const l=`${i}px ${a}`;t.fillStyle=r;for(const c of e){const h=this.viewportModel.toX(c.value)-Ht(c.text,t,l)/2;if(h<0||h>s.width)continue;const v=s.y+i-1+o,p=c.text;t.font=l,t.fillText(p,h,v)}}static getFontFromConfig(t){return`${t.components.xAxis.fontStyle} ${t.components.xAxis.fontSize}px ${t.components.xAxis.fontFamily}`}getCanvasIds(){return[this.canvasModel.canvasId]}}const ms={lessThanSecond:0,second:100,minute:200,hour:300,day:400,"week-weekday":500,month:600,year:1e4},da=n=>{switch(n.key){case"second":case"minute":case"hour":case"day":case"month":case"year":return ms[n.key]+n.value;case"lessThanSecond":return ms[n.key];case"week-weekday":return ms[n.key]+(n.week==="$"?9:n.week)+n.weekday*10}},ua=n=>{const t={};return n.forEach(e=>{const s=t[e.weight];s===void 0?t[e.weight]=[e]:s.push(e)}),t},Bu=(n,t)=>{const e=Object.keys(n).map(r=>parseInt(r,10)).sort((r,i)=>i-r);let s=[];for(const r of e){const i=n[r];if(!i)continue;const a=[...s];s=[];const o=a.length,l=i.length;let c=0,h=1/0,v=-1/0;for(let p=0;p<l;p++){const C=i[p],O=C.idx;for(;c<o;){const B=a[c],Y=B.idx;if(O>Y)c++,s.push(B),v=Y,h=1/0;else{h=Y;break}}h-O>=t&&O-v>=t&&(s.push(C),v=O)}for(;c<o;)s.push(a[c]),c++}return s},Ru=(n,t,e,s,r,i)=>{const a=wn.getFontFromConfig(t),o=Ht(e.text,n,a),l=Ht(s.text,n,a),c=r.toX(e.value)+o/2;return r.toX(s.value)-l/2-c<i};function ps(n){"@babel/helpers - typeof";return ps=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ps(n)}function Bt(n,t){if(t.length<n)throw new TypeError(n+" argument"+(n>1?"s":"")+" required, but only "+t.length+" present")}function Rt(n){Bt(1,arguments);var t=Object.prototype.toString.call(n);return n instanceof Date||ps(n)==="object"&&t==="[object Date]"?new Date(n.getTime()):typeof n=="number"||t==="[object Number]"?new Date(n):((typeof n=="string"||t==="[object String]")&&typeof console!="undefined"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function Fu(n){return Bt(1,arguments),Rt(n).getDay()===1}function Hu(n){return Bt(1,arguments),Rt(n).getDay()===2}function Yu(n){return Bt(1,arguments),Rt(n).getDay()===3}function Nu(n){return Bt(1,arguments),Rt(n).getDay()===4}function ku(n){return Bt(1,arguments),Rt(n).getDay()===5}function ju(n){return Bt(1,arguments),Rt(n).getDay()===6}function Uu(n){return Bt(1,arguments),Rt(n).getDay()===0}function Wu(n,t){var e;Bt(1,arguments);var s=n||{},r=Rt(s.start),i=Rt(s.end),a=i.getTime();if(!(r.getTime()<=a))throw new RangeError("Invalid interval");var o=[],l=r;l.setHours(0,0,0,0);var c=Number((e=t==null?void 0:t.step)!==null&&e!==void 0?e:1);if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number greater than 1");for(;l.getTime()<=a;)o.push(Rt(l)),l.setDate(l.getDate()+c),l.setHours(0,0,0,0);return o}function zu(n){Bt(1,arguments);var t=Rt(n);return t.setDate(1),t.setHours(0,0,0,0),t}function Xu(n){Bt(1,arguments);var t=Rt(n),e=t.getMonth();return t.setFullYear(t.getFullYear(),e+1,0),t.setHours(23,59,59,999),t}function fa(n){Bt(1,arguments);var t=Rt(n);return t.setHours(0,0,0,0),t}function ga(n,t){Bt(2,arguments);var e=fa(n),s=fa(t);return e.getTime()===s.getTime()}const Vu=n=>{switch(n.key){case"lessThanSecond":return Ku(n);case"month":return Ju(n);case"second":case"minute":case"hour":case"day":case"year":return Qu(n);case"week-weekday":return qu(n);default:return()=>!1}},ge=(n,t)=>{switch(t){case"lessThanSecond":return n.getMilliseconds();case"month":return n.getMonth();case"second":return n.getSeconds();case"minute":return n.getMinutes();case"hour":return n.getHours();case"day":return n.getDate();case"year":return n.getFullYear();case"week-weekday":return n.getDate()}},bs=n=>(t,e)=>{const s=ge(t,n),r=ge(e,n);return s!==r},Gu=n=>(t,e)=>{const s=ge(t,n),r=ge(e,n);return s>=r},$u={1:Fu,2:Hu,3:Yu,4:Nu,5:ku,6:ju,7:Uu},Zu=(n,t,e)=>{var s;const r=Wu({start:zu(n),end:Xu(n)}),i=(s=$u[e])!=null?s:()=>!1;if(t==="$"){for(const a of r.reverse())if(i(a))return ga(n,a)}else{let a=1;for(const o of r)if(i(o)){if(a===t)return ga(n,o);a++}}return!1},va=(n,t)=>t===1?n===1:n/t===1,ma=(n,t)=>t===1?!0:n%t===0,Ku=n=>(t,e)=>Gu(n.key)(t,e),Ju=n=>(t,e)=>{const s=bs(n.key)(t,e),r=n.exact?va(ge(t,n.key)+1,n.value):ma(ge(t,n.key)+1,n.value);return s&&r},Qu=n=>(t,e)=>{const s=bs(n.key)(t,e),r=n.exact?va(ge(t,n.key),n.value):ma(ge(t,n.key),n.value);return s&&r},qu=n=>(t,e)=>{const s=bs(n.key)(t,e),r=Zu(t,n.week,n.weekday);return s&&r},tf=n=>{switch(n.key){case"second":case"minute":return ef(n.value);case"hour":return nf(n.value);case"day":return sf(n.value);case"month":return of(n.value);case"year":return lf(n.value);case"week-weekday":const t=af(n.week),e=rf(n.weekday);return t&&e;case"lessThanSecond":return!0;default:return!1}},ef=n=>n>0&&n<=60,nf=n=>n>0&&n<=24,sf=n=>n>0&&n<=31,rf=n=>pa(n)?n>=1&&n<=7:!1,af=n=>n==="$"?!0:pa(n)?n>=1&&n<=6:!1,of=n=>n>0&&n<=12,lf=n=>n>0,pa=n=>!isNaN(n)&&isFinite(n),cf=(n,t,e,s)=>{var r,i;const a=s(n.getTime()),o=s(t.getTime());for(const[l,c]of e)if(c(a,o))return l;return(i=(r=e[e.length-1])==null?void 0:r[0])!=null?i:0};function Cs(n,t,e){const s=new Array(n.length);let r=new Date(0);for(let i=0;i<n.length;i++){const a=n[i],o=new Date(a.candle.timestamp),l={weight:cf(o,r,t,e)};s[i]=l,r=o}return s}const ba=n=>{const t={},e={};return $n(n).forEach(([s,r])=>{const i=ha(s),a=i===null?!1:tf(i);if(i&&a){const o=da(i);t[o]=r,e[o]=Vu(i)}}),{weightToTimeFormatsDict:t,weightToTimeFormatMatcherDict:e}};class Ca{constructor(t,e,s,r,i,a){this.eventBus=t,this.config=e,this.chartModel=s,this.scale=r,this.timeZoneModel=i,this.canvasModel=a,this.labelsGroupedByWeight={},this.levelsCache={},this.weightToTimeFormatMatcherArray=[],this.weightToTimeFormatsDict={},this.extendedLabelsFilterConfig={minute_1:c=>c>=2},this.formatsByWeightMap=e.components.xAxis.formatsForLabelsConfig;const{weightToTimeFormatsDict:o,weightToTimeFormatMatcherDict:l}=ba(this.formatsByWeightMap);this.weightToTimeFormatMatcherArray=Object.entries(l).map(([c,h])=>[parseInt(c,10),h]).sort(([c],[h])=>h-c),this.weightToTimeFormatsDict=o}get labels(){return this.getLabelsFromChartType()}getLabelsFromChartType(){var t,e;const s=(e=(t=this.weightedCache)==null?void 0:t.labels)!=null?e:[];return this.config.components.chart.type==="equivolume"?this.postProcessing(s):s}getAllCandlesWithFake(){const t=this.chartModel.mainCandleSeries.visualPoints;if(t.length===0)return[];const s=Array.from({length:750}).map((r,i)=>Yr(this.chartModel.mainCandleSeries.dataPoints,this.chartModel.mainCandleSeries.visualPoints,this.chartModel.mainCandleSeries.meanCandleWidth,t.length+i,this.chartModel.getPeriod()));return[...t,...s]}mapWeightedPointsToLabels(t,e){const s=new Array(t.length);return t.forEach((r,i)=>{var a;const o=e[i],l=this.weightToTimeFormatsDict[r.weight],c=this.timeZoneModel.getDateTimeFormatter(l)(o.candle.timestamp);s[i]={weight:r.weight,idx:(a=o.candle.idx)!=null?a:0,value:o.centerUnit,time:o.candle.timestamp,text:c}}),s}setFormatsForLabelsConfig(t){const{weightToTimeFormatsDict:e,weightToTimeFormatMatcherDict:s}=ba(t);this.formatsByWeightMap=t,this.weightToTimeFormatMatcherArray=Object.entries(s).map(([r,i])=>[parseInt(r,10),i]).sort(([r],[i])=>i-r),this.weightToTimeFormatsDict=e,this.generateWeightedLabels()}generateWeightedLabels(){const t=this.getAllCandlesWithFake(),e=Cs(t,this.weightToTimeFormatMatcherArray,this.timeZoneModel.tzOffset(this.config.timezone)),s=this.mapWeightedPointsToLabels(e,t);this.labelsGroupedByWeight=ua(s),this.weightedCache=void 0,this.levelsCache={},this.recalculateCachedLabels()}getLabelsFromCache(t){if(this.levelsCache[t])return this.levelsCache[t]}updateLastLabel(t){const e=this.chartModel.mainCandleSeries.visualPoints[this.chartModel.mainCandleSeries.visualPoints.length-2];if(e){const r=Cs([e,t],this.weightToTimeFormatMatcherArray,this.timeZoneModel.tzOffset(this.config.timezone)),i=this.mapWeightedPointsToLabels([r[1]],[t]),[a]=i;this.labelsGroupedByWeight=Object.entries(this.labelsGroupedByWeight).reduce((o,[l,c])=>{const h=c.findIndex(p=>p.idx===a.idx);let v=c;if(h!==-1&&(v=c.filter(p=>p.idx!==a.idx)),parseInt(l,10)===a.weight){const p=v.findIndex(C=>C.idx>a.idx);p!==-1?v=[...v.slice(0,p),a,...v.slice(p)]:v.push(a)}return o[l]=v,o},{}),this.weightedCache=void 0,this.levelsCache={},this.recalculateCachedLabels()}}updateHistoryLabels(t){const e=t.concat(this.chartModel.mainCandleSeries.visualPoints[t.length]),s=Cs(e,this.weightToTimeFormatMatcherArray,this.timeZoneModel.tzOffset(this.config.timezone)),r=this.mapWeightedPointsToLabels(s,e),i=ua(r),a=je(i);for(const c in this.labelsGroupedByWeight)a[c]===void 0&&(a[c]=this.labelsGroupedByWeight[c]);const o=this.chartModel.mainCandleSeries.visualPoints[t.length-1],l=Object.entries(a).sort(([c],[h])=>parseInt(h,10)-parseInt(c,10)).reduce((c,[h,v])=>{const p=parseInt(h,10),C=this.labelsGroupedByWeight[p];if(p===this.weightToTimeFormatMatcherArray[0][0]&&C.shift(),C){const O=C.map(B=>(B.idx=B.idx+t.length,B.value=o.startUnit+o.width+B.value,B));i[p]?c[h]=v.concat(O):c[h]=O}else c[h]=v;return c},{});this.labelsGroupedByWeight=l,this.weightedCache=void 0,this.levelsCache={},this.recalculateCachedLabels()}generateLabels(){this.generateWeightedLabels()}recalculateLabels(){this.recalculateCachedLabels()}recalculateCachedLabels(){if(Object.getOwnPropertyNames(this.labelsGroupedByWeight).length===0)return;const t=this.config.components.xAxis.fontSize,e=Object.values(this.formatsByWeightMap).reduce((a,o)=>Math.max(o.length,a),1),s=t*e,r=Tt(this.chartModel.mainCandleSeries.meanCandleWidth,this.scale.zoomX),i=Math.round(s/r);if(!(i<0&&!isFinite(r))&&(this.weightedCache===void 0||i!==this.weightedCache.coverUpLevel)){const a=this.getLabelsFromCache(i);if(a){this.weightedCache={labels:a,coverUpLevel:i};return}const o=Bu(this.filterLabelsByExtendedRules(this.labelsGroupedByWeight,i),i);this.levelsCache[i]=o,this.weightedCache={labels:o,coverUpLevel:i},this.eventBus.fireDraw()}}postProcessing(t){var e,s;const r=[];let i=0,a=1;for(;a<=t.length-1;){const o=t[i],l=t[a];Ru(this.canvasModel.ctx,this.config,o,l,this.scale,30)?((e=l.weight)!=null?e:0)>((s=o.weight)!=null?s:0)&&(i=a):(r.push(o),i=a,a===t.length-1&&r.push(l)),a++}return r}filterLabelsByExtendedRules(t,e){const s=$n(this.extendedLabelsFilterConfig).reduce((r,i)=>{if(!i)return r;const[a,o]=i;if(o){const l=ha(a);if(l){const c=da(l);r[c]=o}}return r},{});return $n(t).reduce((r,[i,a])=>(s[i]&&s[i](e)||(r[i]=a),r),{})}}class hf extends tt{constructor(t,e){super(),this.eventBus=t,this.labelProviders=e,this.labels=[],this.initModel(),this.addSubscription(this.eventBus.on(cn,()=>this.recalculateLabels()))}initModel(){this.recalculateLabels()}recalculateLabels(){this.labels=[];for(const t of this.labelProviders)this.labels.push(...t.getUnorderedLabels())}}class df extends tt{constructor(t,e,s,r,i){super(),this.scale=t,this.canvasInputListener=e,this.canvasBoundsContainer=s,this.chartPanComponent=r,this.chartModel=i,this.lastXStart=0,this.lastXWidth=0,this.lastXPxWidth=0,this.onXDragStart=()=>{this.lastXStart=this.scale.xStart,this.lastXWidth=this.scale.xEnd-this.scale.xStart;const o=this.canvasBoundsContainer.getBounds(H.X_AXIS);this.lastXPxWidth=o.width-this.canvasInputListener.currentPoint.x},this.onXDragTick=o=>{const{delta:l}=o,c=this.lastXPxWidth-l;if(c<0)return;const h=this.lastXPxWidth/c,v=this.lastXWidth*h,p=this.lastXStart+(this.lastXWidth-v);this.scale.setXScale(p,this.scale.xEnd)};const a=new Ge(this.canvasBoundsContainer.getBoundsHitTest(H.X_AXIS),{onDragStart:this.onXDragStart,onDragTick:this.onXDragTick},this.canvasInputListener,this.chartPanComponent,{disableChartPanning:!1});this.addChildEntity(a)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeDbClick(this.canvasBoundsContainer.getBoundsHitTest(H.X_AXIS)).subscribe(()=>this.chartModel.doBasicScale())),this.addRxSubscription(this.chartModel.candlesPrependSubject.subscribe(({prependedCandlesWidth:t})=>this.lastXStart+=t))}}class uf extends tt{constructor(t,e,s,r,i,a,o,l,c,h,v,p,C){super(),this.eventBus=t,this.config=e,this.canvasModel=s,this.chartComponent=r,this.scale=i,this.chartResizeHandler=l,this.timeZoneModel=h;const O=new Ca(t,e,r.chartModel,i,h,this.canvasModel);this.xAxisLabelsGenerator=O,this.xAxisLabelsModel=new hf(t,[]);const B=new is;c.addDrawer(B,"X_AXIS"),this.xAxisDrawer=new wn(e,s,i,a,()=>this.xAxisLabelsGenerator.labels,()=>e.components.xAxis.visible),B.addDrawer(this.xAxisDrawer),this.xAxisLabelsDrawer=new Au(C,e,s,a,this.xAxisLabelsModel),B.addDrawer(this.xAxisLabelsDrawer),this.xAxisScaleHandler=new df(i,o,a,v,this.chartComponent.chartModel),this.addChildEntity(this.xAxisScaleHandler),p.setCursorForCanvasEl(H.X_AXIS,e.components.xAxis.cursor)}doActivate(){super.doActivate(),this.addRxSubscription(Lt(this.chartComponent.chartModel.candlesSetSubject,this.timeZoneModel.observeTimeZoneChanged()).subscribe(()=>{this.xAxisLabelsGenerator.generateLabels()})),this.addRxSubscription(this.chartComponent.chartModel.candlesPrependSubject.pipe(lt(({preparedCandles:t})=>t.length!==0),yt(({preparedCandles:t})=>this.chartComponent.chartModel.mainCandleSeries.visualPoints.slice(0,t.length))).subscribe(t=>{No.includes(this.config.components.chart.type)&&this.xAxisLabelsGenerator.updateHistoryLabels&&this.xAxisLabelsGenerator.updateHistoryLabels(t)})),this.addRxSubscription(Lt(this.scale.xChanged,this.chartResizeHandler.canvasResized).pipe(Ne(50,void 0,{trailing:!0,leading:!0})).subscribe(()=>{this.xAxisLabelsGenerator.recalculateLabels()})),this.addRxSubscription(this.chartComponent.chartModel.candlesUpdatedSubject.pipe(yt(()=>Ft(this.chartComponent.chartModel.mainCandleSeries.visualPoints)),Gt((t,e)=>{var s,r;return((s=t==null?void 0:t.candle)==null?void 0:s.timestamp)===((r=e==null?void 0:e.candle)==null?void 0:r.timestamp)}),lt($s)).subscribe(t=>{this.xAxisLabelsGenerator.updateLastLabel&&this.xAxisLabelsGenerator.updateLastLabel(t)}))}getDrawer(){return this.xAxisDrawer}registerXAxisLabelsProvider(t){this.xAxisLabelsModel.labelProviders.push(t)}setVisible(t){var e;(e=this.config.components)!=null&&e.xAxis&&(this.config.components.xAxis.visible=t,this.eventBus.fireDraw())}setFormatsForLabelsConfig(t){this.xAxisLabelsGenerator instanceof Ca?this.xAxisLabelsGenerator.setFormatsForLabelsConfig(t):console.error("Format config for x-axis is not available")}isVisible(){var t,e;return(e=(t=this.config.components)==null?void 0:t.xAxis.visible)!=null?e:!1}}var ff=Object.defineProperty,ya=Object.getOwnPropertySymbols,gf=Object.prototype.hasOwnProperty,vf=Object.prototype.propertyIsEnumerable,wa=(n,t,e)=>t in n?ff(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Sn=(n,t)=>{for(var e in t||(t={}))gf.call(t,e)&&wa(n,e,t[e]);if(ya)for(var e of ya(t))vf.call(t,e)&&wa(n,e,t[e]);return n};class mf{constructor(t,e,s,r){this.chartModel=t,this.config=e,this.lastCandleLabelsByChartType=s,this.resolveLabelColorFn=r}getUnorderedLabels(){const t=[];if(this.config.components.yAxis.labels.settings.lastPrice.mode!=="none"){const s=this.getYAxisVisualLabel(this.chartModel.mainCandleSeries),r=s&&Sn(Sn({},s),this.getLabelDrawConfig(this.chartModel.mainCandleSeries,!0));if(r){const i={labels:[r]},a=this.lastCandleLabelsByChartType[this.config.components.chart.type];a==null||a(i,this.chartModel.mainCandleSeries),t.push(i)}this.chartModel.candleSeries.forEach((i,a)=>{if(a===0)return;const o=this.getYAxisVisualLabel(i),l=o&&Sn(Sn({},o),this.getLabelDrawConfig(i,!1));if(l){const c={labels:[l]},h=this.lastCandleLabelsByChartType[i.config.type];h==null||h(c,this.chartModel.mainCandleSeries),t.push(c)}})}return t}getYAxisVisualLabel(t){const e=Ft(t.dataPoints);if(e){const s=t.view.toY(e.close);if(isFinite(s)){const r=this.config.components.yAxis.labels.settings.lastPrice.mode,i=this.config.components.yAxis.labels.settings.lastPrice.type;return{y:s,labelWeight:0,labelText:this.chartModel.pane.valueFormatter(e.close,t),mode:r,labelType:i,description:t.instrument.symbol}}}return null}getLabelDrawConfig(t,e){const s=t.colors.labels,r=this.resolveLabelColorFn(t.config.type),{rectLabelTextColor:i,rectLabelInvertedTextColor:a}=this.chartModel.config.colors.yAxis;let o="#FFFFFF",l="#FFFFFF";return s&&(o=r(t.lastPriceMovement,t.colors),l=e?Rd(t.lastPriceMovement,s):i),{bgColor:o,textColor:Ye(o,l,a),rounded:!0}}}class pf{constructor(t,e,s,r,i){this.yAxisLabelsCanvasModel=t,this.backgroundCanvasModel=e,this.canvasBoundsContainer=s,this.yAxisColors=r,this.paneManager=i}draw(){const t=this.yAxisLabelsCanvasModel.ctx,e=this.backgroundCanvasModel.ctx;this.paneManager.yExtents.forEach(s=>{const r=s.getYAxisBounds(),i=this.canvasBoundsContainer.getBounds(H.ALL_PANES),a=s.yAxis.model.fancyLabelsModel.orderedLabels;this.drawHighlightedBackgroundBetweenLabels(a),a.forEach(o=>{var l;const c=(l=o.bounds)!=null?l:r;o.labels.forEach(h=>Di(t,e,c,i,h,this.canvasBoundsContainer,s.yAxis.state,this.yAxisColors))}),Object.values(s.yAxis.model.fancyLabelsModel.customLabels).forEach(o=>Di(t,e,r,i,o,this.canvasBoundsContainer,s.yAxis.state,this.yAxisColors))})}drawHighlightedBackgroundBetweenLabels(t){const e=this.yAxisLabelsCanvasModel.ctx,s={};t.forEach(r=>{r.labels.forEach(i=>{var a,o,l;if(i.subGroupId){const c=(a=s[i.subGroupId])!=null?a:[];if(s[i.subGroupId]=c,c.push(i),c.length===2){const h=(o=r.bounds)!=null?o:this.canvasBoundsContainer.getBounds(H.PANE_UUID_Y_AXIS(ht));e.save(),e.fillStyle=(l=c[0].highlightColor)!=null?l:c[0].bgColor;const[v,p]=c[0].y>c[1].y?[c[1].y,c[0].y]:[c[0].y,c[1].y];ri(e,{x:h.x,y:pr(v,h)},{x:h.x+h.width-6,y:pr(p,h)}),e.restore()}}})})}getCanvasIds(){return[this.yAxisLabelsCanvasModel.canvasId]}}class bf{constructor(t,e,s){this.fullConfig=t,this.canvasModel=e,this.paneManager=s}draw(){this.paneManager.yExtents.forEach(t=>{const e=t.yAxis;if(e.state.visible){const s=e.model.baseLabelsModel.labels,r=e.getBounds(),i=this.canvasModel.ctx;i.fillStyle=this.getBackgroundColor(),i.fillRect(r.x,r.y,r.width,r.height);const a=be(e.state),o=ne(a,i),l=this.getLabelTextColor();i.save(),we(i,r),this.drawLabels(i,s,r,o,a,l,e),i.restore()}})}drawLabels(t,e,s,r,i,a,o){t.fillStyle=a,t.font=i;const l=t.measureText("00.0"),c=l.actualBoundingBoxAscent+l.actualBoundingBoxDescent,h=s.y+c,v=s.y+s.height-c;e.forEach(p=>{const C=o.scale.toY(p.value);C>h&&C<v&&Cf(t,s,p.text,C,r,i,o.state.labelBoxMargin.end,o.state.align)})}getCanvasIds(){return[this.canvasModel.canvasId]}getBackgroundColor(){return this.fullConfig.colors.yAxis.backgroundColor}getLabelTextColor(){return this.fullConfig.colors.yAxis.labelTextColor}}const Cf=(n,t,e,s,r,i,a,o)=>{const l=o==="right"?t.x+t.width-Ht(e,n,i)-a:t.x+a;n.fillText(e,l,s+r/2-1)};class yf{constructor(){this.UNKNOWN_ARR=[],this.handlers={},this.muted=!1,this.unsub=(t,e)=>{const s=this.handlers[t];s!==void 0&&Mo.call(s,e)},this.add=(t,e,s)=>(e in this.handlers?t.call(this.handlers[e],s):this.handlers[e]=[s],this.unsub.bind(this,e,s)),this.on=(t,e)=>this.add(this.UNKNOWN_ARR.push,t,e),this.observe=t=>{const e=new V,s=e.next.bind(e),r=e.unsubscribe.bind(e);return this.on(t,s),e.unsubscribe=()=>{this.unsub(t,s),r()},e.asObservable()},this.onPrior=(t,e)=>this.add(this.UNKNOWN_ARR.unshift,t,e),this.off=this.unsub,this.fire=(t,...e)=>{var s;if(!this.muted){const r=(s=this.handlers[t])!=null?s:[];let i;for(i=0,r.length;i<r.length;i++)r[i].apply(null,e)}},this.fireAsync=(t,e)=>{if(!this.muted)return window.setTimeout(this.fire.bind(this,t,e),0)},this.setMuted=t=>{this.muted=t},this.clear=()=>{this.handlers={}}}fireDraw(t){this.fire(cn,t)}}class wf extends tt{constructor(t,e,s,r){super(),s.observeTouchStart().pipe(yt(i=>r.components.chart.highlightActiveCandle?i:void 0),Gt()).subscribe(i=>{i&&this.setCandleAsActive(i,t,e)})}setCandleAsActive(t,e,s){if(t.touches.length===1){const r=t.touches.item(0);if(r!==null){const i=this.getTouchXPosition(r,e),a=s.candleFromX(i);a&&s.mainCandleSeries.setActiveCandle(a)}}}getTouchXPosition(t,e){const s=e.getBoundingClientRect(),r=document.body.scrollLeft||document.documentElement.scrollLeft;return t.pageX-s.left-r}}class Sf{constructor(t,e,s,r,i){this.frameElement=t,this.resizerElement=e,this.bus=s,this.canvasModels=r,this.config=i,this.previousBCR=void 0,this.animFrameId=`resize_${te()}`,this.canvasResized=new V,this.elementResizeDetector=new ResizeObserver(()=>this.handleResize())}subscribeResize(){this.elementResizeDetector.observe(this.resizerElement)}handleResize(){ss(this.animFrameId,()=>this.fireUpdates())}fireUpdates(){const t=this.resizerElement.getBoundingClientRect(),e={x:t.x,y:t.y,width:t.width,height:t.height};this.config||(this.frameElement.style.height=this.resizerElement.clientHeight+"px"),(this.previousBCR===void 0||this.isBCRDimensionsDiffer(this.previousBCR,e))&&(this.previousBCR=e,this.canvasModels.forEach(s=>this.previousBCR&&s.updateDPR(this.previousBCR)),this.canvasResized.next(e),this.bus.fire(Qn,e),this.bus.fire(cn))}isBCRDimensionsDiffer(t,e){return t.height!==e.height||t.width!==e.width}unsubscribeAnimationUpdate(){if(this.resizerElement)try{this.elementResizeDetector.unobserve(this.resizerElement)}catch(t){console.warn("ChartResizeHandler.ts, unsubscribeAnimationUpdate failed")}}wasResized(){return this.previousBCR!==void 0}}var xf=Array.isArray,Pf=Object.getPrototypeOf,Tf=Object.prototype,Mf=Object.keys;function _f(n){if(n.length===1){var t=n[0];if(xf(t))return{args:t,keys:null};if(Af(t)){var e=Mf(t);return{args:e.map(function(s){return t[s]}),keys:e}}}return{args:n,keys:null}}function Af(n){return n&&typeof n=="object"&&Pf(n)===Tf}var Df=Array.isArray;function Ef(n,t){return Df(t)?n.apply(void 0,x([],b(t))):n(t)}function Of(n){return yt(function(t){return Ef(n,t)})}function Lf(n,t){return n.reduce(function(e,s,r){return e[s]=t[r],e},{})}function If(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=Ze(n),s=Va(n),r=_f(n),i=r.args,a=r.keys;if(i.length===0)return Ke([],e);var o=new Pt(Bf(i,e,a?function(l){return Lf(a,l)}:Te));return s?o.pipe(Of(s)):o}function Bf(n,t,e){return e===void 0&&(e=Te),function(s){Sa(t,function(){for(var r=n.length,i=new Array(r),a=r,o=r,l=function(h){Sa(t,function(){var v=Ke(n[h],t),p=!1;v.subscribe(Wt(s,function(C){i[h]=C,p||(p=!0,o--),o||s.next(e(i.slice()))},function(){--a||s.complete()}))},s)},c=0;c<r;c++)l(c)},s)}}function Sa(n,t,e){n?qt(e,n,t):t()}class Rf extends tt{constructor(t,e){super(),this.canvasInputListener=t,this.canvasBoundsContainer=e,this.panesSubscriptions={},this.crossSubject=new ee(null)}doActivate(){super.doActivate()}fireCrossClose(){this.crossSubject.next(null)}unsubscribeMouseOver(t){var e;(e=this.panesSubscriptions[t])==null||e.unsubscribe()}subscribeMouseOver(t,e,s){const r=e.map(a=>this.canvasBoundsContainer.getBoundsHitTest(a,s)),i=(a,o)=>r.some(l=>l(a,o));return this.subscribeMouseOverHT(t,i)}subscribeMouseOverHT(t,e){const s=this.canvasInputListener.observeMouseMoveDocument(),r=this.canvasInputListener.observeMouseEnter(e);let i=!1;const a=If([s,r]).pipe(lt(([,o])=>!i||i&&o)).subscribe(([o,l])=>{if(l){const c=[o.x,o.y,t];this.crossSubject.next(c),i=!1}else this.crossSubject.next(null),i=!0});return this.panesSubscriptions[t]=a,()=>a.unsubscribe()}}class Ff{constructor(t,e,s,r){this.visualCandle=t,this.price=e,this.priceFormatter=s,this.toY=r}get high(){return this.visualCandle.high}get low(){return this.visualCandle.low}get open(){return this.visualCandle.open}get close(){return this.visualCandle.close}get volume(){return this.visualCandle.candle.volume}get openY(){return this.toY(this.open)}get closeY(){return this.toY(this.close)}get highY(){return this.toY(this.high)}get lowY(){return this.toY(this.low)}get openFormatted(){return this.priceFormatter(this.open)}get closeFormatted(){return this.priceFormatter(this.close)}get highFormatted(){return this.priceFormatter(this.high)}get lowFormatted(){return this.priceFormatter(this.low)}get closestOHLCY(){return this.toY([this.close,this.open,this.high,this.low].sort((t,e)=>Math.abs(t-this.price)-Math.abs(e-this.price))[0])}}class Hf{constructor(t){this.chartModel=t}getData(t){const{x:e,y:s}=t,i=this.chartModel.candleFromX(e).idx||0,a=this.chartModel.getVisualCandle(i),o=this.chartModel.priceFromY(s);return a&&new Ff(a,o,this.chartModel.pane.regularFormatter,this.chartModel.toY)}}class Yf{constructor(t){this.chartModel=t}getData(t){const{x:e}=t,r=this.chartModel.candleFromX(e).idx||0;return this.chartModel.candleSeries.map(a=>{const o=a.dataPoints[r],l=this.chartModel.pane.regularFormatter(o==null?void 0:o.close);return{instrument:a.instrument.symbol,price:l,id:a.id}})}}var Nf=Object.defineProperty,kf=Object.defineProperties,jf=Object.getOwnPropertyDescriptors,xa=Object.getOwnPropertySymbols,Uf=Object.prototype.hasOwnProperty,Wf=Object.prototype.propertyIsEnumerable,Pa=(n,t,e)=>t in n?Nf(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,$e=(n,t)=>{for(var e in t||(t={}))Uf.call(t,e)&&Pa(n,e,t[e]);if(xa)for(var e of xa(t))Wf.call(t,e)&&Pa(n,e,t[e]);return n},ys=(n,t)=>kf(n,jf(t));class zf extends tt{constructor(t,e,s,r,i,a,o,l,c){super(),this.crossEventProducer=t,this.scale=e,this.config=s,this.chartModel=r,this.canvasInputListener=i,this.canvasBoundsContainer=a,this.paneManager=o,this.timeZoneModel=l,this.formatterFactory=c,this.hoverSubject=new ee(null),this.longTouchActivated=!1,this.xFormatter=()=>"";const h=new Hf(this.chartModel),v=new Yf(this.chartModel);this.hoverProducerParts={candleHover:h,compareSeriesHover:v}}get hover(){return this.hoverSubject.getValue()}doActivate(){super.doActivate(),this.addRxSubscription(this.chartModel.candlesSetSubject.subscribe(()=>{const e=this.chartModel.getLastVisualCandle();e&&this.createAndFireHoverFromCandle(e)})),this.addRxSubscription(this.chartModel.candlesUpdatedSubject.subscribe(()=>{const e=this.chartModel.getLastVisualCandle();this.hover!==null&&e!==void 0&&e.candle.timestamp===this.hover.timestamp&&this.updateHover(e)})),this.addRxSubscription(this.crossEventProducer.crossSubject.subscribe(e=>{e===null?this.hoverSubject.next(null):this.createAndFireHover(e)})),this.addRxSubscription(this.scale.xChanged.subscribe(()=>this.fireLastCross())),this.addRxSubscription(this.canvasInputListener.observeTouchStart().subscribe(e=>{const s=e.touches[0].clientX,r=e.touches[0].clientY-this.canvasBoundsContainer.canvasOnPageLocation.y;this.chartModel.candleFromX(s,!0)&&this.createAndFireHover([s,r,""])}));const t=this.canvasBoundsContainer.getBoundsHitTest(H.ALL_PANES);this.addRxSubscription(this.canvasInputListener.observeLongTouch(t).subscribe(e=>{this.paneManager.chartPanComponent.deactivatePanHandlers(),this.longTouchActivated=!0;const s=e.touches[0].clientX,r=e.touches[0].clientY-this.canvasBoundsContainer.canvasOnPageLocation.y;this.createAndFireHover([s,r,""])})),this.addRxSubscription(this.canvasInputListener.observeTouchEndDocument().subscribe(()=>{this.paneManager.chartPanComponent.activateChartPanHandlers(),this.longTouchActivated&&(this.longTouchActivated=!1,this.crossEventProducer.fireCrossClose())})),this.addRxSubscription(Lt(this.chartModel.candlesSetSubject,this.timeZoneModel.observeTimeZoneChanged()).subscribe(()=>this.recalculateCrossToolXFormatter()))}recalculateCrossToolXFormatter(){const t=this.config.components.crossTool.xAxisLabelFormat;this.xFormatter=Oi(t,this.chartModel.getPeriod(),this.formatterFactory)}createHoverFromCandle(t){const e=t.xCenter(this.scale),s=this.scale.toY(t.close);return this.createHover(e,s,ht)}createHover(t,e,s){if(this.chartModel.getCandles().length===0)return;const i=this.chartModel.candleFromX(t,!0).timestamp,a={x:t,y:e,timestamp:i,timeFormatted:this.xFormatter(i),paneId:s},o=Object.entries(this.hoverProducerParts).reduce((l,c)=>ys($e({},l),{[c[0]]:c[1].getData(a)}),{});return $e($e({},a),o)}createAndFireHoverFromCandle(t){const e=this.createHoverFromCandle(t);this.fireHover(e)}updateHover(t){const e=this.createHoverFromCandle(t);if(this.hover&&e){const s=ys($e({},e),{x:this.hover.x,y:this.hover.y});this.fireHover(s)}}createAndFireHover([t,e,s]){const r=this.createHover(t,e,s);this.fireHover(r)}fireHover(t){var e;if(t){if(Yn()&&this.config.components.crossTool.type!=="none"){const s=(e=t.candleHover)==null?void 0:e.visualCandle.candle;s&&this.chartModel.mainCandleSeries.setActiveCandle(s)}this.hoverSubject.next(t)}else this.crossEventProducer.fireCrossClose()}fireLastCross(){const t=this.crossEventProducer.crossSubject.getValue();t&&this.createAndFireHover(t)}registerHoverProducerPart(t,e){this.hoverProducerParts=ys($e({},this.hoverProducerParts),{[t]:e})}unregisterHoverProducerPart(t){delete this.hoverProducerParts[t]}}function Mt(n,t,e,s){return n.addEventListener(e,t,s),function(){n.removeEventListener(e,t,s)}}var Xf=Object.defineProperty,Ta=Object.getOwnPropertySymbols,Vf=Object.prototype.hasOwnProperty,Gf=Object.prototype.propertyIsEnumerable,Ma=(n,t,e)=>t in n?Xf(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,$f=(n,t)=>{for(var e in t||(t={}))Vf.call(t,e)&&Ma(n,e,t[e]);if(Ta)for(var e of Ta(t))Gf.call(t,e)&&Ma(n,e,t[e]);return n},Zf=(n=>(n[n.left=0]="left",n[n.middle=1]="middle",n[n.right=2]="right",n))(Zf||{});const Se=class extends tt{constructor(n,t){super(),this.eventBus=n,this.element=t,this.xDragStartSubject=new V,this.xDragSubject=new V,this.xDragTickSubject=new V,this.xDragEndSubject=new V,this.yDragStartSubject=new V,this.yDragSubject=new V,this.yDragTickSubject=new V,this.yDragEndSubject=new V,this.mouseMoveSubject=new V,this.mouseMoveDocumentSubject=new V,this.clickSubject=new V,this.clickDocumentSubject=new V,this.dbClickSubject=new V,this.mouseDownSubject=new V,this.mouseUpSubject=new V,this.mouseUpDocumentSubject=new V,this.wheelSubject=new V,this.touchStartSubject=new V,this.touchMoveSubject=new V,this.touchEndSubject=new V,this.touchCancelSubject=new V,this.contextMenuSubject=new V,this.longTouchSubject=new V,this.pinchSubject=new V,this.scrollGestureSubject=new V,this.mouseLeavesCanvasSubject=new V,this.dragStartPoint={x:0,y:0},this.prevDragPoint={x:0,y:0},this.currentPoint={x:0,y:0},this.currentPointDocument={x:0,y:0},this.dragging=!1,this.canvasBounds={x:0,y:0,pageX:0,pageY:0,width:0,height:0},this.documentDragListeners=[],this.dragProcessListener=()=>{this.xDragSubject.next(this.currentPoint.x-this.dragStartPoint.x),this.yDragSubject.next(this.currentPoint.y-this.dragStartPoint.y),this.xDragTickSubject.next(this.currentPoint.x-this.prevDragPoint.x),this.yDragTickSubject.next(this.currentPoint.y-this.prevDragPoint.y),this.prevDragPoint.x=this.currentPoint.x,this.prevDragPoint.y=this.currentPoint.y},this.dragStartListener=e=>{this.isDraggable(e)&&(this.updateCurrentPoints(e),this.dragging=!0,this.dragStartEvent=e,this.documentDragListeners.forEach(s=>s()),this.dragStartPoint=Se.copyPoint(this.currentPoint),this.xDragStartSubject.next(this.dragStartPoint),this.yDragStartSubject.next(this.dragStartPoint),this.prevDragPoint=$f({},this.dragStartPoint),Se.DRAG_EVENTS.forEach(s=>{document.addEventListener(s,this.dragProcessListener,!0);const r=document.removeEventListener.bind(document,s,this.dragProcessListener,!0);this.documentDragListeners.push(r),this.addSubscription(r)}),this.dragProcessListener())},this.dragListener=()=>this.mouseMoveDocumentSubject.next(this.currentPoint),this.updateElementOffsetListener=()=>this.mouseMoveSubject.next(this.currentPoint),this.dragEndListener=()=>{this.dragging=!1,this.documentDragListeners.forEach(e=>e()),this.xDragEndSubject.next(),this.yDragEndSubject.next()},this.clickHandler=()=>this.clickSubject.next(this.currentPoint),this.updateCurrentPoints=e=>{this.updateCurrentDocumentPoint(e),this.updateCurrentMousePoint(e)}}isDraggable(n){return n instanceof MouseEvent?n.button===0:n instanceof TouchEvent}startDragging(n){this.updateCurrentPoints(n),this.dragStartListener(n)}movePointer(n){this.updateCurrentPoints(n),this.dragListener(),this.updateElementOffsetListener(),this.dragging&&this.dragProcessListener()}stopDragging(){this.dragEndListener()}fixTextSelection(){const n=t=>(t.preventDefault(),!1);this.element.addEventListener("selectstart",n,!1),this.addSubscription(this.element.removeEventListener.bind(this.element,"selectstart",n,!1))}doActivate(){this.fixTextSelection(),this.documentDragListeners=[],Se.DRAG_START_EVENTS.forEach(r=>{this.element.addEventListener(r,this.dragStartListener),this.addSubscription(()=>this.element.removeEventListener(r,this.dragStartListener))}),this.trackMousePosition(),Se.DRAG_EVENTS.forEach(r=>{document.addEventListener(r,this.dragListener),this.addSubscription(document.removeEventListener.bind(document,r,this.dragListener)),this.element.addEventListener(r,this.updateElementOffsetListener),this.addSubscription(this.element.removeEventListener.bind(this.element,r,this.updateElementOffsetListener))}),Se.DRAG_END_EVENTS.forEach(r=>{document.addEventListener(r,this.dragEndListener),this.addSubscription(document.removeEventListener.bind(document,r,this.dragEndListener))}),this.addSubscription(Mt(this.element,this.clickHandler,"click"));const n=r=>{this.clickDocumentSubject.next(r)};this.addSubscription(Mt(document,n,"click"));const t=Wi();if(t==="apple"||t==="mobile"){const i=(()=>{let a=null;return()=>{a?(this.dbClickSubject.next(this.currentPoint),clearTimeout(a),a=null):a=window.setTimeout(()=>{a=null},250)}})();this.addSubscription(Mt(this.element,i,"touchend"))}const e=(r,i=500,a=2)=>{r.preventDefault();let o=null;const l={x:r.touches[0].clientX,y:r.touches[0].clientY};let c={x:0,y:0};const h=p=>{c={x:p.touches[0].clientX,y:p.touches[0].clientY},(Math.sqrt(Math.pow(c.x-l.x,2)+Math.pow(c.y-l.y,2))>a||p.touches.length>1)&&v()},v=()=>{o&&(clearTimeout(o),o=null),this.element.removeEventListener("touchend",v),this.element.removeEventListener("touchmove",h)};o=setTimeout(()=>this.longTouchSubject.next(r),i),this.element.addEventListener("touchmove",h,{passive:!0}),this.element.addEventListener("touchend",v)};this.addSubscription(Mt(this.element,r=>e(r),"touchstart")),this.addSubscription(Mt(this.element,()=>this.dbClickSubject.next(this.currentPoint),"dblclick")),this.addSubscription(Mt(this.element,r=>this.touchStartSubject.next(r),"touchstart")),this.addSubscription(Mt(this.element,r=>this.touchMoveSubject.next(r),"touchmove",!0)),this.addSubscription(Mt(this.element,r=>this.touchEndSubject.next(r),"touchend")),this.addSubscription(Mt(this.element,r=>this.touchCancelSubject.next(r),"touchcancel")),this.addSubscription(Mt(this.element,r=>{r.ctrlKey?this.pinchSubject.next(r):Xi(r)?this.scrollGestureSubject.next(r):this.wheelSubject.next(r),r.preventDefault()},"wheel")),this.addSubscription(Mt(this.element,r=>this.contextMenuSubject.next(r),"contextmenu")),this.addSubscription(Mt(this.element,()=>this.mouseDownSubject.next(this.currentPoint),"mousedown")),this.addSubscription(Mt(this.element,()=>this.mouseUpSubject.next(this.currentPoint),"mouseup")),this.addSubscription(Mt(document,()=>this.mouseUpDocumentSubject.next(this.currentPoint),"mouseup")),this.addRxSubscription(this.eventBus.observe(Qn).subscribe(()=>{const r=this.element.getBoundingClientRect();this.canvasBounds.x=r.left,this.canvasBounds.y=r.top,this.canvasBounds.width=r.width,this.canvasBounds.height=r.height}));const s=()=>{this.mouseLeavesCanvasSubject.next(!0)};this.element.addEventListener("mouseleave",s,!1),this.addSubscription(this.element.removeEventListener.bind(this.element,"mouseleave",s,!1))}getCurrentMousePoint(){return this.currentPoint}trackMousePosition(){Se.DRAG_EVENTS.forEach(n=>{document.addEventListener(n,this.updateCurrentPoints,!0),this.addSubscription(()=>document.removeEventListener(n,this.updateCurrentPoints,!0))})}updateCurrentDocumentPoint(n){"pageX"in n?this.currentPointDocument.x=n.pageX:n.touches!==void 0&&(this.currentPointDocument.x=n.touches[0].pageX),"pageY"in n?this.currentPointDocument.y=n.pageY:n.touches!==void 0&&(this.currentPointDocument.y=n.touches[0].pageY)}updateCurrentMousePoint(n){const t=this.element.getBoundingClientRect();"clientX"in n?this.currentPoint.x=n.clientX-t.left:n.touches!==void 0&&(this.currentPoint.x=n.touches[0].clientX-t.left),"clientY"in n?this.currentPoint.y=n.clientY-t.top:n.touches!==void 0&&(this.currentPoint.y=n.touches[0].clientY-t.top)}static copyPoint(n){return{x:n.x,y:n.y}}observeMouseMove(n=()=>!0){return this.mouseMoveSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseMoveNoDrag(){return this.mouseMoveSubject.asObservable().pipe(lt(()=>!this.dragging))}observeMouseMoveDocument(n=()=>!0){return this.mouseMoveDocumentSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseMoveDocumentAnyElement(n=()=>!0){return this.mouseMoveDocumentSubject.asObservable().pipe(lt(()=>n(this.currentPointDocument.x,this.currentPointDocument.y)),yt(()=>this.currentPointDocument))}observeClickOnDocument(){return this.clickDocumentSubject.asObservable()}observeXDragStart(n=()=>!0){return this.xDragStartSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeXDrag(n=()=>!0){return this.xDragSubject.pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeXDragEnd(n=()=>!0){return this.xDragEndSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeXDragTick(){return this.xDragTickSubject.asObservable()}observeYDragStart(n=()=>!0){return this.yDragStartSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeYDrag(n=()=>!0){return this.yDragSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeYDragEnd(n=()=>!0){return this.yDragEndSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeYDragTick(){return this.yDragTickSubject.asObservable()}observeMouseEnter(n=()=>!0,t=!1){const e=this.mouseMoveSubject.asObservable().pipe(lt(()=>!(t&&this.dragging)),yt(()=>n(this.currentPoint.x,this.currentPoint.y))),s=this.observeMouseLeavesCanvas().pipe(yt(()=>!1));return Lt(e,s).pipe(Gt())}observeMouseLeavesCanvas(){return this.mouseLeavesCanvasSubject.asObservable()}observeClick(n=()=>!0){return this.clickSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeDbClick(n=()=>!0){return this.dbClickSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeWheel(n=()=>!0){return this.wheelSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observePinch(n=()=>!0){return this.pinchSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeScrollGesture(){return this.scrollGestureSubject.asObservable()}observeTouchStart(n=()=>!0){return this.touchStartSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeTouchMove(n=()=>!0){return this.touchMoveSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeTouchEndDocument(){return this.touchEndSubject.asObservable()}observeTouchCancelDocument(){return this.touchCancelSubject.asObservable()}observeMouseDown(n=()=>!0){return this.mouseDownSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseUp(n=()=>!0){return this.mouseUpSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeMouseUpDocument(n=()=>!0){return this.mouseUpDocumentSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)))}observeContextMenu(n=()=>!0){return this.contextMenuSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)),fs(t=>t.preventDefault()))}observeLongTouch(n=()=>!0){return this.longTouchSubject.asObservable().pipe(lt(()=>n(this.currentPoint.x,this.currentPoint.y)),fs(t=>t.preventDefault()))}getCurrentPoint(){return this.currentPoint}};let xn=Se;xn.DRAG_START_EVENTS=["mousedown","touchstart"],xn.DRAG_EVENTS=["mousemove","touchmove"],xn.DRAG_END_EVENTS=["mouseup","touchend","touchcancel"];var Kf=_t(722),Jf=function(n){L(t,n);function t(e,s,r){e===void 0&&(e=1/0),s===void 0&&(s=1/0),r===void 0&&(r=Xn);var i=n.call(this)||this;return i._bufferSize=e,i._windowTime=s,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=s===1/0,i._bufferSize=Math.max(1,e),i._windowTime=Math.max(1,s),i}return t.prototype.next=function(e){var s=this,r=s.isStopped,i=s._buffer,a=s._infiniteTimeWindow,o=s._timestampProvider,l=s._windowTime;r||(i.push(e),!a&&i.push(o.now()+l)),this._trimBuffer(),n.prototype.next.call(this,e)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var s=this._innerSubscribe(e),r=this,i=r._infiniteTimeWindow,a=r._buffer,o=a.slice(),l=0;l<o.length&&!e.closed;l+=i?1:2)e.next(o[l]);return this._checkFinalizedStatuses(e),s},t.prototype._trimBuffer=function(){var e=this,s=e._bufferSize,r=e._timestampProvider,i=e._buffer,a=e._infiniteTimeWindow,o=(a?1:2)*s;if(s<1/0&&o<i.length&&i.splice(0,i.length-o),!a){for(var l=r.now(),c=0,h=1;h<i.length&&i[h]<=l;h+=2)c=h;c&&i.splice(0,c+1)}},t}(V);const Qf=Symbol("MEMOIZE_CLEAR_FUNCTION");function qf(n){const t={},e=function(){const s=Array.prototype.slice.call(arguments),r=_a(s);return typeof t[r]=="undefined"&&(t[r]=n.apply(this,s)),t[r]}.bind(this);return e[Qf]=function(){const s=Array.prototype.slice.call(arguments),r=_a(s);delete t[r]},e}const kg=n=>t=>{let e=!1,s,r=[];const i=a=>{s=t(...a),e=!0,r=a};return(...a)=>{const o=a.length;if(e&&o===0)return s;if(!e||r.length!==o)return i(a),s;for(let l=0;l<o;l++)if(!n.equals(r[l],a[l]))return i(a),s;return s}};function _a(n){if(!n.every(e=>typeof e=="number"||typeof e=="string"||typeof e=="boolean"))throw Error("Arguments to memoized function can only be strings or numbers");return JSON.stringify(n)}const Aa=qf(Kf.getTimezoneOffset),tg=(n,t)=>new Date(t).getTimezoneOffset()*60*1e3+Aa(n,t);class eg{constructor(t){this.config=t,this.timeZoneChangedSubject=new Jf,this.currentTzOffset=e=>this.getOffset(this.config.timezone,e),this.formatterCache={},this.getOffset=(e,s)=>tg(e,s),this.dateTimeFormatterFactory=this.initFormatterFactory(this.config.dateFormatter)}setTimeZone(t){this.config.timezone=t,this.formatterCache={},this.timeZoneChangedSubject.next(t)}observeTimeZoneChanged(){return this.timeZoneChangedSubject.asObservable()}initFormatterFactory(t){let e;if(t&&typeof t=="function")e=t;else if(t&&t.createFormatterFunction&&typeof t.createFormatterFunction=="function"){const s=t.createFormatterFunction;e=r=>s(r).bind(t)}else e=Lh(this.config,this.tzOffset);return e}getFormatterFactory(){return this.dateTimeFormatterFactory}getDateTimeFormatter(t){return this.formatterCache[t]===void 0&&(this.formatterCache[t]=this.dateTimeFormatterFactory(t)),this.formatterCache[t]}tzOffset(t){const e=r=>-new Date(r).getTimezoneOffset()*ng;let s;return t?s=r=>Aa(t,r):s=e,r=>new Date(+r+s(r)-e(r))}}const ng=60*1e3;class ws{constructor(t,e={}){this.components=[],this.chartComponents=[],this.userInputListenerComponents=[],this.canvasModels=[];var s,r;this.parentElement=t;const i=e;ko(i),this.config=i;const a=cl(i);t.innerHTML="",t.appendChild(a.content),this.id=(s=t.getAttribute("data-id"))!=null?s:"",i.fixedSize&&(t.style.width=i.fixedSize.width+"px",t.style.height=i.fixedSize.height+"px");const o=new eg(i);this.timeZoneModel=o;const l=this.timeZoneModel.getFormatterFactory(),c=hl(t);this.elements=c;const h=new yf;this.bus=h;const v=new Sf(t,(r=c.chartResizer)!=null?r:t,h,this.canvasModels,i);this.chartResizeHandler=v,v.subscribeResize(),this.components.push(v.unsubscribeAnimationUpdate.bind(v));const p=new Vc(h,v);this.drawingManager=p;const C=zc(h,c.mainCanvas,c.chartResizer,this.config.components.chart.type,this.config,p,this.canvasModels);this.mainCanvasModel=C,this.dynamicObjectsCanvasModel=Ee(h,c.dynamicObjectsCanvas,i,p,this.canvasModels,c.chartResizer);const O=new Xe(this.dynamicObjectsCanvasModel);p.addDrawer(O,"SERIES_CLEAR");const B=Ee(h,c.yAxisLabelsCanvas,i,p,this.canvasModels,c.chartResizer),Y=new zn(i,h,C,l,v);this.canvasBoundsContainer=Y;const k=c.mainCanvas.parentElement;if(k===null)throw new Error("Couldn't get main canvas parent");const z=new xn(h,k);this.canvasInputListener=z,this.chartComponents.push(this.canvasInputListener);const Z=new Uh(h,c.hitTestCanvas,z,Y,p,i,this.canvasModels,c.chartResizer);this.hitTestCanvasModel=Z;const J=new Xe(Z);p.addDrawer(J,"HIT_TEST_CLEAR");const K=new po(h);this.canvasAnimation=K;const U=new ni(i,()=>Y.getBounds(H.PANE_UUID(ht)),K);this.scaleModel=U;const Q=Ee(h,c.backgroundCanvas,i,p,this.canvasModels,c.chartResizer,{willReadFrequently:!0});this.backgroundCanvasModel=Q,this.cursorHandler=new al(c.canvasArea,z,Y,Z),this.chartComponents.push(this.cursorHandler),this.crossEventProducer=new Rf(z,Y),this.chartComponents.push(this.crossEventProducer);const it=new Rl("candle");this.chartBaseModel=it;const at=new Pd(h,U,Y,i,K,z,k,it);this.chartPanComponent=at,this.chartComponents.push(at),this.userInputListenerComponents.push(at.chartAreaPanHandler);const nt=new lu(it,this.dynamicObjectsCanvasModel,this.userInputListenerComponents,h,U,Y,i,K,z,p,this.cursorHandler,this.crossEventProducer,at,C,B);this.paneManager=nt;const ot=this.paneManager.panes[ht];this.mainPane=ot,this.chartComponents.push(nt),this.dynamicObjects=new Eh(this.dynamicObjectsCanvasModel,p),this.chartComponents.push(this.dynamicObjects),this.chartModel=new vh(it,nt,h,this.dynamicObjectsCanvasModel,i,U,l,k,Y,v);const dt=new nh(this.chartModel,this.dynamicObjectsCanvasModel,i,U,Y,p,Z,z,Q,at,nt,this.cursorHandler,this.dynamicObjects);this.chartComponents.push(dt),this.chartComponent=dt;const ct=this.chartComponent.chartModel;this.chartModel=ct,this.canvasBoundsContainer.setMainCandleSeries(this.chartModel.mainCandleSeries),Z.addSubscriber(nt.hitTestController),this.xAxisComponent=new uf(h,i,C,dt,U,Y,z,v,this.drawingManager,o,at,this.cursorHandler,Q),this.chartComponents.push(this.xAxisComponent),this.userInputListenerComponents.push(this.xAxisComponent.xAxisScaleHandler);const St=new Xe(C);p.addDrawer(St,"MAIN_CLEAR");const ut=new wf(k,ct,z,i);this.chartComponents.push(ut),this.watermarkComponent=new Mu(nt,ct,h,i,Y,this.dynamicObjectsCanvasModel,p),this.chartComponents.push(this.watermarkComponent);const vt=Ee(h,c.crossToolCanvas,i,p,this.canvasModels,c.chartResizer);this.highlightsComponent=new od(h,i,ct,C,Y,p),this.chartComponents.push(this.highlightsComponent),i.useUTCTimeOverride&&i.dateFormatter&&!i.dateFormatter.utcTimeOverride&&(i.dateFormatter.utcTimeOverride=this.createUTCTimeOverrideConfig(ct)),this.navigationMapComponent=new md(h,ct,C,i,z,Y,p,l,at,this.cursorHandler),this.chartComponents.push(this.navigationMapComponent),this.userInputListenerComponents.push(this.navigationMapComponent.navigationMapMoveHandler);const pt=new td(i,this.dynamicObjectsCanvasModel,ct,Y,p);this.chartComponents.push(pt),this.initYAxisDrawer(B),this.yAxisComponent=ot.mainExtent.yAxis;const Yt=new mf(this.chartModel,this.config,this.chartModel.lastCandleLabelsByChartType,this.yAxisComponent.getLabelsColorResolver.bind(this.yAxisComponent));this.yAxisComponent.registerYAxisLabelsProvider(Yt,hs.MAIN),this.volumesComponent=new yu(this.dynamicObjectsCanvasModel,dt,U,Y,p,i,nt,this.dynamicObjects),this.chartComponents.push(this.volumesComponent);const Nt=new Hi(C,U,i,this.yAxisComponent.state,"GRID",p,()=>this.canvasBoundsContainer.getBounds(H.ALL_PANES),()=>this.canvasBoundsContainer.getBounds(H.PANE_UUID(ht)),()=>this.xAxisComponent.xAxisLabelsGenerator.labels,()=>this.yAxisComponent.model.baseLabelsModel.labels,()=>ot.mainExtent.toY(ot.mainExtent.getBaseline()),()=>i.components.grid.visible);this.chartComponents.push(Nt),this.hoverProducer=new zf(this.crossEventProducer,U,i,ct,z,this.canvasBoundsContainer,this.paneManager,o,l),this.chartComponents.push(this.hoverProducer),this.crossToolComponent=new Mh(i,vt,Y,p,nt,this.crossEventProducer,this.hoverProducer),this.chartComponents.push(this.crossToolComponent);const kt=Ee(h,c.snapshotCanvas,i,p,this.canvasModels,c.chartResizer),ve=new cu(this.elements,kt);this.snapshotComponent=ve,this.chartComponents.push(ve);const Pn=new Jh(i,this.dynamicObjectsCanvasModel,Z,ct,Y,p,l,this.cursorHandler,Q);this.eventsComponent=Pn,this.chartComponents.push(Pn),this.chartComponents.forEach(hg=>hg.activate()),this.enableUserControls(),p.reorderDrawers(i.drawingOrder),this.clearer=yo(this.components)}initYAxisDrawer(t){const e=new is,s=new Xe(t);e.addDrawer(s,"YAXIS_CLEAR"),this.drawingManager.addDrawer(e,"Y_AXIS");const r=new bf(this.config,t,this.paneManager);e.addDrawer(r);const i=new pf(t,this.backgroundCanvasModel,this.canvasBoundsContainer,this.config.colors.yAxis,this.paneManager);e.addDrawer(i)}createUTCTimeOverrideConfig(t){const e=new RegExp("HH|H|mm|m|s|ss|sss|SSS");return{pattern:"MM/dd/YY",test:s=>e.test(s)&&(t.getPeriod()||0)>=86400}}static mergeConfig(t,e){for(const s in e)s in t?typeof t[s]=="object"&&ws.mergeConfig(t[s],e[s]):t[s]=e[s];return t}getConfig(){return this.config}disableUserControls(){this.userInputListenerComponents.forEach(t=>t.deactivate()),this.hitTestCanvasModel.disableUserControls()}enableUserControls(){this.userInputListenerComponents.forEach(t=>t.activate()),this.hitTestCanvasModel.enableUserControls()}setGridConfig(t){var e,s,r,i,a;const o=this.config.components.grid;o.visible=(e=t.visible)!=null?e:!1,o.dash=(s=t.dash)!=null?s:[0,0],o.width=(r=t.width)!=null?r:1,o.color=(i=t.color)!=null?i:"#FFFFFF",this.config.colors.chartAreaTheme.gridColor=(a=t.color)!=null?a:"#FFFFFF",this.redraw()}setGridVisible(t){this.config.components&&this.config.components.grid&&(this.config.components.grid.visible=t,this.redraw())}setGridVertical(t){this.config.components.grid.vertical=t,this.redraw()}setGridHorizontal(t){this.config.components.grid.horizontal=t,this.redraw()}redraw(){this.bus.fireDraw()}getOffsets(){return this.config.components&&this.config.components.offsets}setShowCandleBorders(t=!0){this.config.components&&this.config.components.chart&&(this.config.components.chart.showCandlesBorder=t,this.redraw())}setHighLowVisible(t=!0){this.config.components&&this.config.components.highLow&&(this.config.components.highLow.visible=t,this.redraw())}setCrossToolVisible(t="cross-and-labels"){this.config.components&&this.config.components.crossTool&&(this.config.components.crossTool.type=t,this.redraw())}setHighlightsVisible(t=!0){var e;(e=this.config.components)!=null&&e.highlights&&(this.config.components.highlights.visible=t,this.redraw())}setHighlightsData(t){this.highlightsComponent.setHighlights(t)}setColors(t){$t(this.config.colors,t,{addIfMissing:!0,overrideExisting:!0}),this.redraw()}addMouseMoveOnChartElementHandler(t,e){const s=this.canvasBoundsContainer.getBoundsHitTest(t),r=this.canvasInputListener.observeMouseMove(s).subscribe(e);return()=>r.unsubscribe()}addMouseEnterOnChartElementHandler(t,e,s=!1){const r=this.canvasBoundsContainer.getBoundsHitTest(t),i=this.canvasInputListener.observeMouseEnter(r,s).subscribe(e);return()=>i.unsubscribe()}addClickOnChartElementHandler(t,e){const s=this.canvasBoundsContainer.getBoundsHitTest(t),r=this.canvasInputListener.observeClick(s).subscribe(e);return()=>r.unsubscribe()}addDragEventsListener(t,e){const s=this.canvasBoundsContainer.getBoundsHitTest(t),r=Lt(this.canvasInputListener.observeYDrag(s),this.canvasInputListener.observeXDrag(s)).subscribe(e);return()=>r.unsubscribe()}registerComponent(t,e){const s=t(this);this.components.push(s),e&&e(s),s.activate()}}class Ss extends ws{constructor(t,e={}){super(t,e),this.yAxis=this.yAxisComponent,this.xAxis=this.xAxisComponent,this.watermark=this.watermarkComponent,this.highlights=this.highlightsComponent,this.events=this.eventsComponent,this.snapshot=this.snapshotComponent,this.crosshair=this.crossToolComponent,this.navigationMap=this.navigationMapComponent,this.volumes=this.volumesComponent,this.cursors=this.cursorHandler,this.data=this.chartComponent,this.scale=this.scaleModel,this.panning=this.chartPanComponent}registerPaneFormatters(t,e){var s;(s=this.paneManager.panes[t])==null||s.setPaneValueFormatters(e)}destroy(){this.bus.setMuted(!0),this.chartComponents.forEach(t=>t.disable()),this.parentElement.childNodes.forEach(t=>t.remove()),this.parentElement.style.width="",this.parentElement.style.height=""}showSeparateVolumes(t=!1){this.volumes&&(this.volumes.setShowVolumesSeparatly(t),this.canvasBoundsContainer.updateYAxisWidths())}setData(t){if(Array.isArray(t)){if(t.length===0)return;const[e,...s]=t;this.chartComponent.setAllSeries(e,s)}else this.chartComponent.setMainSeries(t)}updateData(t){if(Array.isArray(t)){if(t.length===0)return;const[e,...s]=t;this.chartComponent.updateAllSeries(e,s)}else this.chartComponent.updateAllSeries(t)}setAutoScale(t=!0){this.scale.autoScale(t)}setRtl(t){this.config.rtl=t,this.bus.fireDraw()}setChartType(t){this.chartComponent.setChartType(t)}createPane(){return this.paneManager.createPane()}}var sg=Object.defineProperty,rg=Object.defineProperties,ig=Object.getOwnPropertyDescriptors,Da=Object.getOwnPropertySymbols,ag=Object.prototype.hasOwnProperty,og=Object.prototype.propertyIsEnumerable,Ea=(n,t,e)=>t in n?sg(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,lg=(n,t)=>{for(var e in t||(t={}))ag.call(t,e)&&Ea(n,e,t[e]);if(Da)for(var e of Da(t))og.call(t,e)&&Ea(n,e,t[e]);return n},cg=(n,t)=>rg(n,ig(t));const Oa=(n,t={})=>new Ss(n,t);window.DXChart=cg(lg({},window.DXChart),{Chart:Ss,createChart:Oa})})(),dg=Tn})();})();