@363045841yyt/klinechart-core 0.7.3 → 0.7.5

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 (247) hide show
  1. package/README.md +201 -201
  2. package/README.zh-CN.md +201 -201
  3. package/dist/controllers/index.d.ts +1 -0
  4. package/dist/controllers/index.d.ts.map +1 -1
  5. package/dist/controllers/index.js +1 -0
  6. package/dist/controllers/index.js.map +1 -1
  7. package/dist/engine/chart.d.ts +11 -19
  8. package/dist/engine/chart.d.ts.map +1 -1
  9. package/dist/engine/chart.js +92 -109
  10. package/dist/engine/chart.js.map +1 -1
  11. package/dist/engine/renderers/Indicator/indicatorData.d.ts +1 -0
  12. package/dist/engine/renderers/Indicator/indicatorData.d.ts.map +1 -1
  13. package/dist/engine/renderers/Indicator/indicatorData.js +1 -1
  14. package/dist/engine/renderers/Indicator/indicatorData.js.map +1 -1
  15. package/dist/engine/renderers/webgl/candleSurface.js +47 -47
  16. package/dist/engine/subPaneManager.d.ts +4 -0
  17. package/dist/engine/subPaneManager.d.ts.map +1 -1
  18. package/dist/engine/subPaneManager.js +13 -0
  19. package/dist/engine/subPaneManager.js.map +1 -1
  20. package/dist/version.d.ts +1 -1
  21. package/dist/version.d.ts.map +1 -1
  22. package/dist/version.js +1 -2
  23. package/dist/version.js.map +1 -1
  24. package/package.json +129 -122
  25. package/src/__tests__/signal.test.ts +124 -124
  26. package/src/config/chartSettings.ts +66 -66
  27. package/src/controllers/__tests__/drawing.test.ts +214 -214
  28. package/src/controllers/__tests__/indicatorSelector.test.ts +481 -481
  29. package/src/controllers/__tests__/toolbar.test.ts +225 -225
  30. package/src/controllers/createChartController.ts +665 -665
  31. package/src/controllers/createDrawingController.ts +96 -96
  32. package/src/controllers/createIndicatorSelectorController.ts +307 -307
  33. package/src/controllers/createToolbarController.ts +146 -146
  34. package/src/controllers/index.ts +20 -19
  35. package/src/controllers/types.ts +284 -284
  36. package/src/engine/__tests__/chart.dpr.test.ts +401 -401
  37. package/src/engine/__tests__/paneRenderer.resize.test.ts +92 -92
  38. package/src/engine/chart-store.ts +121 -121
  39. package/src/engine/chart.d.ts +617 -617
  40. package/src/engine/chart.ts +2803 -2815
  41. package/src/engine/controller/__tests__/interaction.dpr.test.ts +259 -259
  42. package/src/engine/controller/interaction.ts +722 -722
  43. package/src/engine/controller/markerInteraction.ts +130 -130
  44. package/src/engine/controller/pinchTracker.ts +82 -82
  45. package/src/engine/controller/tooltipPosition.ts +48 -48
  46. package/src/engine/draw/__tests__/pixelAlign.spec.ts +176 -176
  47. package/src/engine/draw/pixelAlign.ts +259 -259
  48. package/src/engine/drawing/index.ts +655 -655
  49. package/src/engine/drawing/interaction.ts +842 -842
  50. package/src/engine/drawing/plugin.ts +343 -343
  51. package/src/engine/indicators/__tests__/__fixtures__/golden/atr.json +38 -38
  52. package/src/engine/indicators/__tests__/__fixtures__/golden/dema.json +14 -14
  53. package/src/engine/indicators/__tests__/__fixtures__/golden/hma.json +14 -14
  54. package/src/engine/indicators/__tests__/__fixtures__/golden/index.ts +55 -55
  55. package/src/engine/indicators/__tests__/__fixtures__/golden/kama.json +14 -14
  56. package/src/engine/indicators/__tests__/__fixtures__/golden/tema.json +14 -14
  57. package/src/engine/indicators/__tests__/__fixtures__/golden/wma.json +40 -40
  58. package/src/engine/indicators/__tests__/__fixtures__/synthetic.ts +65 -65
  59. package/src/engine/indicators/__tests__/_propertyAssertions.ts +76 -76
  60. package/src/engine/indicators/__tests__/atr.test.ts +153 -153
  61. package/src/engine/indicators/__tests__/calculators.test.ts +614 -614
  62. package/src/engine/indicators/__tests__/cmf-mfi.test.ts +100 -100
  63. package/src/engine/indicators/__tests__/dema.test.ts +73 -73
  64. package/src/engine/indicators/__tests__/donchian.test.ts +70 -70
  65. package/src/engine/indicators/__tests__/hma.test.ts +73 -73
  66. package/src/engine/indicators/__tests__/ichimoku.test.ts +105 -105
  67. package/src/engine/indicators/__tests__/kama.test.ts +80 -80
  68. package/src/engine/indicators/__tests__/keltner.test.ts +65 -65
  69. package/src/engine/indicators/__tests__/pivot-fib.test.ts +110 -110
  70. package/src/engine/indicators/__tests__/roc.test.ts +68 -68
  71. package/src/engine/indicators/__tests__/sar.test.ts +86 -86
  72. package/src/engine/indicators/__tests__/scheduler.test.ts +831 -831
  73. package/src/engine/indicators/__tests__/soa.test.ts +533 -533
  74. package/src/engine/indicators/__tests__/structure.test.ts +110 -110
  75. package/src/engine/indicators/__tests__/supertrend.test.ts +65 -65
  76. package/src/engine/indicators/__tests__/tema.test.ts +68 -68
  77. package/src/engine/indicators/__tests__/trix.test.ts +70 -70
  78. package/src/engine/indicators/__tests__/volatility.test.ts +117 -117
  79. package/src/engine/indicators/__tests__/volume.test.ts +115 -115
  80. package/src/engine/indicators/__tests__/volumeProfile.test.ts +74 -74
  81. package/src/engine/indicators/__tests__/vwap.test.ts +69 -69
  82. package/src/engine/indicators/__tests__/wma.test.ts +112 -112
  83. package/src/engine/indicators/__tests__/zones.test.ts +95 -95
  84. package/src/engine/indicators/atrState.ts +27 -27
  85. package/src/engine/indicators/bollState.ts +51 -51
  86. package/src/engine/indicators/calculators.ts +2593 -2593
  87. package/src/engine/indicators/cciState.ts +25 -25
  88. package/src/engine/indicators/chaikinVolState.ts +32 -32
  89. package/src/engine/indicators/cmfState.ts +27 -27
  90. package/src/engine/indicators/demaState.ts +27 -27
  91. package/src/engine/indicators/donchianState.ts +43 -43
  92. package/src/engine/indicators/eneState.ts +43 -43
  93. package/src/engine/indicators/expmaState.ts +43 -43
  94. package/src/engine/indicators/fastkState.ts +25 -25
  95. package/src/engine/indicators/fibState.ts +41 -41
  96. package/src/engine/indicators/hmaState.ts +27 -27
  97. package/src/engine/indicators/hvState.ts +28 -28
  98. package/src/engine/indicators/ichimokuState.ts +70 -70
  99. package/src/engine/indicators/indicator.worker.ts +169 -169
  100. package/src/engine/indicators/indicatorDefinitionRegistry.ts +62 -62
  101. package/src/engine/indicators/indicatorMetadata.ts +110 -110
  102. package/src/engine/indicators/indicatorRegistry.ts +106 -106
  103. package/src/engine/indicators/indicatorRuntime.ts +1548 -1548
  104. package/src/engine/indicators/kamaState.ts +34 -34
  105. package/src/engine/indicators/keltnerState.ts +49 -49
  106. package/src/engine/indicators/kstState.ts +42 -42
  107. package/src/engine/indicators/maState.ts +36 -36
  108. package/src/engine/indicators/macdState.ts +76 -76
  109. package/src/engine/indicators/mfiState.ts +27 -27
  110. package/src/engine/indicators/momState.ts +25 -25
  111. package/src/engine/indicators/obvState.ts +25 -25
  112. package/src/engine/indicators/parkinsonState.ts +28 -28
  113. package/src/engine/indicators/pivotState.ts +51 -51
  114. package/src/engine/indicators/pvtState.ts +25 -25
  115. package/src/engine/indicators/rocState.ts +27 -27
  116. package/src/engine/indicators/rsiState.ts +65 -65
  117. package/src/engine/indicators/sarState.ts +41 -41
  118. package/src/engine/indicators/scheduler.ts +1205 -1205
  119. package/src/engine/indicators/soa.ts +352 -352
  120. package/src/engine/indicators/stateComposer.ts +1262 -1262
  121. package/src/engine/indicators/stochState.ts +26 -26
  122. package/src/engine/indicators/structureState.ts +69 -69
  123. package/src/engine/indicators/supertrendState.ts +37 -37
  124. package/src/engine/indicators/temaState.ts +27 -27
  125. package/src/engine/indicators/trixState.ts +35 -35
  126. package/src/engine/indicators/vmaState.ts +27 -27
  127. package/src/engine/indicators/volumeProfileState.ts +63 -63
  128. package/src/engine/indicators/vwapState.ts +29 -29
  129. package/src/engine/indicators/wmaState.ts +27 -27
  130. package/src/engine/indicators/wmsrState.ts +25 -25
  131. package/src/engine/indicators/workerProtocol.ts +613 -613
  132. package/src/engine/indicators/zonesState.ts +47 -47
  133. package/src/engine/layout/pane.ts +161 -161
  134. package/src/engine/marker/registry.ts +265 -265
  135. package/src/engine/paneRenderer.ts +169 -169
  136. package/src/engine/renderers/Indicator/atr.ts +237 -237
  137. package/src/engine/renderers/Indicator/boll.ts +317 -317
  138. package/src/engine/renderers/Indicator/cci.ts +275 -275
  139. package/src/engine/renderers/Indicator/chaikinVol.ts +138 -138
  140. package/src/engine/renderers/Indicator/cmf.ts +137 -137
  141. package/src/engine/renderers/Indicator/dema.ts +136 -136
  142. package/src/engine/renderers/Indicator/donchian.ts +137 -137
  143. package/src/engine/renderers/Indicator/ene.ts +271 -271
  144. package/src/engine/renderers/Indicator/expma.ts +197 -197
  145. package/src/engine/renderers/Indicator/fastk.ts +316 -316
  146. package/src/engine/renderers/Indicator/fib.ts +141 -141
  147. package/src/engine/renderers/Indicator/hma.ts +136 -136
  148. package/src/engine/renderers/Indicator/hv.ts +124 -124
  149. package/src/engine/renderers/Indicator/ichimoku.ts +181 -181
  150. package/src/engine/renderers/Indicator/index.ts +241 -241
  151. package/src/engine/renderers/Indicator/indicatorData.ts +650 -650
  152. package/src/engine/renderers/Indicator/kama.ts +136 -136
  153. package/src/engine/renderers/Indicator/keltner.ts +137 -137
  154. package/src/engine/renderers/Indicator/kst.ts +302 -302
  155. package/src/engine/renderers/Indicator/ma.ts +200 -200
  156. package/src/engine/renderers/Indicator/macd.ts +477 -477
  157. package/src/engine/renderers/Indicator/macdLegend.ts +141 -141
  158. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +272 -272
  159. package/src/engine/renderers/Indicator/mfi.ts +142 -142
  160. package/src/engine/renderers/Indicator/mom.ts +311 -311
  161. package/src/engine/renderers/Indicator/obv.ts +123 -123
  162. package/src/engine/renderers/Indicator/parkinson.ts +124 -124
  163. package/src/engine/renderers/Indicator/pivot.ts +131 -131
  164. package/src/engine/renderers/Indicator/pvt.ts +123 -123
  165. package/src/engine/renderers/Indicator/roc.ts +143 -143
  166. package/src/engine/renderers/Indicator/rsi.ts +390 -390
  167. package/src/engine/renderers/Indicator/sar.ts +113 -113
  168. package/src/engine/renderers/Indicator/scale/atr_scale.ts +19 -19
  169. package/src/engine/renderers/Indicator/scale/cci_scale.ts +19 -19
  170. package/src/engine/renderers/Indicator/scale/fastk_scale.ts +19 -19
  171. package/src/engine/renderers/Indicator/scale/indicator_scale.ts +204 -204
  172. package/src/engine/renderers/Indicator/scale/kst_scale.ts +19 -19
  173. package/src/engine/renderers/Indicator/scale/macd_scale.ts +22 -22
  174. package/src/engine/renderers/Indicator/scale/mom_scale.ts +19 -19
  175. package/src/engine/renderers/Indicator/scale/rsi_scale.ts +19 -19
  176. package/src/engine/renderers/Indicator/scale/stoch_scale.ts +19 -19
  177. package/src/engine/renderers/Indicator/scale/volume_scale.ts +26 -26
  178. package/src/engine/renderers/Indicator/scale/wmsr_scale.ts +19 -19
  179. package/src/engine/renderers/Indicator/stoch.ts +359 -359
  180. package/src/engine/renderers/Indicator/structure.ts +126 -126
  181. package/src/engine/renderers/Indicator/subPaneConfig.ts +265 -265
  182. package/src/engine/renderers/Indicator/supertrend.ts +115 -115
  183. package/src/engine/renderers/Indicator/tema.ts +136 -136
  184. package/src/engine/renderers/Indicator/trix.ts +158 -158
  185. package/src/engine/renderers/Indicator/vma.ts +124 -124
  186. package/src/engine/renderers/Indicator/volumeProfile.ts +125 -125
  187. package/src/engine/renderers/Indicator/vwap.ts +123 -123
  188. package/src/engine/renderers/Indicator/wma.ts +136 -136
  189. package/src/engine/renderers/Indicator/wmsr.ts +328 -328
  190. package/src/engine/renderers/Indicator/zones.ts +104 -104
  191. package/src/engine/renderers/__tests__/boll.renderer.test.ts +314 -314
  192. package/src/engine/renderers/__tests__/ene.renderer.test.ts +305 -305
  193. package/src/engine/renderers/__tests__/expma.renderer.test.ts +279 -279
  194. package/src/engine/renderers/__tests__/ma.renderer.test.ts +426 -426
  195. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +502 -502
  196. package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +173 -173
  197. package/src/engine/renderers/candle.ts +459 -459
  198. package/src/engine/renderers/crosshair.ts +69 -69
  199. package/src/engine/renderers/customMarkers.ts +162 -162
  200. package/src/engine/renderers/extremaMarkers.ts +246 -246
  201. package/src/engine/renderers/gridLines.ts +90 -90
  202. package/src/engine/renderers/lastPrice.ts +97 -97
  203. package/src/engine/renderers/paneTitle.ts +136 -136
  204. package/src/engine/renderers/subVolume.ts +236 -236
  205. package/src/engine/renderers/timeAxis.ts +121 -121
  206. package/src/engine/renderers/webgl/candleSurface.ts +955 -955
  207. package/src/engine/renderers/webgl/sharedWebGLSurface.ts +146 -146
  208. package/src/engine/renderers/yAxis.ts +105 -105
  209. package/src/engine/scale/__tests__/logFormula.spec.ts +148 -148
  210. package/src/engine/scale/logFormula.ts +130 -130
  211. package/src/engine/scale/price.ts +39 -39
  212. package/src/engine/scale/priceScale.ts +264 -264
  213. package/src/engine/subPaneManager.ts +442 -427
  214. package/src/engine/theme/colors.ts +642 -642
  215. package/src/engine/theme/fonts.ts +20 -20
  216. package/src/engine/utils/klineConfig.ts +49 -49
  217. package/src/engine/utils/tickCount.ts +11 -11
  218. package/src/engine/utils/tickPosition.ts +214 -214
  219. package/src/engine/utils/zoom.ts +83 -83
  220. package/src/engine/viewport/viewport.ts +67 -67
  221. package/src/index.ts +3 -3
  222. package/src/plugin/ConfigManager.ts +93 -93
  223. package/src/plugin/EventBus.ts +77 -77
  224. package/src/plugin/HookSystem.ts +106 -106
  225. package/src/plugin/PluginHost.ts +243 -243
  226. package/src/plugin/PluginRegistry.ts +92 -92
  227. package/src/plugin/StateStore.ts +73 -73
  228. package/src/plugin/index.ts +19 -19
  229. package/src/plugin/rendererPluginManager.ts +368 -368
  230. package/src/plugin/stateKeys.ts +8 -8
  231. package/src/plugin/types.ts +526 -526
  232. package/src/reactivity/index.ts +2 -2
  233. package/src/reactivity/signal.ts +119 -119
  234. package/src/semantic/controller.ts +251 -251
  235. package/src/semantic/drawShape.ts +260 -260
  236. package/src/semantic/index.ts +28 -28
  237. package/src/semantic/schema.json +256 -256
  238. package/src/semantic/types.ts +251 -251
  239. package/src/semantic/validator.ts +349 -349
  240. package/src/types/kLine.ts +13 -13
  241. package/src/types/price.ts +56 -56
  242. package/src/types/volumePrice.ts +33 -33
  243. package/src/utils/dateFormat.ts +208 -208
  244. package/src/utils/kLineDraw/axis.ts +562 -562
  245. package/src/utils/priceToY.ts +34 -34
  246. package/src/utils/volumePrice.ts +202 -202
  247. package/src/version.ts +1 -1
