@quantlife/qlchart 0.0.1

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 (321) hide show
  1. package/.idea/QLChart.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/vcs.xml +6 -0
  4. package/README.md +75 -0
  5. package/demo/App.css +213 -0
  6. package/demo/App.tsx +46 -0
  7. package/demo/components/ControlPanel.tsx +13 -0
  8. package/demo/components/DemoNav.tsx +27 -0
  9. package/demo/index.html +16 -0
  10. package/demo/main.tsx +10 -0
  11. package/demo/pages/BasicChartDemo.tsx +61 -0
  12. package/demo/pages/DrawingDemo.tsx +22 -0
  13. package/demo/pages/IndicatorDemo.tsx +22 -0
  14. package/demo/pages/LayoutDemo.tsx +35 -0
  15. package/demo/pages/MultiPeriodDemo.tsx +31 -0
  16. package/demo/pages/ReplayDemo.tsx +195 -0
  17. package/demo/pages/SaveDemo.tsx +27 -0
  18. package/demo/pages/ThemeDemo.tsx +29 -0
  19. package/demo/standalone-demo.html +597 -0
  20. package/demo/vite.config.demo.ts +17 -0
  21. package/dist/index.d.ts +1973 -0
  22. package/dist/qlchart.js +23169 -0
  23. package/dist/style.css +1 -0
  24. package/doc/api/indicator-data-processor.md +35 -0
  25. package/doc/api-reference/.nojekyll +1 -0
  26. package/doc/api-reference/assets/hierarchy.js +1 -0
  27. package/doc/api-reference/assets/highlight.css +43 -0
  28. package/doc/api-reference/assets/icons.js +18 -0
  29. package/doc/api-reference/assets/icons.svg +1 -0
  30. package/doc/api-reference/assets/main.js +60 -0
  31. package/doc/api-reference/assets/navigation.js +1 -0
  32. package/doc/api-reference/assets/search.js +1 -0
  33. package/doc/api-reference/assets/style.css +1611 -0
  34. package/doc/api-reference/classes/ChartManager.html +16 -0
  35. package/doc/api-reference/classes/DataManager.html +13 -0
  36. package/doc/api-reference/classes/DrawingAdapter.html +64 -0
  37. package/doc/api-reference/classes/DrawingPersistence.html +21 -0
  38. package/doc/api-reference/classes/EventManager.html +12 -0
  39. package/doc/api-reference/classes/HollowCandlestickSeries.html +22 -0
  40. package/doc/api-reference/classes/IndicatorRenderer.html +20 -0
  41. package/doc/api-reference/classes/KlineReplay.html +31 -0
  42. package/doc/api-reference/classes/MockDataService.html +13 -0
  43. package/doc/api-reference/classes/MockIndicatorService.html +4 -0
  44. package/doc/api-reference/classes/OverlayIndicator.html +11 -0
  45. package/doc/api-reference/classes/PaneIndicator.html +16 -0
  46. package/doc/api-reference/classes/PaneManager.html +24 -0
  47. package/doc/api-reference/classes/RealtimeDataFeed.html +22 -0
  48. package/doc/api-reference/classes/RenkoSeries.html +22 -0
  49. package/doc/api-reference/classes/ScreenshotUtil.html +10 -0
  50. package/doc/api-reference/classes/SeriesManager.html +30 -0
  51. package/doc/api-reference/classes/ThemeManager.html +18 -0
  52. package/doc/api-reference/enums/ChartEvent.html +12 -0
  53. package/doc/api-reference/enums/IndicatorType.html +4 -0
  54. package/doc/api-reference/enums/SeriesType.html +13 -0
  55. package/doc/api-reference/functions/ChartFunctionMenu.html +1 -0
  56. package/doc/api-reference/functions/DrawingModule.html +8 -0
  57. package/doc/api-reference/functions/IndicatorPanel.html +2 -0
  58. package/doc/api-reference/functions/IndicatorTag.html +2 -0
  59. package/doc/api-reference/functions/KlineTypeSelector.html +1 -0
  60. package/doc/api-reference/functions/LayoutSwitcher.html +1 -0
  61. package/doc/api-reference/functions/PeriodSelector.html +1 -0
  62. package/doc/api-reference/functions/QLChartLayout.html +1 -0
  63. package/doc/api-reference/functions/QLChartPanel.html +10 -0
  64. package/doc/api-reference/functions/QLChartProvider.html +2 -0
  65. package/doc/api-reference/functions/QLToolbar.html +1 -0
  66. package/doc/api-reference/functions/ReplayController.html +1 -0
  67. package/doc/api-reference/functions/TimeBarModule.html +4 -0
  68. package/doc/api-reference/functions/TimeRangeSelector.html +1 -0
  69. package/doc/api-reference/functions/createIndicatorConfig.html +2 -0
  70. package/doc/api-reference/functions/getToolConfig.html +2 -0
  71. package/doc/api-reference/functions/getToolsByCategory.html +2 -0
  72. package/doc/api-reference/functions/getToolsByPriority.html +2 -0
  73. package/doc/api-reference/functions/mapLibTypeToOurs.html +2 -0
  74. package/doc/api-reference/functions/mapToolTypeToLib.html +3 -0
  75. package/doc/api-reference/functions/transformCandlestickData.html +3 -0
  76. package/doc/api-reference/functions/transformIndicatorData.html +2 -0
  77. package/doc/api-reference/functions/transformVolumeData.html +3 -0
  78. package/doc/api-reference/functions/useChart.html +4 -0
  79. package/doc/api-reference/functions/useChartStore.html +8 -0
  80. package/doc/api-reference/functions/useCrosshairSync.html +8 -0
  81. package/doc/api-reference/functions/useDrawingModule.html +1 -0
  82. package/doc/api-reference/functions/useDrawingStore.html +8 -0
  83. package/doc/api-reference/functions/useIndicatorStore.html +8 -0
  84. package/doc/api-reference/functions/useQLChartConfig.html +2 -0
  85. package/doc/api-reference/functions/useReplayStore.html +8 -0
  86. package/doc/api-reference/functions/useTheme.html +2 -0
  87. package/doc/api-reference/functions/useTimeBarStore.html +8 -0
  88. package/doc/api-reference/index.html +1 -0
  89. package/doc/api-reference/interfaces/CandlestickData.html +7 -0
  90. package/doc/api-reference/interfaces/CandlestickRawData.html +8 -0
  91. package/doc/api-reference/interfaces/ChartFunctionMenuProps.html +2 -0
  92. package/doc/api-reference/interfaces/ChartManagerCreateOptions.html +4 -0
  93. package/doc/api-reference/interfaces/ChartOptions.html +8 -0
  94. package/doc/api-reference/interfaces/ChartRequestParams.html +8 -0
  95. package/doc/api-reference/interfaces/ChartResponse.html +5 -0
  96. package/doc/api-reference/interfaces/ChartState.html +24 -0
  97. package/doc/api-reference/interfaces/ChartThemeOptions.html +5 -0
  98. package/doc/api-reference/interfaces/CrosshairData.html +5 -0
  99. package/doc/api-reference/interfaces/DrawingModuleProps.html +5 -0
  100. package/doc/api-reference/interfaces/DrawingState.html +48 -0
  101. package/doc/api-reference/interfaces/HistogramData.html +5 -0
  102. package/doc/api-reference/interfaces/HollowCandlestickData.html +14 -0
  103. package/doc/api-reference/interfaces/IndicatorConfig.html +11 -0
  104. package/doc/api-reference/interfaces/IndicatorDataPoint.html +4 -0
  105. package/doc/api-reference/interfaces/IndicatorDataResponse.html +5 -0
  106. package/doc/api-reference/interfaces/IndicatorDefinition.html +9 -0
  107. package/doc/api-reference/interfaces/IndicatorPanelProps.html +3 -0
  108. package/doc/api-reference/interfaces/IndicatorParamDef.html +8 -0
  109. package/doc/api-reference/interfaces/IndicatorRawData.html +4 -0
  110. package/doc/api-reference/interfaces/IndicatorState.html +19 -0
  111. package/doc/api-reference/interfaces/IndicatorTagProps.html +2 -0
  112. package/doc/api-reference/interfaces/KlineReplayOptions.html +4 -0
  113. package/doc/api-reference/interfaces/LayoutSwitcherProps.html +3 -0
  114. package/doc/api-reference/interfaces/LineData.html +4 -0
  115. package/doc/api-reference/interfaces/MockDataConfig.html +8 -0
  116. package/doc/api-reference/interfaces/MockIndicatorConfig.html +5 -0
  117. package/doc/api-reference/interfaces/PairInfo.html +6 -0
  118. package/doc/api-reference/interfaces/PaneInfo.html +6 -0
  119. package/doc/api-reference/interfaces/PanelConfig.html +9 -0
  120. package/doc/api-reference/interfaces/PersistenceConfig.html +12 -0
  121. package/doc/api-reference/interfaces/QLChartConfig.html +18 -0
  122. package/doc/api-reference/interfaces/QLChartLayoutProps.html +9 -0
  123. package/doc/api-reference/interfaces/QLChartPanelProps.html +13 -0
  124. package/doc/api-reference/interfaces/QLChartPanelRef.html +14 -0
  125. package/doc/api-reference/interfaces/QLToolbarProps.html +7 -0
  126. package/doc/api-reference/interfaces/RealtimeCandle.html +9 -0
  127. package/doc/api-reference/interfaces/RealtimeSubscribeFn.html +2 -0
  128. package/doc/api-reference/interfaces/RenkoData.html +16 -0
  129. package/doc/api-reference/interfaces/ReplayControllerProps.html +2 -0
  130. package/doc/api-reference/interfaces/ReplayState.html +19 -0
  131. package/doc/api-reference/interfaces/ThemeConfig.html +14 -0
  132. package/doc/api-reference/interfaces/TimeBarModuleProps.html +5 -0
  133. package/doc/api-reference/interfaces/TimeBarState.html +13 -0
  134. package/doc/api-reference/interfaces/UseChartReturn.html +4 -0
  135. package/doc/api-reference/interfaces/UseDrawingModuleOptions.html +11 -0
  136. package/doc/api-reference/interfaces/UseDrawingModuleReturn.html +6 -0
  137. package/doc/api-reference/interfaces/UseThemeReturn.html +5 -0
  138. package/doc/api-reference/types/EventHandler.html +2 -0
  139. package/doc/api-reference/types/FetchFn.html +2 -0
  140. package/doc/api-reference/types/LayoutMode.html +2 -0
  141. package/doc/api-reference/types/MarketTrend.html +2 -0
  142. package/doc/api-reference/types/ThemePreset.html +2 -0
  143. package/doc/api-reference/variables/BUILTIN_INDICATORS.html +2 -0
  144. package/doc/api-reference/variables/CATEGORY_LABELS.html +2 -0
  145. package/doc/api-reference/variables/DRAWING_TOOLS.html +3 -0
  146. package/doc/api-reference/variables/MARKET_PRESETS.html +1 -0
  147. package/doc/api-reference/variables/PAIR_PRESETS.html +1 -0
  148. package/doc/api-reference/variables/darkPreset.html +1 -0
  149. package/doc/api-reference/variables/lightPreset.html +1 -0
  150. package/doc/components/drawing-module.md +24 -0
  151. package/doc/components/indicator-list-panel.md +24 -0
  152. package/doc/components/indicator-panel.md +17 -0
  153. package/doc/components/pane-divider.md +25 -0
  154. package/doc/components/qlchart-layout.md +30 -0
  155. package/doc/components/qlchart-panel.md +93 -0
  156. package/doc/components/qlchart-provider.md +73 -0
  157. package/doc/components/qltoolbar.md +17 -0
  158. package/doc/components/replay-controller.md +23 -0
  159. package/doc/components/timebar-module.md +13 -0
  160. package/doc/core/chart-manager.md +14 -0
  161. package/doc/core/data-manager.md +33 -0
  162. package/doc/core/event-manager.md +26 -0
  163. package/doc/core/pane-manager.md +13 -0
  164. package/doc/core/series-manager.md +19 -0
  165. package/doc/core/theme-manager.md +21 -0
  166. package/doc/examples/basic-chart.md +24 -0
  167. package/doc/examples/data-format-guide.md +119 -0
  168. package/doc/examples/drawing-tools.md +30 -0
  169. package/doc/examples/indicator-properties.md +34 -0
  170. package/doc/examples/multi-pane.md +24 -0
  171. package/doc/examples/multi-panel.md +23 -0
  172. package/doc/examples/realtime-data.md +147 -0
  173. package/doc/examples/standalone-js.md +333 -0
  174. package/doc/guide/architecture.md +87 -0
  175. package/doc/guide/data-flow.md +310 -0
  176. package/doc/guide/deployment.md +59 -0
  177. package/doc/guide/drawing-properties.md +40 -0
  178. package/doc/guide/getting-started.md +94 -0
  179. package/doc/guide/pane-system.md +47 -0
  180. package/doc/guide/theme-switching.md +58 -0
  181. package/doc/hooks/use-chart.md +20 -0
  182. package/doc/hooks/use-crosshair-sync.md +14 -0
  183. package/doc/hooks/use-drawing-module.md +43 -0
  184. package/doc/hooks/use-theme.md +15 -0
  185. package/doc/index.md +33 -0
  186. package/doc/plugins/drawing/overview.md +36 -0
  187. package/doc/plugins/drawing/persistence.md +42 -0
  188. package/doc/plugins/drawing/tool-registry.md +29 -0
  189. package/doc/plugins/hollow-candlestick.md +18 -0
  190. package/doc/plugins/indicators.md +28 -0
  191. package/doc/plugins/renko.md +17 -0
  192. package/doc/plugins/replay.md +21 -0
  193. package/doc/plugins/screenshot.md +20 -0
  194. package/docs/api.md +94 -0
  195. package/package.json +54 -0
  196. package/python/qlchart/__init__.py +9 -0
  197. package/python/qlchart/__pycache__/__init__.cpython-311.pyc +0 -0
  198. package/python/qlchart/__pycache__/chart.cpython-311.pyc +0 -0
  199. package/python/qlchart/chart.py +333 -0
  200. package/python/qlchart/templates/chart_template.html +304 -0
  201. package/python/requirements.txt +1 -0
  202. package/python/setup.py +18 -0
  203. package/python/tests/__init__.py +1 -0
  204. package/python/tests/__pycache__/__init__.cpython-311.pyc +0 -0
  205. package/python/tests/__pycache__/test_chart.cpython-311-pytest-8.3.3.pyc +0 -0
  206. package/python/tests/test_chart.py +114 -0
  207. package/quantlife-qlchart-0.0.1.tgz +0 -0
  208. package/src/api/chartApi.ts +30 -0
  209. package/src/api/indicatorApi.ts +27 -0
  210. package/src/components/ChartFunctionMenu.tsx +64 -0
  211. package/src/components/PaneChartPanel.tsx +116 -0
  212. package/src/components/PaneDivider.tsx +66 -0
  213. package/src/components/QLChartLayout.tsx +151 -0
  214. package/src/components/QLChartPanel.tsx +560 -0
  215. package/src/components/QLChartProvider.tsx +90 -0
  216. package/src/components/context-menu/ChartContextMenu.tsx +139 -0
  217. package/src/components/context-menu/index.ts +2 -0
  218. package/src/components/drawing/DrawingModule.tsx +36 -0
  219. package/src/components/drawing/DrawingPropertyPanel.tsx +347 -0
  220. package/src/components/drawing/DrawingToolbar.tsx +305 -0
  221. package/src/components/drawing/index.ts +5 -0
  222. package/src/components/index.ts +43 -0
  223. package/src/components/indicator/IndicatorListPanel.tsx +94 -0
  224. package/src/components/indicator/IndicatorModal.tsx +171 -0
  225. package/src/components/indicator/IndicatorPanel.tsx +9 -0
  226. package/src/components/indicator/IndicatorPropertyPanel.tsx +130 -0
  227. package/src/components/indicator/IndicatorTag.tsx +173 -0
  228. package/src/components/indicator/index.ts +4 -0
  229. package/src/components/replay/ReplayController.css +97 -0
  230. package/src/components/replay/ReplayController.tsx +138 -0
  231. package/src/components/timebar/TimeBarModule.tsx +30 -0
  232. package/src/components/timebar/TimeRangeSelector.tsx +96 -0
  233. package/src/components/timebar/index.ts +3 -0
  234. package/src/components/toolbar/GlobalToolbar.tsx +58 -0
  235. package/src/components/toolbar/KlineTypeSelector.tsx +123 -0
  236. package/src/components/toolbar/LayoutSwitcher.tsx +45 -0
  237. package/src/components/toolbar/PeriodSelector.tsx +35 -0
  238. package/src/components/toolbar/QLToolbar.tsx +71 -0
  239. package/src/components/toolbar/TimeRangeSelector.tsx +89 -0
  240. package/src/components/ui/Modal.tsx +67 -0
  241. package/src/core/ChartManager.ts +95 -0
  242. package/src/core/DataManager.ts +427 -0
  243. package/src/core/EventManager.ts +63 -0
  244. package/src/core/IndicatorDataProcessor.ts +104 -0
  245. package/src/core/PaneManager.ts +121 -0
  246. package/src/core/RealtimeDataFeed.ts +110 -0
  247. package/src/core/SeriesManager.ts +210 -0
  248. package/src/core/ThemeManager.ts +59 -0
  249. package/src/core/index.ts +10 -0
  250. package/src/css.d.ts +4 -0
  251. package/src/hooks/useChart.ts +62 -0
  252. package/src/hooks/useCrosshairSync.ts +109 -0
  253. package/src/hooks/useDrawingModule.ts +475 -0
  254. package/src/hooks/useTheme.ts +31 -0
  255. package/src/index.ts +170 -0
  256. package/src/mock/MockDataService.ts +102 -0
  257. package/src/mock/MockIndicatorService.ts +40 -0
  258. package/src/mock/index.ts +5 -0
  259. package/src/mock/presets.ts +16 -0
  260. package/src/plugins/drawing/DrawingAdapter.ts +1762 -0
  261. package/src/plugins/drawing/DrawingPersistence.ts +273 -0
  262. package/src/plugins/drawing/DrawingPropertyTemplates.ts +327 -0
  263. package/src/plugins/drawing/DrawingSharedService.ts +125 -0
  264. package/src/plugins/drawing/DrawingToolRegistry.ts +684 -0
  265. package/src/plugins/drawing/TextLabelOverlay.ts +101 -0
  266. package/src/plugins/drawing/colorUtils.ts +53 -0
  267. package/src/plugins/drawing/index.ts +10 -0
  268. package/src/plugins/drawing/lineStyleMap.ts +46 -0
  269. package/src/plugins/drawing/migration.ts +105 -0
  270. package/src/plugins/drawing/patterns/PatternDefinitions.ts +57 -0
  271. package/src/plugins/drawing/patterns/index.ts +2 -0
  272. package/src/plugins/drawing/periodUtils.ts +51 -0
  273. package/src/plugins/indicators/AutoIndicatorRenderer.ts +204 -0
  274. package/src/plugins/indicators/IndicatorRenderer.ts +350 -0
  275. package/src/plugins/indicators/OverlayIndicator.ts +114 -0
  276. package/src/plugins/indicators/PaneIndicator.ts +137 -0
  277. package/src/plugins/indicators/index.ts +4 -0
  278. package/src/plugins/replay/KlineReplay.ts +163 -0
  279. package/src/plugins/replay/index.ts +2 -0
  280. package/src/plugins/screenshot/ScreenshotUtil.ts +123 -0
  281. package/src/plugins/screenshot/index.ts +1 -0
  282. package/src/plugins/series/HollowCandlestickSeries.ts +111 -0
  283. package/src/plugins/series/RenkoSeries.ts +104 -0
  284. package/src/plugins/series/VolumeCandlestickSeries.ts +127 -0
  285. package/src/plugins/series/index.ts +6 -0
  286. package/src/standalone.ts +386 -0
  287. package/src/store/useChartStore.ts +101 -0
  288. package/src/store/useDrawingStore.ts +135 -0
  289. package/src/store/useIndicatorStore.ts +100 -0
  290. package/src/store/usePanelRegistry.ts +50 -0
  291. package/src/store/useReplayStore.ts +42 -0
  292. package/src/store/useTimeBarStore.ts +34 -0
  293. package/src/styles/chart.css +312 -0
  294. package/src/styles/components.css +184 -0
  295. package/src/styles/context-menu.css +60 -0
  296. package/src/styles/drawing.css +524 -0
  297. package/src/styles/indicator-modal.css +216 -0
  298. package/src/styles/indicator-tag.css +210 -0
  299. package/src/styles/pane-chart.css +9 -0
  300. package/src/styles/responsive.css +71 -0
  301. package/src/styles/themes/dark.css +63 -0
  302. package/src/styles/themes/light.css +61 -0
  303. package/src/styles/toolbar.css +129 -0
  304. package/src/types/api.ts +36 -0
  305. package/src/types/chart.ts +44 -0
  306. package/src/types/drawing.ts +265 -0
  307. package/src/types/index.ts +40 -0
  308. package/src/types/indicator.ts +344 -0
  309. package/src/types/series.ts +53 -0
  310. package/src/types/theme.ts +48 -0
  311. package/src/utils/dataTransformer.ts +63 -0
  312. package/src/utils/heikinAshi.ts +41 -0
  313. package/src/utils/index.ts +3 -0
  314. package/src/utils/lineBreak.ts +88 -0
  315. package/src/utils/themePresets.ts +69 -0
  316. package/src/utils/timeFormatter.ts +29 -0
  317. package/src/utils/timeScaleUtils.ts +68 -0
  318. package/tsconfig.json +21 -0
  319. package/typedoc.json +10 -0
  320. package/vite.config.standalone.ts +31 -0
  321. package/vite.config.ts +24 -0
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .qlchart-indicator-tag{position:relative;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:12px;background:var(--qlchart-toolbar-bg, #1e222d);color:var(--qlchart-toolbar-text, #d1d4dc);border:1px solid var(--qlchart-border, #2a2e39)}.qlchart-indicator-tag-config{background:none;border:none;cursor:pointer;padding:0 2px;font-size:12px;color:var(--qlchart-toolbar-text, #d1d4dc);opacity:.6}.qlchart-indicator-tag-config:hover{opacity:1}.qlchart-indicator-tag-toggle,.qlchart-indicator-tag-close{background:none;border:none;cursor:pointer;padding:0 2px;font-size:12px;color:var(--qlchart-toolbar-text, #d1d4dc);opacity:.6}.qlchart-indicator-tag-toggle:hover,.qlchart-indicator-tag-close:hover{opacity:1}.qlchart-indicator-config-panel{position:absolute;top:100%;left:0;z-index:100;display:flex;flex-direction:column;gap:6px;padding:8px;margin-top:4px;background:var(--qlchart-toolbar-bg, #1e222d);border:1px solid var(--qlchart-border, #2a2e39);border-radius:6px;min-width:160px;box-shadow:0 4px 12px #0000004d}.qlchart-indicator-config-item{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--qlchart-toolbar-text, #d1d4dc)}.qlchart-indicator-config-item input[type=number]{width:60px;padding:2px 4px;border:1px solid var(--qlchart-border, #2a2e39);border-radius:3px;background:var(--qlchart-bg, #131722);color:var(--qlchart-text, #d1d4dc);font-size:12px;text-align:right}.qlchart-indicator-config-item input[type=number]:focus{outline:none;border-color:var(--qlchart-accent, #2962ff)}.qlchart-indicator-config-modal{width:360px;max-width:90vw;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-lg);box-shadow:var(--qlchart-shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:qlchart-config-modal-in var(--qlchart-transition)}@keyframes qlchart-config-modal-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.qlchart-indicator-config-header{display:flex;align-items:center;justify-content:space-between;padding:var(--qlchart-space-lg) var(--qlchart-space-xl);padding-bottom:var(--qlchart-space-md);font-size:var(--qlchart-text-md);font-weight:600;color:var(--qlchart-text);border-bottom:1px solid var(--qlchart-border)}.qlchart-indicator-config-close{background:none;border:none;color:var(--qlchart-text-secondary);cursor:pointer;font-size:14px;padding:0;transition:color var(--qlchart-transition)}.qlchart-indicator-config-close:hover{color:var(--qlchart-text)}.qlchart-indicator-config-body{padding:var(--qlchart-space-lg) var(--qlchart-space-xl);display:flex;flex-direction:column;gap:var(--qlchart-space-md)}.qlchart-indicator-config-row{display:flex;align-items:center;justify-content:space-between;gap:var(--qlchart-space-lg)}.qlchart-indicator-config-row label{font-size:var(--qlchart-text-md);color:var(--qlchart-text);min-width:60px}.qlchart-indicator-config-row input[type=number]{flex:1;max-width:120px;padding:var(--qlchart-space-sm) var(--qlchart-space-md);background:var(--qlchart-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-sm);color:var(--qlchart-text);font-size:var(--qlchart-text-md);text-align:right;outline:none;transition:border-color var(--qlchart-transition)}.qlchart-indicator-config-row input[type=number]:focus{border-color:var(--qlchart-accent)}.qlchart-indicator-config-footer{display:flex;justify-content:flex-end;gap:var(--qlchart-space-md);padding:var(--qlchart-space-lg) var(--qlchart-space-xl);border-top:1px solid var(--qlchart-border)}.qlchart-indicator-config-cancel{padding:var(--qlchart-space-md) var(--qlchart-space-xl);background:transparent;border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-sm);color:var(--qlchart-text);cursor:pointer;font-size:var(--qlchart-text-md);transition:background var(--qlchart-transition)}.qlchart-indicator-config-cancel:hover{background:var(--qlchart-hover)}.qlchart-indicator-config-save{padding:var(--qlchart-space-md) var(--qlchart-space-xl);background:var(--qlchart-accent);border:none;border-radius:var(--qlchart-radius-sm);color:#fff;cursor:pointer;font-size:var(--qlchart-text-md);transition:opacity var(--qlchart-transition)}.qlchart-indicator-config-save:hover{opacity:.9}.qlchart-container{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border:2px solid transparent;transition:border-color .15s}.qlchart-container.active-panel{border-color:var(--qlchart-accent, #2962ff)}.qlchart-panel{position:relative;flex:1;min-height:0;overflow:hidden}.qlchart-chart-wrapper{width:100%;height:100%}.qlchart-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--qlchart-bg, #131722);color:var(--qlchart-text, #d1d4dc);font-size:14px;z-index:10}.qlchart-error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--qlchart-bg, #131722);color:#ef5350;font-size:14px;z-index:10}.qlchart-indicator-tags{display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px;background:var(--qlchart-bg, #131722);border-bottom:1px solid var(--qlchart-border, #1e222d)}.qlchart-indicator-tag{font-size:11px}.qlchart-indicator-tag-label{font-weight:500}.qlchart-indicator-tag-value{opacity:.8;font-family:monospace}.qlchart-indicator-tag button{background:none;border:none;cursor:pointer;padding:0 2px;font-size:10px;opacity:.6;color:var(--qlchart-text, #d1d4dc)}.qlchart-indicator-tag button:hover{opacity:1}.qlchart-indicator-tag.hidden{opacity:.5}.qlchart-indicator-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:1000;display:flex;justify-content:flex-end}.qlchart-indicator-drawer{width:320px;max-width:80vw;height:100%;background:var(--qlchart-bg, #1a1e2e);color:var(--qlchart-text, #d1d4dc);display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000004d}.qlchart-indicator-drawer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--qlchart-border, #2a2e3e)}.qlchart-indicator-drawer-title{font-size:16px;font-weight:600}.qlchart-indicator-drawer-close{background:none;border:none;color:var(--qlchart-text, #d1d4dc);cursor:pointer;font-size:16px;padding:4px}.qlchart-indicator-drawer-body{flex:1;overflow-y:auto;padding:12px}.qlchart-indicator-section{margin-bottom:16px}.qlchart-indicator-section-title{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--qlchart-text-secondary, #9ca3af)}.qlchart-indicator-item{padding:8px 0;border-bottom:1px solid var(--qlchart-border, #1e222d)}.qlchart-indicator-item-header{display:flex;align-items:center;gap:8px}.qlchart-indicator-item-label{font-weight:500;font-size:13px;min-width:80px}.qlchart-indicator-item-desc{flex:1;font-size:11px;color:var(--qlchart-text-secondary, #9ca3af)}.qlchart-indicator-item-btn{background:none;border:1px solid var(--qlchart-border, #2a2e3e);color:var(--qlchart-text, #d1d4dc);cursor:pointer;padding:2px 10px;border-radius:4px;font-size:12px}.qlchart-indicator-item-btn:hover{border-color:#26a69a;color:#26a69a}.qlchart-indicator-item-btn.active{border-color:#ef5350;color:#ef5350}.qlchart-indicator-item-params{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap}.qlchart-indicator-param{display:flex;align-items:center;gap:4px;font-size:11px}.qlchart-indicator-param-label{color:var(--qlchart-text-secondary, #9ca3af)}.qlchart-indicator-param-input{width:60px;padding:2px 4px;background:var(--qlchart-bg, #131722);border:1px solid var(--qlchart-border, #2a2e3e);border-radius:3px;color:var(--qlchart-text, #d1d4dc);font-size:11px}.qlchart-toolbar-btn{background:none;border:1px solid var(--qlchart-border, #2a2e3e);color:var(--qlchart-text, #d1d4dc);cursor:pointer;padding:4px 10px;border-radius:4px;font-size:12px}.qlchart-toolbar-btn:hover{border-color:#26a69a;color:#26a69a}.qlchart-function-menu-wrapper{position:absolute;bottom:28px;right:60px;z-index:10}.qlchart-function-menu-trigger{width:24px;height:24px;border:none;background:#1e222dcc;color:#d1d4dc;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.qlchart-function-menu-trigger:hover{background:#2a2e39e6}.qlchart-function-menu-popup{position:absolute;bottom:28px;right:0;background:#1e222d;border:1px solid #2a2e39;border-radius:4px;padding:4px 0;min-width:140px;box-shadow:0 2px 8px #0000004d}.qlchart-fm-item{display:block;width:100%;padding:8px 12px;border:none;background:transparent;color:#d1d4dc;text-align:left;cursor:pointer;font-size:13px}.qlchart-fm-item:hover{background:#2a2e39}.qlchart-global-drawing-sidebar{position:relative;width:40px;flex-shrink:0;border-right:1px solid #2a2e39;overflow:visible}.qlchart-toolbar{display:flex;align-items:center;gap:var(--qlchart-space-md);padding:6px var(--qlchart-space-lg);background:var(--qlchart-toolbar-bg);border-bottom:1px solid var(--qlchart-border);flex-shrink:0;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.qlchart-toolbar-group{display:flex;align-items:center;gap:var(--qlchart-space-xs)}.qlchart-toolbar-separator{width:1px;height:20px;background:var(--qlchart-border);margin:0 var(--qlchart-space-sm)}.qlchart-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--qlchart-space-sm) var(--qlchart-space-lg);border:none;border-radius:var(--qlchart-radius-sm);background:transparent;color:var(--qlchart-toolbar-text);font-size:var(--qlchart-text-base);cursor:pointer;white-space:nowrap;min-width:32px;height:28px;transition:background var(--qlchart-transition),color var(--qlchart-transition);position:relative}.qlchart-toolbar-btn:hover{background:var(--qlchart-hover)}.qlchart-toolbar-btn.active{background:var(--qlchart-active);color:var(--qlchart-accent);font-weight:600}.qlchart-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.qlchart-kline-type-selector{position:relative}.qlchart-kline-type-dropdown{position:fixed;min-width:160px;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-md);box-shadow:var(--qlchart-shadow-md);padding:var(--qlchart-space-sm) 0;max-height:360px;overflow-y:auto;animation:qlchart-dropdown-in var(--qlchart-transition-fast)}@keyframes qlchart-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.qlchart-kline-type-group{padding:var(--qlchart-space-xs) 0}.qlchart-kline-type-group-label{padding:var(--qlchart-space-sm) var(--qlchart-space-lg);font-size:var(--qlchart-text-sm);color:var(--qlchart-text-secondary);font-weight:600;text-transform:uppercase}.qlchart-kline-type-option{display:flex;align-items:center;gap:var(--qlchart-space-md);width:100%;padding:6px var(--qlchart-space-lg);background:none;border:none;color:var(--qlchart-text);font-size:var(--qlchart-text-md);cursor:pointer;text-align:left;transition:background var(--qlchart-transition)}.qlchart-kline-type-option:hover{background:var(--qlchart-hover)}.qlchart-kline-type-option.active{background:var(--qlchart-active);color:var(--qlchart-accent)}.qlchart-kline-type-icon{font-size:14px;width:20px;text-align:center}.qlchart-drawing-toolbar-vertical{position:absolute;top:0;left:0;z-index:100;display:flex;flex-direction:column;width:40px;background:var(--qlchart-toolbar-bg);border-right:1px solid var(--qlchart-border);border-radius:0 var(--qlchart-radius-md) var(--qlchart-radius-md) 0;padding:var(--qlchart-space-sm) 0;gap:var(--qlchart-space-xs);box-shadow:var(--qlchart-shadow-sm)}.qlchart-dvt-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 var(--qlchart-space-xs);border:none;border-radius:var(--qlchart-radius-sm);background:transparent;cursor:pointer;font-size:var(--qlchart-text-lg);transition:background var(--qlchart-transition),color var(--qlchart-transition)}.qlchart-dvt-btn:hover{background:var(--qlchart-hover)}.qlchart-dvt-btn.active,.qlchart-dvt-btn.expanded,.qlchart-dvt-btn.has-active{background:var(--qlchart-active)}.qlchart-dvt-btn.active{outline:1px solid var(--qlchart-accent)}.qlchart-dvt-btn:disabled{opacity:.4;cursor:not-allowed}.qlchart-dvt-separator{height:1px;margin:var(--qlchart-space-sm) 6px;background:var(--qlchart-border)}.qlchart-dvt-category{position:relative}.qlchart-dvt-subpanel{position:absolute;top:0;left:40px;z-index:101;display:flex;flex-direction:column;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-md);padding:var(--qlchart-space-sm);min-width:120px;box-shadow:var(--qlchart-shadow-md);animation:qlchart-panel-in var(--qlchart-transition)}@keyframes qlchart-panel-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.qlchart-dvt-sub-btn{display:flex;align-items:center;gap:6px;padding:6px var(--qlchart-space-md);border:none;border-radius:var(--qlchart-radius-sm);background:transparent;cursor:pointer;font-size:14px;color:var(--qlchart-toolbar-text);transition:background var(--qlchart-transition),color var(--qlchart-transition);white-space:nowrap}.qlchart-dvt-sub-btn:hover{background:var(--qlchart-hover)}.qlchart-dvt-sub-btn.active{background:var(--qlchart-active);color:var(--qlchart-accent);font-weight:600}.qlchart-dvt-sub-label{font-size:var(--qlchart-text-base)}.qlchart-drawing-property-modal{position:relative;z-index:1;width:280px;max-width:90vw;max-height:80vh;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-lg);box-shadow:var(--qlchart-shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:qlchart-modal-slide-in var(--qlchart-transition)}@keyframes qlchart-modal-slide-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.qlchart-drawing-pp-body{padding:var(--qlchart-space-lg);overflow-y:auto;flex:1}.qlchart-drawing-pp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--qlchart-space-md);padding-bottom:6px;border-bottom:1px solid var(--qlchart-border);font-size:var(--qlchart-text-md);font-weight:600;color:var(--qlchart-toolbar-text)}.qlchart-drawing-pp-close{background:none;border:none;color:var(--qlchart-text-secondary);cursor:pointer;font-size:14px;padding:0;transition:color var(--qlchart-transition)}.qlchart-drawing-pp-close:hover{color:var(--qlchart-text)}.qlchart-drawing-pp-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.qlchart-drawing-pp-row label{font-size:var(--qlchart-text-sm);color:var(--qlchart-text-secondary);min-width:60px}.qlchart-drawing-pp-row input[type=color]{width:32px;height:28px;border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-sm);cursor:pointer;padding:2px;background:var(--qlchart-bg)}.qlchart-drawing-pp-row input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--qlchart-border);border-radius:var(--qlchart-radius-sm);outline:none}.qlchart-drawing-pp-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--qlchart-accent);cursor:pointer;border:2px solid var(--qlchart-toolbar-bg)}.qlchart-drawing-pp-row input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--qlchart-accent);cursor:pointer;border:2px solid var(--qlchart-toolbar-bg)}.qlchart-drawing-pp-value{font-size:var(--qlchart-text-sm);color:var(--qlchart-text);min-width:24px;text-align:right}.qlchart-drawing-pp-actions{margin-top:var(--qlchart-space-md);padding-top:6px;border-top:1px solid var(--qlchart-border)}.qlchart-drawing-pp-delete{width:100%;padding:6px;border:none;border-radius:var(--qlchart-radius-sm);background:#ff444426;color:#f44;cursor:pointer;font-size:var(--qlchart-text-base);transition:background var(--qlchart-transition)}.qlchart-drawing-pp-delete:hover{background:#ff444440}.qlchart-drawing-pp-select,.qlchart-drawing-pp-text{width:100%;padding:var(--qlchart-space-sm) 6px;background:var(--qlchart-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-sm);color:var(--qlchart-text);font-size:var(--qlchart-text-base)}.qlchart-dvt-drag-handle{display:flex;align-items:center;justify-content:center;padding:var(--qlchart-space-sm);cursor:grab;color:var(--qlchart-text-secondary);font-size:var(--qlchart-text-lg);-webkit-user-select:none;user-select:none;border-radius:3px;transition:background var(--qlchart-transition),color var(--qlchart-transition)}.qlchart-dvt-drag-handle:hover{background:var(--qlchart-hover);color:var(--qlchart-text)}.qlchart-dvt-drag-handle:active{cursor:grabbing}.qlchart-drawing-toolbar-vertical.dragging,.qlchart-drawing-toolbar-horizontal.dragging{opacity:.9;box-shadow:var(--qlchart-shadow-lg);transition:none}.qlchart-drawing-toolbar-horizontal{position:absolute;top:0;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:row;align-items:center;gap:var(--qlchart-space-xs);padding:var(--qlchart-space-sm) 6px;height:40px;width:auto;max-width:calc(100% - 20px);background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-right:none;border-bottom:1px solid var(--qlchart-border);border-radius:0 0 var(--qlchart-radius-md) var(--qlchart-radius-md);box-shadow:var(--qlchart-shadow-sm)}.qlchart-drawing-toolbar-horizontal .qlchart-dvt-category{position:relative}.qlchart-drawing-toolbar-horizontal .qlchart-dvt-subpanel{position:absolute;top:100%;left:0;flex-direction:column}.qlchart-drawing-toolbar-horizontal .qlchart-dvt-separator{width:1px;height:24px;margin:0 var(--qlchart-space-xs)}.qlchart-dvt-orientation-toggle{margin-top:auto}.qlchart-drawing-toolbar-horizontal .qlchart-dvt-orientation-toggle{margin-top:0;margin-left:auto}.qlchart-drawing-pp-edit-actions{display:flex;gap:var(--qlchart-space-sm);margin-bottom:6px}.qlchart-drawing-pp-save{flex:1;padding:5px;border:none;border-radius:var(--qlchart-radius-sm);background:#26a69a33;color:#26a69a;cursor:pointer;font-size:var(--qlchart-text-base);transition:background var(--qlchart-transition)}.qlchart-drawing-pp-save:hover{background:#26a69a4d}.qlchart-drawing-pp-cancel{flex:1;padding:5px;border:none;border-radius:var(--qlchart-radius-sm);background:#ff444426;color:#f44;cursor:pointer;font-size:var(--qlchart-text-base);transition:background var(--qlchart-transition)}.qlchart-drawing-pp-cancel:hover{background:#ff444440}.qlchart-fib-levels-editor{display:flex;flex-direction:column;gap:var(--qlchart-space-sm);max-height:200px;overflow-y:auto;padding:var(--qlchart-space-sm);background:var(--qlchart-bg);border-radius:var(--qlchart-radius-sm);border:1px solid var(--qlchart-border)}.qlchart-fib-level-row{display:flex;align-items:center;gap:6px;font-size:var(--qlchart-text-sm)}.qlchart-fib-level-row input[type=checkbox]{width:14px;height:14px;flex-shrink:0}.qlchart-fib-level-input{width:50px;padding:var(--qlchart-space-xs) var(--qlchart-space-sm);background:var(--qlchart-bg);border:1px solid var(--qlchart-border);border-radius:3px;color:var(--qlchart-text);font-size:var(--qlchart-text-sm);text-align:right}.qlchart-fib-level-label{color:var(--qlchart-text-secondary);min-width:40px;font-size:var(--qlchart-text-sm)}.qlchart-dvt-pane-indicator{display:flex;align-items:center;justify-content:center;padding:var(--qlchart-space-xs)}.qlchart-dvt-pane-badge{font-size:var(--qlchart-text-xs);color:var(--qlchart-accent);background:var(--qlchart-active);padding:2px 6px;border-radius:var(--qlchart-radius-sm);font-weight:600}.qlchart-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:2100;display:flex;align-items:center;justify-content:center}.qlchart-confirm-modal{min-width:320px;background:var(--qlchart-toolbar-bg, #1e222d);border:1px solid var(--qlchart-border, #2a2e39);border-radius:var(--qlchart-radius-lg, 8px);box-shadow:var(--qlchart-shadow-lg);padding:24px;text-align:center}.qlchart-confirm-icon{font-size:32px;margin-bottom:12px}.qlchart-confirm-title{font-size:16px;font-weight:600;color:var(--qlchart-text);margin-bottom:8px}.qlchart-confirm-desc{font-size:13px;color:#787b86;margin-bottom:20px}.qlchart-confirm-actions{display:flex;gap:12px;justify-content:center}.qlchart-confirm-cancel{padding:8px 20px;background:var(--qlchart-toolbar-active-bg, #2a2e39);border:1px solid var(--qlchart-border, #2a2e39);border-radius:4px;color:var(--qlchart-text);cursor:pointer;font-size:13px}.qlchart-confirm-ok{padding:8px 20px;background:#ef5350;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px}.qlchart-context-menu{position:fixed;z-index:200;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-md);padding:var(--qlchart-space-sm) 0;min-width:160px;box-shadow:var(--qlchart-shadow-lg);animation:qlchart-panel-in var(--qlchart-transition-fast)}.qlchart-context-menu-label{padding:var(--qlchart-space-sm) var(--qlchart-space-lg);font-size:var(--qlchart-text-xs);color:var(--qlchart-text-secondary);text-transform:uppercase;letter-spacing:.5px}.qlchart-context-menu-item{display:flex;align-items:center;gap:var(--qlchart-space-md);width:100%;padding:6px var(--qlchart-space-lg);border:none;background:none;color:var(--qlchart-text);font-size:var(--qlchart-text-base);cursor:pointer;text-align:left;transition:background var(--qlchart-transition),color var(--qlchart-transition)}.qlchart-context-menu-item:hover{background:var(--qlchart-hover)}.qlchart-context-menu-item.active{color:var(--qlchart-accent)}.qlchart-context-menu-item .shortcut{margin-left:auto;font-size:var(--qlchart-text-xs);color:var(--qlchart-text-secondary)}.qlchart-context-menu-item:disabled{opacity:.4;cursor:not-allowed}.qlchart-context-menu-divider{height:1px;margin:var(--qlchart-space-sm) 0;background:var(--qlchart-border)}.qlchart-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:2000;display:flex;align-items:center;justify-content:center;animation:qlchart-overlay-in var(--qlchart-transition)}@keyframes qlchart-overlay-in{0%{opacity:0}to{opacity:1}}.qlchart-indicator-modal{width:860px;max-width:92vw;max-height:85vh;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-lg);box-shadow:var(--qlchart-shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:qlchart-modal-in var(--qlchart-transition)}@keyframes qlchart-modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.qlchart-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--qlchart-space-xl);border-bottom:1px solid var(--qlchart-border);font-size:var(--qlchart-text-lg);font-weight:600;color:var(--qlchart-text)}.qlchart-modal-close{border:none;background:transparent;color:var(--qlchart-text);font-size:var(--qlchart-text-lg);cursor:pointer;padding:var(--qlchart-space-sm) var(--qlchart-space-md);border-radius:var(--qlchart-radius-sm);transition:background var(--qlchart-transition)}.qlchart-modal-close:hover{background:var(--qlchart-hover)}.qlchart-modal-search{padding:var(--qlchart-space-lg) var(--qlchart-space-xl);border-bottom:1px solid var(--qlchart-border)}.qlchart-modal-search input{width:100%;padding:var(--qlchart-space-md) var(--qlchart-space-lg);background:var(--qlchart-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-md);color:var(--qlchart-text);font-size:var(--qlchart-text-md);transition:border-color var(--qlchart-transition)}.qlchart-modal-search input:focus{border-color:var(--qlchart-accent);outline:none}.qlchart-modal-search input::placeholder{color:var(--qlchart-text-secondary)}.qlchart-modal-body{display:flex;flex:1;overflow:hidden}.qlchart-modal-sidebar{width:120px;min-width:120px;border-right:1px solid var(--qlchart-border);padding:var(--qlchart-space-sm) 0;overflow-y:auto}.qlchart-modal-tab{display:block;width:100%;padding:var(--qlchart-space-md) var(--qlchart-space-xl);border:none;background:transparent;color:var(--qlchart-text);text-align:left;cursor:pointer;font-size:var(--qlchart-text-md);border-left:3px solid transparent;transition:background var(--qlchart-transition),color var(--qlchart-transition)}.qlchart-modal-tab:hover{background:var(--qlchart-hover)}.qlchart-modal-tab.active{background:var(--qlchart-active);border-left-color:var(--qlchart-accent);color:var(--qlchart-accent)}.qlchart-modal-content{flex:1;padding:var(--qlchart-space-md);overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--qlchart-space-md);align-content:start}.qlchart-indicator-card{padding:var(--qlchart-space-lg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-md);cursor:pointer;transition:border-color var(--qlchart-transition),background var(--qlchart-transition);background:var(--qlchart-bg)}.qlchart-indicator-card:hover{border-color:var(--qlchart-accent)}.qlchart-indicator-card.selected{border-color:var(--qlchart-accent);background:var(--qlchart-active)}.qlchart-indicator-name{font-size:var(--qlchart-text-md);font-weight:500;color:var(--qlchart-text);margin-bottom:var(--qlchart-space-xs)}.qlchart-indicator-type{font-size:var(--qlchart-text-xs);color:var(--qlchart-text-secondary)}.qlchart-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--qlchart-space-lg) var(--qlchart-space-xl);border-top:1px solid var(--qlchart-border)}.qlchart-modal-selected{font-size:var(--qlchart-text-sm);color:var(--qlchart-text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qlchart-modal-confirm{padding:var(--qlchart-space-md) var(--qlchart-space-xl);background:var(--qlchart-accent);color:#fff;border:none;border-radius:var(--qlchart-radius-sm);cursor:pointer;font-size:var(--qlchart-text-md);transition:opacity var(--qlchart-transition);white-space:nowrap}.qlchart-modal-confirm:hover{opacity:.9}.qlchart-modal-empty{grid-column:1 / -1;text-align:center;padding:32px;color:var(--qlchart-text-secondary);font-size:var(--qlchart-text-md)}[data-theme=dark],[data-theme=dark] *{--qlchart-bg: #131722;--qlchart-text: #d1d4dc;--qlchart-text-secondary: #787b86;--qlchart-border: #2a2e39;--qlchart-toolbar-bg: #1e222d;--qlchart-toolbar-text: #d1d4dc;--qlchart-toolbar-active-bg: #2a2e39;--qlchart-accent: #2962ff;--qlchart-up-color: #26a69a;--qlchart-down-color: #ef5350;--qlchart-hover: rgba(255, 255, 255, .05);--qlchart-active: rgba(41, 98, 255, .15);--qlchart-focus: rgba(41, 98, 255, .3);--qlchart-disabled: rgba(255, 255, 255, .2);--qlchart-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--qlchart-shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--qlchart-shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--qlchart-radius-md: 6px;--qlchart-radius-lg: 8px;--qlchart-space-xs: 2px;--qlchart-space-sm: 4px;--qlchart-space-md: 8px;--qlchart-space-lg: 12px;--qlchart-space-xl: 16px;--qlchart-text-xs: 10px;--qlchart-text-sm: 11px;--qlchart-text-base: 12px;--qlchart-text-md: 13px;--qlchart-text-lg: 16px;--qlchart-transition: .15s ease;--qlchart-transition-fast: .1s ease;--qlchart-modal-overlay: rgba(0, 0, 0, .6);--qlchart-glass-bg: rgba(30, 34, 45, .85);--qlchart-glass-border: rgba(255, 255, 255, .08);--qlchart-success: #26a69a;--qlchart-danger: #ef5350;--qlchart-warning: #ff9800;--qlchart-shadow-sm: 0 2px 4px rgba(0,0,0,.2), 0 1px 2px rgba(0,0,0,.15);--qlchart-shadow-md: 0 6px 16px rgba(0,0,0,.3), 0 2px 6px rgba(0,0,0,.2);--qlchart-shadow-lg: 0 12px 32px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--qlchart-radius-sm: 4px;--qlchart-radius-md: 8px;--qlchart-radius-lg: 12px}[data-theme=light],[data-theme=light] *{--qlchart-bg: #ffffff;--qlchart-text: #131722;--qlchart-text-secondary: #787b86;--qlchart-border: #e0e3eb;--qlchart-toolbar-bg: #f0f3fa;--qlchart-toolbar-text: #131722;--qlchart-toolbar-active-bg: #e0e3eb;--qlchart-accent: #2962ff;--qlchart-up-color: #26a69a;--qlchart-down-color: #ef5350;--qlchart-hover: rgba(0, 0, 0, .04);--qlchart-active: rgba(41, 98, 255, .12);--qlchart-focus: rgba(41, 98, 255, .25);--qlchart-disabled: rgba(0, 0, 0, .15);--qlchart-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--qlchart-shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--qlchart-shadow-lg: 0 8px 24px rgba(0, 0, 0, .16);--qlchart-radius-md: 6px;--qlchart-radius-lg: 8px;--qlchart-space-xs: 2px;--qlchart-space-sm: 4px;--qlchart-space-md: 8px;--qlchart-space-lg: 12px;--qlchart-space-xl: 16px;--qlchart-text-xs: 10px;--qlchart-text-sm: 11px;--qlchart-text-base: 12px;--qlchart-text-md: 13px;--qlchart-text-lg: 16px;--qlchart-transition: .15s ease;--qlchart-transition-fast: .1s ease;--qlchart-modal-overlay: rgba(0, 0, 0, .4);--qlchart-glass-bg: rgba(255, 255, 255, .9);--qlchart-glass-border: rgba(0, 0, 0, .06);--qlchart-success: #26a69a;--qlchart-danger: #ef5350;--qlchart-warning: #ff9800;--qlchart-shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--qlchart-shadow-md: 0 4px 12px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06);--qlchart-shadow-lg: 0 10px 28px rgba(0,0,0,.15), 0 4px 10px rgba(0,0,0,.08);--qlchart-radius-sm: 4px;--qlchart-radius-md: 8px;--qlchart-radius-lg: 12px}@media (max-width: 1023px){.qlchart-toolbar{overflow-x:auto;-webkit-overflow-scrolling:touch}.qlchart-toolbar::-webkit-scrollbar{display:none}.qlchart-drawing-toolbar{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767px){.qlchart-toolbar{position:fixed;bottom:0;left:0;right:0;height:48px;z-index:1000;flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 8px}.qlchart-toolbar::-webkit-scrollbar{display:none}.qlchart-panel{padding-bottom:48px}.qlchart-drawing-toolbar{position:fixed;bottom:0;left:0;right:0;max-height:200px;transform:translateY(100%);transition:transform .3s ease;flex-direction:row;flex-wrap:wrap;z-index:1001;padding:8px}.qlchart-drawing-toolbar.open{transform:translateY(0)}.qlchart-replay-controller{position:fixed;bottom:48px;left:0;right:0;z-index:999}.qlchart-property-panel{position:fixed;bottom:48px;right:0;width:280px;max-height:60vh;overflow-y:auto;z-index:1002}.qlchart-context-menu{min-width:160px}}.qlchart-pane-separator{height:1px;background:#ffffff1a;flex-shrink:0}.qlchart-pane-chart{width:100%;height:100%}.qlchart-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--qlchart-space-sm);padding:var(--qlchart-space-md) var(--qlchart-space-lg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-md);background:var(--qlchart-toolbar-active-bg);color:var(--qlchart-text);font-size:var(--qlchart-text-base);cursor:pointer;transition:all var(--qlchart-transition);-webkit-user-select:none;user-select:none}.qlchart-btn:hover{background:var(--qlchart-hover);border-color:var(--qlchart-accent)}.qlchart-btn:active{transform:scale(.97)}.qlchart-btn-primary{background:var(--qlchart-accent);color:#fff;border-color:var(--qlchart-accent)}.qlchart-btn-primary:hover{filter:brightness(1.1)}.qlchart-btn-danger{background:#ef535026;color:#ef5350;border-color:transparent}.qlchart-btn-danger:hover{background:#ef535040}.qlchart-btn-ghost{background:transparent;border-color:transparent}.qlchart-btn-ghost:hover{background:var(--qlchart-hover)}.qlchart-modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;display:flex;align-items:center;justify-content:center}.qlchart-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--qlchart-modal-overlay, rgba(0, 0, 0, .6))}.qlchart-modal-overlay-enter-from{opacity:0}.qlchart-modal-overlay-enter-to,.qlchart-modal-overlay-leave-from{opacity:1}.qlchart-modal-overlay-leave-to{opacity:0}.qlchart-modal-panel{position:relative;z-index:1;background:var(--qlchart-toolbar-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-lg);box-shadow:var(--qlchart-shadow-lg);max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.qlchart-modal-content-enter-from{opacity:0;transform:scale(.95) translateY(-10px)}.qlchart-modal-content-enter-to,.qlchart-modal-content-leave-from{opacity:1;transform:scale(1) translateY(0)}.qlchart-modal-content-leave-to{opacity:0;transform:scale(.95) translateY(-10px)}.qlchart-modal-enter,.qlchart-modal-leave{transition:all var(--qlchart-transition)}.qlchart-modal-title{padding:var(--qlchart-space-lg) var(--qlchart-space-lg) var(--qlchart-space-md);font-size:var(--qlchart-text-md);font-weight:600;color:var(--qlchart-text);border-bottom:1px solid var(--qlchart-border)}.qlchart-input{width:100%;padding:var(--qlchart-space-md) var(--qlchart-space-lg);background:var(--qlchart-bg);border:1px solid var(--qlchart-border);border-radius:var(--qlchart-radius-sm);color:var(--qlchart-text);font-size:var(--qlchart-text-base);outline:none;transition:border-color var(--qlchart-transition)}.qlchart-input:focus{border-color:var(--qlchart-accent);box-shadow:0 0 0 2px var(--qlchart-focus)}.qlchart-input::placeholder{color:var(--qlchart-text-secondary)}.qlchart-btn,.qlchart-dvt-btn,.qlchart-dvt-sub-btn{transition:background var(--qlchart-transition),color var(--qlchart-transition),transform .1s ease,box-shadow var(--qlchart-transition)}.qlchart-dvt-btn:hover:not(.active),.qlchart-dvt-sub-btn:hover:not(.active){transform:translateY(-1px)}.qlchart-drawing-property-panel::-webkit-scrollbar,.qlchart-fib-levels-editor::-webkit-scrollbar{width:4px}.qlchart-drawing-property-panel::-webkit-scrollbar-track,.qlchart-fib-levels-editor::-webkit-scrollbar-track{background:transparent}.qlchart-drawing-property-panel::-webkit-scrollbar-thumb,.qlchart-fib-levels-editor::-webkit-scrollbar-thumb{background:var(--qlchart-border);border-radius:2px}.qlchart-drawing-property-panel::-webkit-scrollbar-thumb:hover,.qlchart-fib-levels-editor::-webkit-scrollbar-thumb:hover{background:var(--qlchart-text-secondary)}.qlchart-replay-controller{display:flex;align-items:center;gap:8px;height:48px;padding:0 12px;background:#1e1e28e6;border-top:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.qlchart-replay-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:4px;background:#ffffff1a;color:#e0e0e0;cursor:pointer;font-size:14px;transition:background .15s}.qlchart-replay-btn:hover{background:#fff3}.qlchart-replay-btn-primary.playing{background:#26a69a4d}.qlchart-replay-progress{display:flex;align-items:center;gap:8px;flex:1;min-width:120px}.qlchart-replay-progress-text{font-size:12px;color:#aaa;white-space:nowrap;min-width:60px;text-align:right}.qlchart-replay-speed{display:flex;align-items:center;gap:6px}.qlchart-replay-speed-label{font-size:12px;color:#aaa}.qlchart-replay-speed-value{font-size:12px;color:#e0e0e0;min-width:32px;text-align:center}.qlchart-replay-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:#fff3;outline:none;cursor:pointer}.qlchart-replay-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#26a69a;cursor:pointer}.qlchart-replay-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#26a69a;cursor:pointer;border:none}
@@ -0,0 +1,35 @@
1
+ # IndicatorDataProcessor
2
+
3
+ 解析后端返回的 `ChartDataResponse` 为可渲染的指标序列数据。
4
+
5
+ ## 概述
6
+
7
+ 前端不需要知道指标算法,只需通过 `IndicatorDataProcessor.parse()` 将二维数组数据按 `dataIndex` 映射解析。
8
+
9
+ ## API
10
+
11
+ ```typescript
12
+ import { IndicatorDataProcessor } from '@quantlife/qlchart'
13
+
14
+ const parsed = IndicatorDataProcessor.parse(response)
15
+ // parsed.candlestick — K线数据
16
+ // parsed.volume — 成交量数据
17
+ // parsed.overlayIndicators — 主图叠加指标
18
+ // parsed.paneIndicators — 副图指标
19
+ ```
20
+
21
+ ## 数据格式
22
+
23
+ ```typescript
24
+ interface ChartDataResponse {
25
+ timestamps: number[] // 毫秒时间戳
26
+ data: number[][] // 二维数组,每行一个时间点的所有值
27
+ indicators: IndicatorMeta[] // 指标元信息
28
+ ohlcIndex: { open, high, low, close, volume } // OHLC列索引
29
+ }
30
+ ```
31
+
32
+ ## 向后兼容
33
+
34
+ 通过 `IndicatorDataProcessor.isV2Format(response)` 判断数据格式版本。
35
+ 旧格式(`CandlestickRawData[]`)仍通过 `transformCandlestickData` 处理。
@@ -0,0 +1 @@
1
+ TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
@@ -0,0 +1 @@
1
+ window.hierarchyData = "eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzytWsqqurQUAmx4Kpg=="
@@ -0,0 +1,43 @@
1
+ :root {
2
+ --light-hl-0: #800000;
3
+ --dark-hl-0: #808080;
4
+ --light-hl-1: #267F99;
5
+ --dark-hl-1: #4EC9B0;
6
+ --light-hl-2: #000000;
7
+ --dark-hl-2: #D4D4D4;
8
+ --light-code-background: #FFFFFF;
9
+ --dark-code-background: #1E1E1E;
10
+ }
11
+
12
+ @media (prefers-color-scheme: light) { :root {
13
+ --hl-0: var(--light-hl-0);
14
+ --hl-1: var(--light-hl-1);
15
+ --hl-2: var(--light-hl-2);
16
+ --code-background: var(--light-code-background);
17
+ } }
18
+
19
+ @media (prefers-color-scheme: dark) { :root {
20
+ --hl-0: var(--dark-hl-0);
21
+ --hl-1: var(--dark-hl-1);
22
+ --hl-2: var(--dark-hl-2);
23
+ --code-background: var(--dark-code-background);
24
+ } }
25
+
26
+ :root[data-theme='light'] {
27
+ --hl-0: var(--light-hl-0);
28
+ --hl-1: var(--light-hl-1);
29
+ --hl-2: var(--light-hl-2);
30
+ --code-background: var(--light-code-background);
31
+ }
32
+
33
+ :root[data-theme='dark'] {
34
+ --hl-0: var(--dark-hl-0);
35
+ --hl-1: var(--dark-hl-1);
36
+ --hl-2: var(--dark-hl-2);
37
+ --code-background: var(--dark-code-background);
38
+ }
39
+
40
+ .hl-0 { color: var(--hl-0); }
41
+ .hl-1 { color: var(--hl-1); }
42
+ .hl-2 { color: var(--hl-2); }
43
+ pre, code { background: var(--code-background); }
@@ -0,0 +1,18 @@
1
+ (function() {
2
+ addIcons();
3
+ function addIcons() {
4
+ if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons);
5
+ const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg"));
6
+ svg.innerHTML = `<g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g><g id="icon-alertNote" class="tsd-no-select"><path fill="var(--color-alert-note)" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g><g id="icon-alertTip" class="tsd-no-select"><path fill="var(--color-alert-tip)" d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></g><g id="icon-alertImportant" class="tsd-no-select"><path fill="var(--color-alert-important)" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertWarning" class="tsd-no-select"><path fill="var(--color-alert-warning)" d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertCaution" class="tsd-no-select"><path fill="var(--color-alert-caution)" d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g>`;
7
+ svg.style.display = "none";
8
+ if (location.protocol === "file:") updateUseElements();
9
+ }
10
+
11
+ function updateUseElements() {
12
+ document.querySelectorAll("use").forEach(el => {
13
+ if (el.getAttribute("href").includes("#icon-")) {
14
+ el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#"));
15
+ }
16
+ });
17
+ }
18
+ })()
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"><g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g><g id="icon-alertNote" class="tsd-no-select"><path fill="var(--color-alert-note)" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g><g id="icon-alertTip" class="tsd-no-select"><path fill="var(--color-alert-tip)" d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></g><g id="icon-alertImportant" class="tsd-no-select"><path fill="var(--color-alert-important)" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertWarning" class="tsd-no-select"><path fill="var(--color-alert-warning)" d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertCaution" class="tsd-no-select"><path fill="var(--color-alert-caution)" d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g></svg>
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"};
3
+ "use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var l=r.charAt(o),c=o-a;if(l.match(t.tokenizer.separator)||o==i){if(c>0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
4
+ `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,l=0,c=0,d=0;c<s&&d<o;)a=r[c],l=i[d],a<l?c+=2:a>l?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",c="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,m=new RegExp(a),p=new RegExp(c),L=new RegExp(l),v=new RegExp(d),b=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,O=new RegExp("([^aeiouylsz])\\1$"),q=new RegExp("^"+s+i+"[^aeiouwxy]$"),F=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,N=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,z=/^(.+?)(s|t)(ion)$/,Q=/^(.+?)e$/,W=/ll$/,U=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=function(u){var g,P,T,h,x,_,R;if(u.length<3)return u;if(T=u.substr(0,1),T=="y"&&(u=T.toUpperCase()+u.substr(1)),h=b,x=f,h.test(u)?u=u.replace(h,"$1$2"):x.test(u)&&(u=u.replace(x,"$1$2")),h=y,x=S,h.test(u)){var E=h.exec(u);h=m,h.test(E[1])&&(h=w,u=u.replace(h,""))}else if(x.test(u)){var E=x.exec(u);g=E[1],x=v,x.test(g)&&(u=g,x=k,_=O,R=q,x.test(u)?u=u+"e":_.test(u)?(h=w,u=u.replace(h,"")):R.test(u)&&(u=u+"e"))}if(h=F,h.test(u)){var E=h.exec(u);g=E[1],u=g+"i"}if(h=j,h.test(u)){var E=h.exec(u);g=E[1],P=E[2],h=m,h.test(g)&&(u=g+e[P])}if(h=$,h.test(u)){var E=h.exec(u);g=E[1],P=E[2],h=m,h.test(g)&&(u=g+n[P])}if(h=N,x=z,h.test(u)){var E=h.exec(u);g=E[1],h=p,h.test(g)&&(u=g)}else if(x.test(u)){var E=x.exec(u);g=E[1]+E[2],x=p,x.test(g)&&(u=g)}if(h=Q,h.test(u)){var E=h.exec(u);g=E[1],h=p,x=L,_=U,(h.test(g)||x.test(g)&&!_.test(g))&&(u=g)}return h=W,x=p,h.test(u)&&x.test(u)&&(h=w,u=u.replace(h,"")),T=="y"&&(u=T.toLowerCase()+u.substr(1)),u};return function(M){return M.update(V)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var l=new t.TokenSet;l.final=a,n.edges[o]=l,n=l}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),l=a.length,c=0;c<o;c++)for(var d=s[c],m=0;m<l;m++){var p=a[m];if(p==d||d=="*"){var L=r.node.edges[p],v=r.qNode.edges[d],b=L.final&&v.final,f=void 0;p in r.output.edges?(f=r.output.edges[p],f.final=f.final||b):(f=new t.TokenSet,f.final=b,r.output.edges[p]=f),i.push({qNode:v,output:f,node:L})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(n,n);for(var l=0;l<n.clauses.length;l++){var c=n.clauses[l],d=null,m=t.Set.empty;c.usePipeline?d=this.pipeline.runString(c.term,{fields:c.fields}):d=[c.term];for(var p=0;p<d.length;p++){var L=d[p];c.term=L;var v=t.TokenSet.fromClause(c),b=this.tokenSet.intersect(v).toArray();if(b.length===0&&c.presence===t.Query.presence.REQUIRED){for(var f=0;f<c.fields.length;f++){var y=c.fields[f];o[y]=t.Set.empty}break}for(var S=0;S<b.length;S++)for(var w=b[S],k=this.invertedIndex[w],O=k._index,f=0;f<c.fields.length;f++){var y=c.fields[f],q=k[y],F=Object.keys(q),j=w+"/"+y,$=new t.Set(F);if(c.presence==t.Query.presence.REQUIRED&&(m=m.union($),o[y]===void 0&&(o[y]=t.Set.complete)),c.presence==t.Query.presence.PROHIBITED){a[y]===void 0&&(a[y]=t.Set.empty),a[y]=a[y].union($);continue}if(i[y].upsert(O,c.boost,function(Ae,He){return Ae+He}),!s[j]){for(var N=0;N<F.length;N++){var z=F[N],Q=new t.FieldRef(z,y),W=q[z],U;(U=r[Q])===void 0?r[Q]=new t.MatchData(w,y,W):U.add(w,y,W)}s[j]=!0}}}if(c.presence===t.Query.presence.REQUIRED)for(var f=0;f<c.fields.length;f++){var y=c.fields[f];o[y]=o[y].intersect(m)}}for(var V=t.Set.complete,M=t.Set.empty,l=0;l<this.fields.length;l++){var y=this.fields[l];o[y]&&(V=V.intersect(o[y])),a[y]&&(M=M.union(a[y]))}var u=Object.keys(r),g=[],P=Object.create(null);if(n.isNegated()){u=Object.keys(this.fieldVectors);for(var l=0;l<u.length;l++){var Q=u[l],T=t.FieldRef.fromString(Q);r[Q]=new t.MatchData}}for(var l=0;l<u.length;l++){var T=t.FieldRef.fromString(u[l]),h=T.docRef;if(V.contains(h)&&!M.contains(h)){var x=this.fieldVectors[T],_=i[T.fieldName].similarity(x),R;if((R=P[h])!==void 0)R.score+=_,R.matchData.combine(r[T]);else{var E={ref:h,score:_,matchData:r[T]};P[h]=E,g.push(E)}}}return g.sort(function(Me,Re){return Re.score-Me.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var c=0;c<i.length;c++){var d=i[c],m=d[0],p=d[1];r[m]=new t.Vector(p)}for(var c=0;c<o.length;c++){var d=o[c],L=d[0],v=d[1];a.insert(L),s[L]=v}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=l,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],c=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(c),m=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[m]=p,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var L=0;L<d.length;L++){var v=d[L];if(p[v]==null&&(p[v]=0),p[v]+=1,this.invertedIndex[v]==null){var b=Object.create(null);b._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)b[i[f]]=Object.create(null);this.invertedIndex[v]=b}this.invertedIndex[v][o][r]==null&&(this.invertedIndex[v][o][r]=Object.create(null));for(var y=0;y<this.metadataWhitelist.length;y++){var S=this.metadataWhitelist[y],w=v.metadata[S];this.invertedIndex[v][o][r][S]==null&&(this.invertedIndex[v][o][r][S]=[]),this.invertedIndex[v][o][r][S].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var c=l[s];r[c]=r[c]/i[c]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,l=this.fieldLengths[o],c=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),p=m.length,L=this._fields[a].boost||1,v=this._documents[o.docRef].boost||1,b=0;b<p;b++){var f=m[b],y=d[f],S=this.invertedIndex[f]._index,w,k,O;i[f]===void 0?(w=t.idf(this.invertedIndex[f],this.documentCount),i[f]=w):w=i[f],k=w*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+y),k*=L,k*=v,O=Math.round(k*1e3)/1e3,c.insert(S,O)}e[o]=c}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var c=0;c<l.length;c++){var d=l[c];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function A(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await A(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;o<s.length;o++){let a=s[o],l=r.data.rows[Number(a.ref)],c=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(c*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=c}if(s.length===0){let o=document.createElement("li");o.classList.add("no-results");let a=document.createElement("span");a.textContent="No results found",o.appendChild(a),e.appendChild(o)}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=r.data.rows[Number(s[o].ref)],c=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${l.kind}"></use></svg>`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`<span class="parent">
5
+ ${ye(l.parent,i)}.</span>${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Je(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`<b>${ne(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,be=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(be?"is-mobile":"not-mobile");be&&"ontouchstart"in document.documentElement&&(Xe=!0,H="touchstart",Ee="touchmove",B="touchend");document.addEventListener(H,t=>{ie=!0,D=!1;let e=H=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=H=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
6
+ `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await A(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',ke(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',"&quot;");r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${i}"><use href="#icon-${t.kind}"></use></svg>`}r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',"&quot;");r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${i}"><use href="#icon-folder"></use></svg>`,r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await A(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(_e(e,i,n))}function _e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=_e(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='<use href="#icon-chevronDown"></use>',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var Oe=document.getElementById("tsd-theme");Oe&&Se(Oe);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})();
7
+ /*! Bundled license information:
8
+
9
+ lunr/lunr.js:
10
+ (**
11
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
12
+ * Copyright (C) 2020 Oliver Nightingale
13
+ * @license MIT
14
+ *)
15
+ (*!
16
+ * lunr.utils
17
+ * Copyright (C) 2020 Oliver Nightingale
18
+ *)
19
+ (*!
20
+ * lunr.Set
21
+ * Copyright (C) 2020 Oliver Nightingale
22
+ *)
23
+ (*!
24
+ * lunr.tokenizer
25
+ * Copyright (C) 2020 Oliver Nightingale
26
+ *)
27
+ (*!
28
+ * lunr.Pipeline
29
+ * Copyright (C) 2020 Oliver Nightingale
30
+ *)
31
+ (*!
32
+ * lunr.Vector
33
+ * Copyright (C) 2020 Oliver Nightingale
34
+ *)
35
+ (*!
36
+ * lunr.stemmer
37
+ * Copyright (C) 2020 Oliver Nightingale
38
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
39
+ *)
40
+ (*!
41
+ * lunr.stopWordFilter
42
+ * Copyright (C) 2020 Oliver Nightingale
43
+ *)
44
+ (*!
45
+ * lunr.trimmer
46
+ * Copyright (C) 2020 Oliver Nightingale
47
+ *)
48
+ (*!
49
+ * lunr.TokenSet
50
+ * Copyright (C) 2020 Oliver Nightingale
51
+ *)
52
+ (*!
53
+ * lunr.Index
54
+ * Copyright (C) 2020 Oliver Nightingale
55
+ *)
56
+ (*!
57
+ * lunr.Builder
58
+ * Copyright (C) 2020 Oliver Nightingale
59
+ *)
60
+ */
@@ -0,0 +1 @@
1
+ window.navigationData = "eJyV2V1z4jYUBuD/wnWm20272zZ3hJANsxBc22mn0+lkhH0ADUaikpws0+l/79jYWJKlI/U25/WDLcv6yp//TBR8U5O7yWxPhJq/AVOTm8mJqP3kbgKsPsoPQ+W7vTpWk5vJgbJycvfzvzfXqxespAVRXOTnE9iAUfQbGQgK0gUMFf/V7V2uCCM7EMP1RUWkhO4ZuqppfLzVlQeiiBfRiqghyDtlu2lJTsrJGPUIKQEhqVTACvBqWgYT29fofUC9iilPvKr4+4ywsgKpaHG4vKAx6Ali9rWzpMBKEK7bHEUw72tFGaRwqsh5LGlFzFjx4tC8/AzEG3W9BCsQsq4PgIJ2ClPXbyAqcr5eMhbtBKYlhAFCGeWQ4+1sWhEzUiCVokdomvcRoBxDdgLX2IH7eqtWxIysEABM7rl6UbQaM2Ydldrf8raQUcacfA9Hf0PrVUzRPtOmKQeIMgViS4pmHDUzJnf76bObS8l7jNjFULQZxx9rVijK2QpYnQh+km7YGQ3iXUPNBBAF61NzMeK70sGfCKqxUAp/1yBVQgQ5IpwRi0DliTMJmHdJBKlMEYU4bTmItN032GR6CiUFl3JPqPB3SD2BUd3Mu+JlXYG/H45jEai/5fQABj1RqfhOkKP3QY0EStmzuJ90JTH6Oo3MONvSnRO1MlFc87sJp/pi1iVeY9Eo+nU4k3E0bCmjTe8NwNdcFNvMsZW/azpykWzTa2AbQi+pKBKbIuxQFOj/gsxIFJaTXUQr9imM1Fac2Jg2jmHokpx5rbJ3qoo9CP+dOnIoSxl4X0pfxIB+WYx83GYkhMUMF44cxiaEigXbcqfVF3GgWQ17gUsxBFTIA2l1lBl2gBhmpzDy12U7tyKckYigLj3Q30PHsQg0MMqNUrFk6hnhrAzO5ZxXG4J8lGYEw/qNzmV+dWJmJAbL6o0sBN3Ao3vqceRwlh24d9C4VnGiGfZmnCnBqwobz5zJMO2fGrQ6xrSLTeSr0OooQ49wT0RoATmORaD+Z9QDGPQioVvtq1q4+4YZCWDGOhib+zzZ/8Pj9+yIBvD2heKoFsGw9ojtqf06ta26Op/647euZhnf//LTx0+3mvMIqtjrn+yF6P4cuvoyvq54CTYwVELGiogDqFwAK21EK4WUttkSARKUrWilkHL/sljmi+fXxfPDYjbN12k2YG9EULKpQH4Yp0z3B52cTfP5l3X6x+tyej9fOj0rgmAlEQf7IQdnqCLEQzr9ffH85TVfr913YwQQqKK7vfLfjFZGkNU0/TrPX5N0ns1z5+2YCYRKposUg/Q69r7s457B2nZ/dZwJmeDnHzWwaM90vCvOAXUGEdgYflygEUCgHahm6eC/MyMQhuT9eUYU7Lg4I5qWiiITQbmgKkD2KYQ0d6suzkzEUDlxNpxeR5h2l9b8WyqDCgrjrHywRiEENDdoLs1MINSRnJZ00/xuzte1kC7MzuBc86Yu2SXdeDgjg3AJCMpLrNnMBEIZWwaXZATCkLd36fUIRvA3WrpfohVBsW5z4Ga6IgLYS2SXY2cQzliLuiwjEIBSwnbopzMKIaAShMktF0fvOeXg+rIxvHHGh+JGMob+jVf1EYLuEEPQuluau6S+FnF5prhwvmcjEID6A/XszAqfpWdwLjh92pkoDntQPYJj2tGinzNDOOg5gTE85AzG5vr9rf/mtAROtatzD9LWApf3u1D/reiREfbXfyxH+LU="
@@ -0,0 +1 @@
1
+ window.searchData = "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";