@@ -1,3 +1,4 @@
1
+ import { createSignal } from '../reactivity/signal';
1
2
  import { createSubIndicatorRenderer } from './renderers/Indicator';
2
3
  import { createVolumeScaleRendererPlugin } from './renderers/Indicator/scale/volume_scale';
3
4
  import { createMacdScaleRendererPlugin } from './renderers/Indicator/scale/macd_scale';
@@ -12,6 +13,13 @@ import { createAtrScaleRendererPlugin } from './renderers/Indicator/scale/atr_sc
12
13
  import { createIndicatorScaleRendererPlugin } from './renderers/Indicator/scale/indicator_scale';
13
14
  export class SubPaneManager {
14
15
  entries = new Map();
16
+ _entriesSignal = createSignal([]);
17
+ get entriesSignal() {
18
+ return this._entriesSignal;
19
+ }
20
+ syncEntriesSignal() {
21
+ this._entriesSignal.set(this.getAll());
22
+ }
15
23
  create(chart, paneId, indicatorId, params) {
16
24
  if (this.entries.has(paneId)) {
17
25
  return true;
@@ -33,6 +41,7 @@ export class SubPaneManager {
33
41
  this.entries.set(paneId, { paneId, indicatorId, params, rendererName, scaleRendererName });
34
42
  this.syncSchedulerConfig(chart, paneId, indicatorId, params);
35
43
  chart.getIndicatorScheduler().onSubPaneChanged();
44
+ this.syncEntriesSignal();
36
45
  return true;
37
46
  }
38
47
  remove(chart, paneId) {
@@ -46,6 +55,7 @@ export class SubPaneManager {
46
55
  chart.removePaneDefinition(paneId);
47
56
  }
48
57
  chart.getIndicatorScheduler().onSubPaneChanged();
58
+ this.syncEntriesSignal();
49
59
  }
50
60
  replaceIndicator(chart, paneId, newIndicatorId, newParams) {
51
61
  const entry = this.entries.get(paneId);
@@ -68,6 +78,7 @@ export class SubPaneManager {
68
78
  scaleRendererName: newScaleRendererName,
69
79
  });
70
80
  chart.getIndicatorScheduler().onSubPaneChanged();
81
+ this.syncEntriesSignal();
71
82
  }
72
83
  updateParams(chart, paneId, params) {
73
84
  const entry = this.entries.get(paneId);
@@ -76,6 +87,7 @@ export class SubPaneManager {
76
87
  entry.params = { ...params };
77
88
  chart.updateRendererConfig(entry.rendererName, params);
78
89
  this.syncSchedulerConfig(chart, paneId, entry.indicatorId, entry.params);
90
+ this.syncEntriesSignal();
79
91
  }
80
92
  getByPaneId(paneId) {
81
93
  return this.entries.get(paneId);
@@ -93,6 +105,7 @@ export class SubPaneManager {
93
105
  }
94
106
  this.entries.clear();
95
107
  chart.getIndicatorScheduler().onSubPaneChanged();
108
+ this.syncEntriesSignal();
96
109
  }
97
110
  syncSchedulerConfig(chart, paneId, indicatorId, params) {
98
111
  const scheduler = chart.getIndicatorScheduler();
@@ -1 +1 @@
1
- {"version":3,"file":"subPaneManager.js","sourceRoot":"","sources":["../../src/engine/subPaneManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAA;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAA;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAA;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAA;AA+ChG,MAAM,OAAO,cAAc;IACf,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAEjD,MAAM,CAAC,KAAY,EAAE,MAAc,EAAE,WAA6B,EAAE,MAA+B;QAC/F,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACf,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE,CAAA;QAC7D,MAAM,iBAAiB,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,UAAU,MAAM,EAAE,CAAA;QAExE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;YACpE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAmD,CAAC,CAAA;QACpF,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;QAEtE,sCAAsC;QACtC,uEAAuE;QACvE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAA;QAE1F,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAE5D,KAAK,CAAC,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,CAAA;QAEhD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,KAAY,EAAE,MAAc;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACxC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,CAAA;IACpD,CAAC;IAED,gBAAgB,CAAC,KAAY,EAAE,MAAc,EAAE,cAAgC,EAAE,SAAkC;QAC/G,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAA;QAExC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACxC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAE7C,MAAM,eAAe,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE,CAAA;QACnE,MAAM,oBAAoB,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,UAAU,MAAM,EAAE,CAAA;QAE9E,MAAM,QAAQ,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAA;QACpF,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAsD,CAAC,CAAA;QAEnF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAA;QAE5E,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;QAElE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,MAAM;YACN,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,eAAe;YAC7B,iBAAiB,EAAE,oBAAoB;SAC1C,CAAC,CAAA;QAEF,KAAK,CAAC,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,CAAA;IACpD,CAAC;IAED,YAAY,CAAC,KAAY,EAAE,MAAc,EAAE,MAA+B;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;QAE5B,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAEtD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5E,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,MAAM;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,KAAY;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACxC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACjD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,KAAK,CAAC,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,CAAA;IACpD,CAAC;IAEO,mBAAmB,CACvB,KAAY,EACZ,MAAc,EACd,WAA6B,EAC7B,MAA+B;QAE/B,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAA;QAC/C,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,OAAO;gBACR,SAAS,CAAC,iBAAiB,CAAC,MAAuC,EAAE,MAAM,CAAC,CAAA;gBAC5E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,OAAO;gBACR,SAAS,CAAC,iBAAiB,CAAC,MAAuC,EAAE,MAAM,CAAC,CAAA;gBAC5E,MAAK;YACT,KAAK,KAAK;gBACN,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACnG,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,YAAY;gBACb,SAAS,CAAC,sBAAsB,CAAC,MAA4C,EAAE,MAAM,CAAC,CAAA;gBACtF,MAAK;YACT,KAAK,SAAS;gBACV,SAAS,CAAC,mBAAmB,CAAC,MAAyC,EAAE,MAAM,CAAC,CAAA;gBAChF,MAAK;YACT,KAAK,UAAU;gBACX,SAAS,CAAC,oBAAoB,CAAC,MAA0C,EAAE,MAAM,CAAC,CAAA;gBAClF,MAAK;YACT,KAAK,UAAU;gBACX,SAAS,CAAC,oBAAoB,CAAC,MAA0C,EAAE,MAAM,CAAC,CAAA;gBAClF,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,IAAI;gBACL,SAAS,CAAC,cAAc,CAAC,MAAoC,EAAE,MAAM,CAAC,CAAA;gBACtE,MAAK;YACT,KAAK,WAAW;gBACZ,SAAS,CAAC,qBAAqB,CAAC,MAA2C,EAAE,MAAM,CAAC,CAAA;gBACpF,MAAK;YACT,KAAK,aAAa;gBACd,SAAS,CAAC,sBAAsB,CAAC,MAA4C,EAAE,MAAM,CAAC,CAAA;gBACtF,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,MAAM;gBACP,SAAS,CAAC,gBAAgB,CAAC,MAAsC,EAAE,MAAM,CAAC,CAAA;gBAC1E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,OAAO;gBACR,SAAS,CAAC,iBAAiB,CAAC,MAAuC,EAAE,MAAM,CAAC,CAAA;gBAC5E,MAAK;YACT,KAAK,KAAK;gBACN,SAAS,CAAC,eAAe,CAAC,MAAqC,EAAE,MAAM,CAAC,CAAA;gBACxE,MAAK;YACT,KAAK,WAAW;gBACZ,SAAS,CAAC,qBAAqB,CAAC,MAA2C,EAAE,MAAM,CAAC,CAAA;gBACpF,MAAK;YACT,KAAK,OAAO;gBACR,SAAS,CAAC,iBAAiB,CAAC,MAAuC,EAAE,MAAM,CAAC,CAAA;gBAC5E,MAAK;YACT,KAAK,gBAAgB;gBACjB,SAAS,CAAC,yBAAyB,CAAC,MAA+C,EAAE,MAAM,CAAC,CAAA;gBAC5F,MAAK;YACT,KAAK,QAAQ;gBACT,MAAK;QACb,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAY,EAAE,MAAc,EAAE,WAA6B,EAAE,iBAAyB;QAC7G,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;QACrD,IAAI,QAAQ;YAAE,OAAM;QAEpB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;QAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU,CAAA;QAC/C,MAAM,YAAY,GAAG,GAAG,EAAE;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAA;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,cAAc,CAAA;YAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAA;YACnD,IAAI,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;YAC5C,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC,CAAA;QAED,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;QAE5D,IAAI,QAAoD,CAAA;QACxD,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACT,QAAQ,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAA;gBAChD,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAA;gBAC9C,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;gBAC7C,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;gBAC7C,MAAK;YACT,KAAK,OAAO;gBACR,QAAQ,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAA;gBAC/C,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;gBAC7C,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAA;gBAC9C,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;gBAC7C,MAAK;YACT,KAAK,OAAO;gBACR,QAAQ,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAA;gBAC/C,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;gBAC7C,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5G,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,YAAY;gBACb,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACxH,MAAK;YACT,KAAK,SAAS;gBACV,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAClH,MAAK;YACT,KAAK,UAAU;gBACX,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACpH,MAAK;YACT,KAAK,UAAU;gBACX,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACpH,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5G,MAAK;YACT,KAAK,IAAI;gBACL,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACxG,MAAK;YACT,KAAK,WAAW;gBACZ,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACtH,MAAK;YACT,KAAK,aAAa;gBACd,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACxH,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,MAAM;gBACP,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,OAAO;gBACR,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC9G,MAAK;YACT,KAAK,KAAK;gBACN,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,MAAK;YACT,KAAK,WAAW;gBACZ,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACtH,MAAK;YACT,KAAK,OAAO;gBACR,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC9G,MAAK;YACT,KAAK,gBAAgB;gBACjB,QAAQ,GAAG,kCAAkC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBACnH,MAAK;YACT;gBACI,OAAM;QACd,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CACJ"}
1
+ {"version":3,"file":"subPaneManager.js","sourceRoot":"","sources":["../../src/engine/subPaneManager.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION: string;
1
+ export declare const VERSION = "0.7.5";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,QAAc,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA"}
package/dist/version.js CHANGED
@@ -1,3 +1,2 @@
1
- import pkg from '../package.json';
2
- export const VERSION = pkg.version;
1
+ export const VERSION = "0.7.5";
3
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAA;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,122 +1,129 @@
1
- {
2
- "name": "@363045841yyt/klinechart-core",
3
- "version": "0.7.3",
4
- "description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
5
- "license": "MIT",
6
- "type": "module",
7
- "sideEffects": false,
8
- "main": "./dist/index.js",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "import": "./dist/index.js"
15
- },
16
- "./reactivity": {
17
- "types": "./dist/reactivity/index.d.ts",
18
- "import": "./dist/reactivity/index.js"
19
- },
20
- "./controllers": {
21
- "types": "./dist/controllers/index.d.ts",
22
- "import": "./dist/controllers/index.js"
23
- },
24
- "./semantic": {
25
- "types": "./dist/semantic/index.d.ts",
26
- "import": "./dist/semantic/index.js"
27
- },
28
- "./plugin": {
29
- "types": "./dist/plugin/index.d.ts",
30
- "import": "./dist/plugin/index.js"
31
- },
32
- "./config": {
33
- "types": "./dist/config/chartSettings.d.ts",
34
- "import": "./dist/config/chartSettings.js"
35
- },
36
- "./types/price": {
37
- "types": "./dist/types/price.d.ts",
38
- "import": "./dist/types/price.js"
39
- },
40
- "./engine/chart": {
41
- "types": "./dist/engine/chart.d.ts",
42
- "import": "./dist/engine/chart.js"
43
- },
44
- "./engine/chart-store": {
45
- "types": "./dist/engine/chart-store.d.ts",
46
- "import": "./dist/engine/chart-store.js"
47
- },
48
- "./engine/utils/zoom": {
49
- "types": "./dist/engine/utils/zoom.d.ts",
50
- "import": "./dist/engine/utils/zoom.js"
51
- },
52
- "./engine/utils/klineConfig": {
53
- "types": "./dist/engine/utils/klineConfig.d.ts",
54
- "import": "./dist/engine/utils/klineConfig.js"
55
- },
56
- "./engine/renderers/Indicator": {
57
- "types": "./dist/engine/renderers/Indicator/index.d.ts",
58
- "import": "./dist/engine/renderers/Indicator/index.js"
59
- },
60
- "./engine/renderers/Indicator/subPaneConfig": {
61
- "types": "./dist/engine/renderers/Indicator/subPaneConfig.d.ts",
62
- "import": "./dist/engine/renderers/Indicator/subPaneConfig.js"
63
- },
64
- "./engine/renderers/Indicator/indicatorData": {
65
- "types": "./dist/engine/renderers/Indicator/indicatorData.d.ts",
66
- "import": "./dist/engine/renderers/Indicator/indicatorData.js"
67
- },
68
- "./engine/renderers/paneTitle": {
69
- "types": "./dist/engine/renderers/paneTitle.d.ts",
70
- "import": "./dist/engine/renderers/paneTitle.js"
71
- },
72
- "./engine/controller/interaction": {
73
- "types": "./dist/engine/controller/interaction.d.ts",
74
- "import": "./dist/engine/controller/interaction.js"
75
- },
76
- "./engine/drawing": {
77
- "types": "./dist/engine/drawing/index.d.ts",
78
- "import": "./dist/engine/drawing/index.js"
79
- },
80
- "./version": {
81
- "types": "./dist/version.d.ts",
82
- "import": "./dist/version.js"
83
- }
84
- },
85
- "files": [
86
- "dist",
87
- "src"
88
- ],
89
- "publishConfig": {
90
- "access": "public"
91
- },
92
- "scripts": {
93
- "version": "node -e \"require('fs').writeFileSync('src/version.ts', 'export const VERSION = ' + JSON.stringify(require('./package.json').version) + '\\\\n')\" && git add src/version.ts",
94
- "build": "tsc -p tsconfig.build.json",
95
- "test": "vitest run",
96
- "test:watch": "vitest",
97
- "size": "size-limit",
98
- "lint:publish": "publint --strict .",
99
- "lint:types": "attw --pack ."
100
- },
101
- "size-limit": [
102
- {
103
- "name": "core (entry, pre-build src measurement)",
104
- "path": "src/index.ts",
105
- "limit": "30 KB",
106
- "gzip": true
107
- }
108
- ],
109
- "optionalDependencies": {
110
- "ajv": "^8.20.0"
111
- },
112
- "devDependencies": {
113
- "@arethetypeswrong/cli": "^0.18.3",
114
- "@size-limit/preset-small-lib": "^12.1.0",
115
- "@types/jsdom": "^28.0.0",
116
- "publint": "^0.3.0",
117
- "size-limit": "^12.1.0",
118
- "typescript": "~6.0.3",
119
- "vite-plugin-babel": "^1.3.2",
120
- "vitest": "^4.1.5"
121
- }
122
- }
1
+ {
2
+ "name": "@363045841yyt/klinechart-core",
3
+ "version": "0.7.5",
4
+ "description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/363045841/KLineChartQuant.git"
9
+ },
10
+ "bugs": "https://github.com/363045841/KLineChartQuant/issues",
11
+ "homepage": "https://363045841.github.io/KLineChartQuant/",
12
+ "type": "module",
13
+ "sideEffects": false,
14
+ "main": "./dist/index.js",
15
+ "module": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
+ },
22
+ "./reactivity": {
23
+ "types": "./dist/reactivity/index.d.ts",
24
+ "import": "./dist/reactivity/index.js"
25
+ },
26
+ "./controllers": {
27
+ "types": "./dist/controllers/index.d.ts",
28
+ "import": "./dist/controllers/index.js"
29
+ },
30
+ "./semantic": {
31
+ "types": "./dist/semantic/index.d.ts",
32
+ "import": "./dist/semantic/index.js"
33
+ },
34
+ "./plugin": {
35
+ "types": "./dist/plugin/index.d.ts",
36
+ "import": "./dist/plugin/index.js"
37
+ },
38
+ "./config": {
39
+ "types": "./dist/config/chartSettings.d.ts",
40
+ "import": "./dist/config/chartSettings.js"
41
+ },
42
+ "./types/price": {
43
+ "types": "./dist/types/price.d.ts",
44
+ "import": "./dist/types/price.js"
45
+ },
46
+ "./engine/chart": {
47
+ "types": "./dist/engine/chart.d.ts",
48
+ "import": "./dist/engine/chart.js"
49
+ },
50
+ "./engine/chart-store": {
51
+ "types": "./dist/engine/chart-store.d.ts",
52
+ "import": "./dist/engine/chart-store.js"
53
+ },
54
+ "./engine/utils/zoom": {
55
+ "types": "./dist/engine/utils/zoom.d.ts",
56
+ "import": "./dist/engine/utils/zoom.js"
57
+ },
58
+ "./engine/utils/klineConfig": {
59
+ "types": "./dist/engine/utils/klineConfig.d.ts",
60
+ "import": "./dist/engine/utils/klineConfig.js"
61
+ },
62
+ "./engine/renderers/Indicator": {
63
+ "types": "./dist/engine/renderers/Indicator/index.d.ts",
64
+ "import": "./dist/engine/renderers/Indicator/index.js"
65
+ },
66
+ "./engine/renderers/Indicator/subPaneConfig": {
67
+ "types": "./dist/engine/renderers/Indicator/subPaneConfig.d.ts",
68
+ "import": "./dist/engine/renderers/Indicator/subPaneConfig.js"
69
+ },
70
+ "./engine/renderers/Indicator/indicatorData": {
71
+ "types": "./dist/engine/renderers/Indicator/indicatorData.d.ts",
72
+ "import": "./dist/engine/renderers/Indicator/indicatorData.js"
73
+ },
74
+ "./engine/renderers/paneTitle": {
75
+ "types": "./dist/engine/renderers/paneTitle.d.ts",
76
+ "import": "./dist/engine/renderers/paneTitle.js"
77
+ },
78
+ "./engine/controller/interaction": {
79
+ "types": "./dist/engine/controller/interaction.d.ts",
80
+ "import": "./dist/engine/controller/interaction.js"
81
+ },
82
+ "./engine/drawing": {
83
+ "types": "./dist/engine/drawing/index.d.ts",
84
+ "import": "./dist/engine/drawing/index.js"
85
+ },
86
+ "./version": {
87
+ "types": "./dist/version.d.ts",
88
+ "import": "./dist/version.js"
89
+ }
90
+ },
91
+ "files": [
92
+ "dist",
93
+ "src"
94
+ ],
95
+ "publishConfig": {
96
+ "access": "public"
97
+ },
98
+ "scripts": {
99
+ "version": "node -e \"require('fs').writeFileSync('src/version.ts', 'export const VERSION = ' + JSON.stringify(require('./package.json').version) + '\\\\n')\" && git add src/version.ts",
100
+ "build": "tsc -p tsconfig.build.json",
101
+ "prepublishOnly": "npm run build",
102
+ "test": "vitest run",
103
+ "test:watch": "vitest",
104
+ "size": "size-limit",
105
+ "lint:publish": "publint --strict .",
106
+ "lint:types": "attw --pack ."
107
+ },
108
+ "size-limit": [
109
+ {
110
+ "name": "core (entry, pre-build src measurement)",
111
+ "path": "src/index.ts",
112
+ "limit": "30 KB",
113
+ "gzip": true
114
+ }
115
+ ],
116
+ "optionalDependencies": {
117
+ "ajv": "^8.20.0"
118
+ },
119
+ "devDependencies": {
120
+ "@arethetypeswrong/cli": "^0.18.3",
121
+ "@size-limit/preset-small-lib": "^12.1.0",
122
+ "@types/jsdom": "^28.0.0",
123
+ "publint": "^0.3.0",
124
+ "size-limit": "^12.1.0",
125
+ "typescript": "~6.0.3",
126
+ "vite-plugin-babel": "^1.3.2",
127
+ "vitest": "^4.1.5"
128
+ }
129
+ }
@@ -1,124 +1,124 @@
1
- import { describe, it, expect, vi } from 'vitest'
2
- import { createSignal, effect, computed } from '../reactivity/signal'
3
-
4
- describe('createSignal', () => {
5
- it('reads initial value', () => {
6
- const s = createSignal(42)
7
- expect(s()).toBe(42)
8
- })
9
-
10
- it('updates and notifies subscribers on set', () => {
11
- const s = createSignal(0)
12
- const listener = vi.fn()
13
- s.subscribe(listener)
14
- s.set(1)
15
- expect(listener).toHaveBeenCalledTimes(1)
16
- expect(s()).toBe(1)
17
- })
18
-
19
- it('does NOT notify on equal write (Object.is)', () => {
20
- const s = createSignal(1)
21
- const listener = vi.fn()
22
- s.subscribe(listener)
23
- s.set(1)
24
- expect(listener).not.toHaveBeenCalled()
25
- })
26
-
27
- it('unsubscribes cleanly', () => {
28
- const s = createSignal(0)
29
- const listener = vi.fn()
30
- const unsub = s.subscribe(listener)
31
- unsub()
32
- s.set(1)
33
- expect(listener).not.toHaveBeenCalled()
34
- })
35
-
36
- it('peek does not track', () => {
37
- const a = createSignal(1)
38
- const ran = vi.fn()
39
- effect(() => {
40
- ran()
41
- a.peek()
42
- })
43
- ran.mockClear()
44
- a.set(2)
45
- expect(ran).not.toHaveBeenCalled()
46
- })
47
-
48
- it('safe under listener self-unsubscribe during notify', () => {
49
- const s = createSignal(0)
50
- const unsub = s.subscribe(() => unsub())
51
- const other = vi.fn()
52
- s.subscribe(other)
53
- expect(() => s.set(1)).not.toThrow()
54
- expect(other).toHaveBeenCalledTimes(1)
55
- })
56
- })
57
-
58
- describe('effect', () => {
59
- it('runs once immediately', () => {
60
- const fn = vi.fn()
61
- effect(fn)
62
- expect(fn).toHaveBeenCalledTimes(1)
63
- })
64
-
65
- it('re-runs when a tracked signal updates', () => {
66
- const a = createSignal(1)
67
- const fn = vi.fn(() => {
68
- a()
69
- })
70
- effect(fn)
71
- expect(fn).toHaveBeenCalledTimes(1)
72
- a.set(2)
73
- expect(fn).toHaveBeenCalledTimes(2)
74
- })
75
-
76
- it('stops re-running after dispose', () => {
77
- const a = createSignal(1)
78
- const fn = vi.fn(() => {
79
- a()
80
- })
81
- const dispose = effect(fn)
82
- dispose()
83
- a.set(2)
84
- expect(fn).toHaveBeenCalledTimes(1)
85
- })
86
-
87
- it('re-tracks dependencies each run', () => {
88
- const a = createSignal(true)
89
- const b = createSignal(1)
90
- const c = createSignal(100)
91
- const fn = vi.fn(() => {
92
- if (a()) b()
93
- else c()
94
- })
95
- effect(fn)
96
- expect(fn).toHaveBeenCalledTimes(1)
97
- a.set(false)
98
- expect(fn).toHaveBeenCalledTimes(2)
99
- // now only c is tracked; mutating b should NOT re-run
100
- b.set(2)
101
- expect(fn).toHaveBeenCalledTimes(2)
102
- c.set(200)
103
- expect(fn).toHaveBeenCalledTimes(3)
104
- })
105
- })
106
-
107
- describe('computed', () => {
108
- it('derives from a signal', () => {
109
- const a = createSignal(2)
110
- const doubled = computed(() => a() * 2)
111
- expect(doubled()).toBe(4)
112
- a.set(5)
113
- expect(doubled()).toBe(10)
114
- })
115
-
116
- it('notifies subscribers on derived change', () => {
117
- const a = createSignal(1)
118
- const c = computed(() => a() + 1)
119
- const listener = vi.fn()
120
- c.subscribe(listener)
121
- a.set(2)
122
- expect(listener).toHaveBeenCalledTimes(1)
123
- })
124
- })
1
+ import { describe, it, expect, vi } from 'vitest'
2
+ import { createSignal, effect, computed } from '../reactivity/signal'
3
+
4
+ describe('createSignal', () => {
5
+ it('reads initial value', () => {
6
+ const s = createSignal(42)
7
+ expect(s()).toBe(42)
8
+ })
9
+
10
+ it('updates and notifies subscribers on set', () => {
11
+ const s = createSignal(0)
12
+ const listener = vi.fn()
13
+ s.subscribe(listener)
14
+ s.set(1)
15
+ expect(listener).toHaveBeenCalledTimes(1)
16
+ expect(s()).toBe(1)
17
+ })
18
+
19
+ it('does NOT notify on equal write (Object.is)', () => {
20
+ const s = createSignal(1)
21
+ const listener = vi.fn()
22
+ s.subscribe(listener)
23
+ s.set(1)
24
+ expect(listener).not.toHaveBeenCalled()
25
+ })
26
+
27
+ it('unsubscribes cleanly', () => {
28
+ const s = createSignal(0)
29
+ const listener = vi.fn()
30
+ const unsub = s.subscribe(listener)
31
+ unsub()
32
+ s.set(1)
33
+ expect(listener).not.toHaveBeenCalled()
34
+ })
35
+
36
+ it('peek does not track', () => {
37
+ const a = createSignal(1)
38
+ const ran = vi.fn()
39
+ effect(() => {
40
+ ran()
41
+ a.peek()
42
+ })
43
+ ran.mockClear()
44
+ a.set(2)
45
+ expect(ran).not.toHaveBeenCalled()
46
+ })
47
+
48
+ it('safe under listener self-unsubscribe during notify', () => {
49
+ const s = createSignal(0)
50
+ const unsub = s.subscribe(() => unsub())
51
+ const other = vi.fn()
52
+ s.subscribe(other)
53
+ expect(() => s.set(1)).not.toThrow()
54
+ expect(other).toHaveBeenCalledTimes(1)
55
+ })
56
+ })
57
+
58
+ describe('effect', () => {
59
+ it('runs once immediately', () => {
60
+ const fn = vi.fn()
61
+ effect(fn)
62
+ expect(fn).toHaveBeenCalledTimes(1)
63
+ })
64
+
65
+ it('re-runs when a tracked signal updates', () => {
66
+ const a = createSignal(1)
67
+ const fn = vi.fn(() => {
68
+ a()
69
+ })
70
+ effect(fn)
71
+ expect(fn).toHaveBeenCalledTimes(1)
72
+ a.set(2)
73
+ expect(fn).toHaveBeenCalledTimes(2)
74
+ })
75
+
76
+ it('stops re-running after dispose', () => {
77
+ const a = createSignal(1)
78
+ const fn = vi.fn(() => {
79
+ a()
80
+ })
81
+ const dispose = effect(fn)
82
+ dispose()
83
+ a.set(2)
84
+ expect(fn).toHaveBeenCalledTimes(1)
85
+ })
86
+
87
+ it('re-tracks dependencies each run', () => {
88
+ const a = createSignal(true)
89
+ const b = createSignal(1)
90
+ const c = createSignal(100)
91
+ const fn = vi.fn(() => {
92
+ if (a()) b()
93
+ else c()
94
+ })
95
+ effect(fn)
96
+ expect(fn).toHaveBeenCalledTimes(1)
97
+ a.set(false)
98
+ expect(fn).toHaveBeenCalledTimes(2)
99
+ // now only c is tracked; mutating b should NOT re-run
100
+ b.set(2)
101
+ expect(fn).toHaveBeenCalledTimes(2)
102
+ c.set(200)
103
+ expect(fn).toHaveBeenCalledTimes(3)
104
+ })
105
+ })
106
+
107
+ describe('computed', () => {
108
+ it('derives from a signal', () => {
109
+ const a = createSignal(2)
110
+ const doubled = computed(() => a() * 2)
111
+ expect(doubled()).toBe(4)
112
+ a.set(5)
113
+ expect(doubled()).toBe(10)
114
+ })
115
+
116
+ it('notifies subscribers on derived change', () => {
117
+ const a = createSignal(1)
118
+ const c = computed(() => a() + 1)
119
+ const listener = vi.fn()
120
+ c.subscribe(listener)
121
+ a.set(2)
122
+ expect(listener).toHaveBeenCalledTimes(1)
123
+ })
124
+ })