From 5c3be7118647da961422bdfd6a4c7e29ebdc99c9 Mon Sep 17 00:00:00 2001 From: wintsa <770775984@qq.com> Date: Thu, 7 May 2026 18:07:37 +0800 Subject: [PATCH] 1 --- .../console-2026-05-07T01-42-43-218Z.log | 27 + .../console-2026-05-07T02-28-20-118Z.log | 30 + .../console-2026-05-07T07-18-02-154Z.log | 5 + .../page-2026-05-07T07-18-03-376Z.yml | 59 ++ 1.png | Bin 62548 -> 0 bytes chart-after-icons.png | Bin 69542 -> 0 bytes chart-ag-native.png | Bin 70133 -> 0 bytes chart-before.png | Bin 70418 -> 0 bytes chart-controls-top.png | Bin 73775 -> 0 bytes chart-native-fixed.png | Bin 69893 -> 0 bytes chart-native-zoom-clicked.png | Bin 71656 -> 0 bytes chart-tools-fixed.png | Bin 74671 -> 0 bytes chart-tools.png | Bin 72496 -> 0 bytes chart-zoomed.png | Bin 74536 -> 0 bytes index.html | 2 +- left-toolbar-after.png | Bin 76355 -> 0 bytes left-toolbar-before.png | Bin 76307 -> 0 bytes left-toolbar-reset-last-final.png | Bin 76314 -> 0 bytes left-toolbar-reset-last-fixed.png | Bin 76183 -> 0 bytes left-toolbar-reset-last.png | Bin 76183 -> 0 bytes metric-vertical-button.png | Bin 75755 -> 0 bytes src/App.tsx | 619 ++++++++++++++++-- src/main.tsx | 36 +- src/styles.css | 189 +++++- vite-dev.log | 34 + zbChart/assets/index-BBo2g0gG.js | 42 ++ zbChart/assets/index-hvfQ0T_3.css | 1 + zbChart/index.html | 13 + 28 files changed, 1002 insertions(+), 55 deletions(-) create mode 100644 .playwright-mcp/console-2026-05-07T02-28-20-118Z.log create mode 100644 .playwright-mcp/console-2026-05-07T07-18-02-154Z.log create mode 100644 .playwright-mcp/page-2026-05-07T07-18-03-376Z.yml delete mode 100644 1.png delete mode 100644 chart-after-icons.png delete mode 100644 chart-ag-native.png delete mode 100644 chart-before.png delete mode 100644 chart-controls-top.png delete mode 100644 chart-native-fixed.png delete mode 100644 chart-native-zoom-clicked.png delete mode 100644 chart-tools-fixed.png delete mode 100644 chart-tools.png delete mode 100644 chart-zoomed.png delete mode 100644 left-toolbar-after.png delete mode 100644 left-toolbar-before.png delete mode 100644 left-toolbar-reset-last-final.png delete mode 100644 left-toolbar-reset-last-fixed.png delete mode 100644 left-toolbar-reset-last.png delete mode 100644 metric-vertical-button.png create mode 100644 zbChart/assets/index-BBo2g0gG.js create mode 100644 zbChart/assets/index-hvfQ0T_3.css create mode 100644 zbChart/index.html diff --git a/.playwright-mcp/console-2026-05-07T01-42-43-218Z.log b/.playwright-mcp/console-2026-05-07T01-42-43-218Z.log index 7298485..22bf460 100644 --- a/.playwright-mcp/console-2026-05-07T01-42-43-218Z.log +++ b/.playwright-mcp/console-2026-05-07T01-42-43-218Z.log @@ -21,3 +21,30 @@ [ 807915ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 [ 809704ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 [ 809719ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1130928ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 1131032ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1131104ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1131280ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1135080ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1159795ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 1159877ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1159909ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1160035ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1161960ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1217476ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 1217588ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1217664ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1217706ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1221050ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1222400ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 1222501ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1222577ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1222714ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1251951ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1481087ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1606956ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1609277ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1610697ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2630632ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2682900ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2683117ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 diff --git a/.playwright-mcp/console-2026-05-07T02-28-20-118Z.log b/.playwright-mcp/console-2026-05-07T02-28-20-118Z.log new file mode 100644 index 0000000..0ce97e5 --- /dev/null +++ b/.playwright-mcp/console-2026-05-07T02-28-20-118Z.log @@ -0,0 +1,30 @@ +[ 2749778ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2749924ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2949730ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 2949812ms] Error: Target container is not a DOM element. + at exports.createRoot (http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20110:17) + at http://localhost:5174/src/main.tsx?t=1778123649466:8:1 +[ 2963427ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 2963551ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2963676ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 2963871ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 3837344ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 3837478ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 3837562ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 3837717ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4034117ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4034271ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4870001ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4870144ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4901299ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 4901407ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4901477ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4901535ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4911798ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://localhost:5174/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 4911890ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4911967ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 4912020ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 5117456ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 5117598ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 5342970ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 5443217ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://localhost:5174/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 diff --git a/.playwright-mcp/console-2026-05-07T07-18-02-154Z.log b/.playwright-mcp/console-2026-05-07T07-18-02-154Z.log new file mode 100644 index 0000000..fb27704 --- /dev/null +++ b/.playwright-mcp/console-2026-05-07T07-18-02-154Z.log @@ -0,0 +1,5 @@ +[ 773ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=2852bbef:20102 +[ 893ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1181ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1214ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"statistic-select"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=2852bbef:834 +[ 1220ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5173/favicon.ico:0 diff --git a/.playwright-mcp/page-2026-05-07T07-18-03-376Z.yml b/.playwright-mcp/page-2026-05-07T07-18-03-376Z.yml new file mode 100644 index 0000000..6c68a7a --- /dev/null +++ b/.playwright-mcp/page-2026-05-07T07-18-03-376Z.yml @@ -0,0 +1,59 @@ +- main [ref=e3]: + - generic: + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - generic: 众为数字化管理平台 + - region "年度费用模板" [ref=e4]: + - region "年度总费用图表" [ref=e5]: + - generic [ref=e6]: + - button "纵坐标:造价(元)" [ref=e8] [cursor=pointer]: 造价(元) + - generic [ref=e9]: 请选择右侧分类项 + - button "全屏(F11)" [ref=e10] [cursor=pointer] + - generic [ref=e12]: + - figure "图表,共有0个系列": + - generic [ref=e13]: + - img "interactive chart": + - generic: + - img + - img + - region [ref=e14] + - toolbar "标注" [ref=e15]: + - button "均" [disabled] [ref=e16]: + - generic: 均 + - button "Line Tool" [disabled] [ref=e17] + - button "Text Tool" [disabled] [ref=e18] + - button "Shape Tool" [disabled] [ref=e19] + - button "Fibonacci Tool" [disabled] [ref=e20] + - button "Clear annotations" [disabled] [ref=e21] + - status: + - generic: 没有数据显示 + - toolbar "缩放" [ref=e22]: + - button "缩小" [disabled] [ref=e23] + - button "放大" [ref=e24] [cursor=pointer] + - button "左移" [disabled] [ref=e25] + - button "右移" [disabled] [ref=e26] + - button "重置" [disabled] [ref=e27] + - complementary "选择内容" [ref=e28]: + - tablist "选择内容切换项" [ref=e29]: + - tab "自然地理区位" [selected] [ref=e30] [cursor=pointer] + - tab "设施类别" [ref=e31] [cursor=pointer] + - tab "建设阶段" [ref=e32] [cursor=pointer] + - tab "规划形式" [ref=e33] [cursor=pointer] + - generic [ref=e34]: + - generic [ref=e35]: 自然地理区位 + - generic [ref=e36]: 加载中 \ No newline at end of file diff --git a/1.png b/1.png deleted file mode 100644 index cf107e6dcd6a96efdf4a097fe02d2002b3bbd681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62548 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 V9*>`i*FOb}+v>Wvid3z`{sZ*fw*CMB diff --git a/chart-after-icons.png b/chart-after-icons.png deleted file mode 100644 index 5076322140f41d1c5e0236ff161865251b582d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69542 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

Bkw<9r8kTei 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 N22WQ%mvv4FO#sZt{PF+* diff --git a/chart-ag-native.png b/chart-ag-native.png deleted file mode 100644 index a7121aa06397439396cf413299232a9307791d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70133 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 F_+Oiv82A7H diff --git a/chart-before.png b/chart-before.png deleted file mode 100644 index 58e80db1fb0c14eb577800e34e6f0a9ade850981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70418 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ĐNv{CM_OYkwL&Q+-uTN}6I1K?WhI6xEopek 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 diff --git a/chart-native-fixed.png b/chart-native-fixed.png deleted file mode 100644 index 45b5bb4491090dd37960a1eeefe0127cc60f1af7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69893 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 txBqWjdQ7hVa^w}$~= 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%0D;OSR>W}3jJ7_ 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 E-vp$^vH$=8 diff --git a/chart-tools-fixed.png b/chart-tools-fixed.png deleted file mode 100644 index 009d8c1b3a55109abe707dd1ecfbdc9961304f15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74671 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 diff --git a/chart-tools.png b/chart-tools.png deleted file mode 100644 index 1df293263e9318d1852834f6b5bb64f523bd7b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72496 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ýlx|$Yb~Ad9&Ubr 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 diff --git a/chart-zoomed.png b/chart-zoomed.png deleted file mode 100644 index a03098272729244e348be3d097f51f9d01c7d681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74536 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 YxL1$c(&3Ie>}k@|G1jiRcK6YL08=F)ApigX diff --git a/index.html b/index.html index ccbc682..4ed0f49 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ AG Chart Service -

+
diff --git a/left-toolbar-after.png b/left-toolbar-after.png deleted file mode 100644 index 57c0f6ce1234f116ff16606e44ef57a76d7f77b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76355 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 diff --git a/left-toolbar-before.png b/left-toolbar-before.png deleted file mode 100644 index 356719eb5d45c7662d857ae7ee14ff4c6c4ecd9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76307 zcmbq)WmHsA7xo}3B1$L?G7?I6ON`P;Nr!~e-61uj(kl0Nx+e{bJuvhF>?Tuo!Ye}g$Wn%mB%>M)#goUA&c7jPxt{i##znvIUKQ+$eBj9oNoVAiG{HWDQB+*}aRfef48-5`= z+&dk_|LJf{9580!hU6L{YwCM8vL0JWY5cmMis zvtmoi4o59ee-M%;O_+Qp@U@OGUblP>p>= z6kL{!(K7@279@ofAJMie3v7=h%H(#7*2I?ov5qm25Y?kgER4CV(^R(i>~o|$9%ZLl z=mx{11}+L9V;6eQiRi%D;bHZnY1&deqiN4^qXZDD>1qr988>{Sm2(_ezjl9Wh000Y zy$p+c|7NzIv<9!8?6fox;)@E)AtV|-9dm)`#%2x85udB~Tb3c2*91|Yn4u@@Fs|fF zkdnIQqoK*&+H zJ7uGL4fPkpxbMhdsCsVTw?`9C=@sghE<3+}qtqpxK#4~jQ9}(_x->z2wpf;^7%b<1 z3S#*>W8`v(3Pu*{P7j<^>+cUgI9CNl&_BbaiER%$qtZx#S8j}d(8jSbGw3@JDZ%Nm z@D8KkwNqzD5L{@B+kxf^Du7Btulxvh%5J2xVb)6@C5mVMc`JbDZV0mYs)jw0+=$T{ z3yLtAUG+mETJgx)2E9F}=e1E@eOI-5psXe)vW8NxtttfVns#9U8@B*;0~v4hVMfCi zFP_9i3!Wyx2Ocu%3H}q@!jz@RP$j3iyKRQ?&%drU`*MZ}#@>{{@ND8*y!L>guXnEA z1mAI8-&Q3*EOs-|zVa8x9WA#l`{A_VHSKQj(L)AS?hSJ8w-sM^`n7xHHsTR_TF|#O zJ~kacGa35z)oG;=1fi$=F}LB%7-me`k;M8|?y&r#^d?4n06?(60Q^#Q1ix2!nz|bM zZ>HxX$vFZt@_S&+dT|-4-iue_P|d$?Iq!EPtEy%S<;kDwMGby-{VYH&|1MQ)o`Dlj zdBK{$hfV4@P5oIYpd-Y4#CoaVpx(=ANIDvKNef#+O}Xr3Cv_QIk|jYJ#!B{piwNhd z`X|&jNf@2*Vi|RR6NABIby21n9m0g9+Y+1X8D{LS>SO2DOYZ7bRgAA9vvm{lgdo%- z-{EMwp2mRUnfyO?jjf@+wPLC4UCOmKp*=Wac~**aw7OgC&h0nhx~IRj_GBUk7MS*{ z1pTECyb9PN0+>#1-)M6l58m@SPOe$glfF`S0QH{gzQ+Z$4dXtQnU+&`GJboa5Pe&3 z>Omfw^dtGj9+<08cQ-O$I{6dvcRU=7=eIE*kKc+Va>$>UVt>hgSDxzKz1%c8FFaLY`qT3S$fc$M=5VD)|b_nPVtS9=@jDWy7LG7BYmj~L0 z@B|0&$?OeX{cSn{=jGor&+&84mUm#alZ|ZOQKOrUK`cOqs35t5ZL8>9*&8J(aZVR& zUk&J^l(;a@fi(LB9GvUH5!=!_6KbMKc0^IbK?LCxK6q{D)LHfYS_l4(P$=^`9&SnH zxTeUb3jf~qpTjk1Ez7hA0KwOMNZVbjDLp~293JS=fx%;6*~l`A>%1y9g?iqGf+CdP z-^!hv+$v|MQA6Flv>v|XVKU)~YeypK;cG}LW*2-6jDV0_^*UVFCjOv0J%nBkY2S?D zfsac-#}u>meX>VJr|VGka}dI8bU_q68ii8fyxq}mI%jO%5EdZ|U~D}?^gX{G%5FV~ z^%>kUS}#M~61?!atb!_Kgs!0dKwmbSz3;E`McCD-F$@|{&k3xUD}^bz%`bvU1?P%mi9Vd)|T`x z7ieO`BgVhiW_9cYmfK=&>>p599XhqcA)M5zi59nMec>QeqgR_SF{f-1@F63|%Io)M z&=eX`sGgD&=J`Ed_IL2{@Do7(COZi3ay#03ngwlKmWCphqMA-8`{EMNtYysudj!7I zVGv~3bEv2DgFm`Pw5XMCvK6aiZQ6hGP>alKH;AF(Fz!6r zhuMTwQ0bTNiwKoT*gJw4GjPk0$y(m}*<+e3=C^SN2WI|r$e)yP^j1>F(VLl+wHa^V z!k{{u{6a8|kwe~)*`bT2Tn1K~Ql;dihu=crA)S(i{33f%J17*tj9lXL#OEjL8cTtv zbgeA)E?U7+@M$L$ggh;L=00qDRYIZ-;+vG{mEyXi81l0ak!L0H;)Y9QjUVjwGYd&P^}wzT$(#E7q2N$|D4DeRHA zWnz4S3$WpuxJ9n(S86F#;15DM)Q1B_JjeO08f@59EAZ^E;fM;gw+d>l{XJ_U@@95U zvuNhSYiaJp9HUa%*I$~h@Gcc~kJiyeuFYBZo?Zb~dxW4PvrBSe{?V4zugyKR9=lf$ zBpvGnC`qz)v1gAWgR*iv1!Z{#_xmcX9`N10?Uk;piqUf*Cb*ujmjKsuq#}VFG?Ru<}YXiy+^O!b>ySB!noO)>B+#lVO^sUr=UCZ zAm5bQ6;`_E_zVi+NguW|xatM~kDr%DETqNke_r z$MssUhOZk!)2)AH`)UvPqx()eyZtaxO}X70yia9xHNJxCQ;*DALGp7VGwmu-*DV{j zM1Ik`p{mkp6r0?=@cERxH(t z_YoLjV~A28{n9g8Pk4Xzp`y2XRLr)-=`R5<1}nv$79d?pZYt;5oCUmbT=uV2&7Rv_ z)e$;ZVbD0`I&kOwEj7grbZvveYp9IumwUad>JWU~Vn1Io*?M|)>rWv8|215V>pl|T z7@Mb;Sxc2iiexa?6^5IH8M1%O?cY?G&^4(RCwJv$Wq7K9C8{R#vBO}lmH}=DSnuWI zmGRk~0d*rpS6Is^CuAiiYE>T-f%M;EklE^H^U*K}6^*`R1RWH@PB~!{kjkByo^^YC`YgglX0HxCyB7uv&Zw%hvy4A^sb<=#!7k`@Mq^NuC7haZ^ zB%N3I!gi0%g*mI_1dFikB;K(-uVms-h{FOba@`@Rn!u}Q7LuG2t)6i%43Mfr{n0aJ zI2G&J!))Sy;>=sjv2@fHHmAipaWmaAbp{p^R&RyQtDazg+LuJOOp1qaa-jP@Z)3J*}A3Wsy{RxBn+J?Pn644uVSCFQ^m3CJuuk0b)r%%wD9<%7hbCG+7(O?2vq{xlY zj*um~8u$hFv0r(xZ4}+ELT|Bo(hG!~7eNNl$8JW5*~9uRntP6#BNj(Hf8W)N>PJM< z(D2&%+$g!HtVyR9f=iZGC$Ftqc-x;YouNQN^m?-;6gVcmNk~2jH(qpOI;EEOHG7Du z6ElH}%_M)kyD0mhl}pPjA|=8t?6w^zEf3#(iLv3TaOrGdzC`y}b@DF^+AF8Wy@m&+ zITS@1tHvqLxJ|Rhnx^4F*Bu%Yw(YC{W;_Zm%#jaSScL4RRZ%f$xg}gBzh8eWW8qiR-3a)}C{PnK7UTdIv+FJAp9Z;UXmH+-N&$-@i*H=h zmjC9FV2Qk*S4~^dF1e_Hu-*80i&Led+(qilty<)ww5fj$J-!EU#MXbbL;;J``20uB zV^6ETKs?0EJ0P5X_WE6^&EAM5mHUw_NAj?RD843&Q6#*piHS2}X18{?hTt@487TxB zedbi-BKgZGZ~wZ~Y~a_<2)H1YtowwPJ|^Gt?L9I=450hXzKj@ih$i#7s48_6TG{Yi zX*#GDyb5>l-mvQ}3lO}Wv3~&8;h(z|I)_7!Z6Iqv$Z}%SDSa83uyrJ@$dm>nBvY5%`eQ&8Ael{NchmFZor6Svy#0LbLD3hU%Q2MPnf4Z*) z*gJUQ*i0rm?rPy(1*fjd;;e$Y>RPYPtK~ z;QAGoI4fDIcc5QE>dvQKE96iTl_cw1Os4B7c~dT(^}N8{q^ECYP?H*HPydGFg>g0T zEGf@v`)BVPX%sn0P_?&ykz2Nm*#X}W1u(;Px)An6!%CMr@Nl7E;VfZembyBRy4Bn> z<7Eey(03yoz;CPG7pKY%BQ&>0H}lZfz^ee*oXCC=g5vtRb=Py{rUrO5aCBWiCVFJY zsC?-?D2R@LUZ@}~Z^)vcJ|l^!D%qC(?eTn6+ukxNx$MhH6y#u99jU%@o2}AxI$d{r z+1Q772q6`IS~b597e6AAC1}0fi%P_8L3p>Own-b~m~|{(m>OC!x{%;EJnwf(J6fCy zx6Y}`nuEa%4>`kiUK_w{4*Y|It#%iB(qtutn%)R=>_jaJ{Q}G7r_6nrHhSJl_X*i! z(JV0t9`K|b*$a!_zV|hC9s7FVb(klQGNTvMb4E|%o#>(-sG0 z%&^ydBnx>Nw+Ljv-?Y_xo3Hd49fdwT5|`_fJn~vfT|vF-Ex0tgxoACI*z$$%Y+O7d-dK-f92v1{V?3wo;l>eb$jaV^JuP& zun%~tW3?B|RebZ{5%c=C2$+N~t&YfqZt^;e2B19st2#s{W4wi*J2s}#e4eF4eW5gA zz~2NUtin@pL-===^Sn|^m0G6DRQ#OcMfOnHgAKYTn%Ti|h1O=0wIFIfy2WV(ENF(I zW}IH$M{sf1dNA<4qkFOZYj^Y%QR+p;`(X>X#3z9#0Kvg| z!eYi=99ZL+I%s3e;Fm^arM~Hub?ZKPe#KH+gRDurda^TV?1v$ha3iu+*%J9(KP$4f zS|%%R=Vh++ell*|99+ovr?L&YR2gRXnq>hQd>AhP=1rfI;Xw#kRtZ3iVa#$%{%Q}%`NvAcAqZf z2M0e-MzidrUV2@=Q-7xc8lZcpL*V%M!v+q(@v+a_pl#Gz7SEQF+Xq?i%;jqBn6L^l zAfO%R_-ZX-p2F?g^Q5g?Nq@7VO2Vr381%yGn&MH{X=A zl49y1szrV?y=U;_fK6?p9o4e2@-_02r~Rfv?>Je_+#JjE^j~}K;JjW7KWxzC4Ubd< zb|(HE(?D?%IvMkVw=J`3C|{|UsGP6RPi#X16N_%5iZ(8vc6kughP<+k9(hD6SIj-R0ivrXQ()USH7bZ()C-cuG4` z*Ttzm&@@yR^mXCg^wN)BNN@`5Sq!cqk})~zveETp|ItH92E577)9&f` zcBQ@?tV2%fpkDs-_Jt?(e`dv9-*XB0hkpESfXNzOyJsEf`1ALC(3C=b<)7I20#Z#Q zeh_v!Cm^}ua{l>a3sq3&j#o)ZScf~qAIpu!?OKuh61FR~DgFV&p2^Y;x-S%M(z)S& zHqrWq6ZZl6|0=O{bkHzB*_i3R@Bb`t3gKjWKpNjvRbOQ&tMuCLY{$xd%9ot9R_!ihoxFSx{{- zkf^>*VG@fZ5D*5J#O>Mc%QmKGG8?PsMjN&3@8t=I&((2U3?^FD_vUx`TJ~wPf0UJ~ zPrO!8n$=i1sbE5Fu%FAQ-ph$sAw`mZ8%7pyC9^l+3(# zrEk%Jaqtfs4hwp*)ohmDAEHj0*y_Zt=yW%{<~3M5P|sl-&3&Y6EYN{3)TE@2+r)r0 z0gzP5S)Y`lX=aI>5J~lst0mjB!TF{nmZRb7Jy<)R3i^V2kc)nUbAfq9Oyu zYywU#)9FG*>(q2t#Z_Ts_0YWbSYUQQG71eVJ5?I#2fYsC< zabgF83z(x%+^F#@&*;aqG#Xx9!WP+jnk?_Pta4^Jm@RxnlHL2W2*CmdDb~3Ufk#Fr zjm<`e<*#iw1wShRt~dZfc5IwmCk?yEp7ZPrqAOQ_!#`xaun#SK>@o{huO@$`Tfb(} z$ti}jLQi+;V+q6gvVm;AX`lrm>cPZoYP74@isi$DMDZY{_2}TN1M#+!e`R3~hOMD7 z-57bN0~;SxPSfHU95$yiy(+1`OZoS>-j$UMj>xocG-q_Bm z)PzlyzTurJsy$YCkl1@xYfuso2PTfd?>{X9tZLLdjoDdVS{X?7sJ@ow5ag~WIKruU zOayr!a-k5Z`sg}JkTf~(DGo$NwdtcfUtt3`cq)}LITTZDFf)xNlXYsju*vnq#kp~! z-L~v~juQuHWB0$SVskJoX$-GsWeV!b0sz2w&0gL2|= zluTC4*|@QUSW&C9m?fNc;_g|}8T+;j?0DtssM?+$PcGknestv%P11pL6~D<-o#Wmx zO+Q%o+;oYBs-JFHCxvpFKm9RonL+Rc)~d|aXRCus?}4S6pQe@x@vq|svzUZd1O|XO z(~1SR+&OFV43X+b+2>&o+4|?^1i>#{a+WIjE7-P#3px*Tm*8)cM-hA6w(lNC`F~PU zFAFS}eaSl5xqt=u{rn}SIrcS7)+0TaE-}1cdhNLZ?L7x;w@c@wHBw!0)*K{-T||(7 zh6*-ana#%fct`y<2UxAZV3tM>1y&X6UBCpT4Kyi|;h7hMc-?vDZe6AVi4+*Y+#G3W ziY)8w-EV)H&spO(9G^N(>bU;wX4@C8q#KmlS4UZ=?lS(lKVID@*J@wP=Fw9x#J)LH zF_zq_d#%d;*IBW$fEz;hYr?Bf7<3cvWGzk)_q_)557s>|Hi2W!a11M~ny*a?qaf@V( zx$gEaZ{i{(Jw@LKtme(zH&b64XG9iGn;6=vosIBCP)f}D0vqAF&xlyQ5VQOk`cNWK z2;GvV&C_VLDvbZ!O_$0NkMD6QQlDgfKdjGE-j8Hqby4=^fszL7BdrT2zh9n&kX^lgYvE)O7=4_rYVUF5WPj#I zQBi1EP|yUDI!ZiekLb!Pgjg@NqD*xUakuECt^giX{|uy>R9hIATRCKhx_qyn!YHdg zTTaq?Fk7Od?@LfP?e|LYG(EoqchYy|!Y{&7;Dxd@UBaexhtSA0_E)Mu`(p*F_Ofw< z0rYP-hsZ6I_He3yI1r#@P(MxfqUSQF88)t&BjkmMqV_p#l(DtQNbeQ9WXd!Bt@3ml zu3+I?c6i92H$S38c!0ea@y{gPT!G406;RGCJ~blM&mO1~e2pHa3N8K`rm!O0RqcV^ z>-ljGpDJ;kJx2kzzNq-BeWr93VMa`|>@}q~XikV3UQ{M}p*b0-gyh3tCorRn^d+Ww zI^a(OZm^1&vmLC11$uGty*l5E0b{iZgY+vTM(*PU1(p`m;5M4ainZ(J(|J2j0|18- zcj0E$I9R%V74}`@eF1Oh>P?qNYUN|!Vq?&irl#~DkJ!n%5KF7Z+spkgv!KB+#b@9z z6C{APh|0o4`Ivs@4_h(OHS;C8(23jT-83fNo=Mjcp_+rr)7URI>~0N)7g8I4!(rz0 zQxW{70vE+m2&Nt{tzv^md~b}(G~-6#6^6RCbA!ICM-mjEbQ0vx zQZ2T#8IXSXM)&gcK;-XM@#-^1AvuE8CdoU{NJcz7FeI?o@`l_rIoyQU+qw2<=J0Jb zIpJXSr-7|r%Qp(DbB_V}oW}C?avkzeFBT|4(6?Xao*x=_zQyq-hgK|=mGJmisg|%R zRY~vKvgS?7q}Al93m|M_vY52&UnI z{%Ga7Cum@R@OwHK8W&P5XVt1lWr70;^q!hB0}I^_yJErN)CjwvR)xw(eOEEQzz=W72WBg$oV4xT6xj zAd4KTK(0@J3l3O-u-T}+v5`?>=)|nuRt~jfm}-VfGos*FaHOLs_!x_W=ikm$k+i&p z@N^K*2aPYD`mo=2V}k@Npxx@ix)*+61-_)K5Bm5jTZ`HQjT&1^C+4lV6B}w52U%!E6n^TyY*v!Py)V1;zPS;!#@>>!YfH$+ zl~1jmoJ3lyzuFUfKsk2M6D&Ymw;wJyAT8I?E2C0lqdR0nuZ!I6y_HA0#{xIsL927r zIJxo!%sH>*qG%)}-4e7&gGrb4@$YoO&@BomG@DZ{4o7twA!AQOI91z?d8TSwX1p=v zhv3j9vwMP+OIk&m7QP9PNn5^9!-h$$>Q|F@R!M9`%q zgqgbBq!S#`n?<;sZSytlSoPR8mi85kQoy5pvtRrP5oH;&*ePE12d2;C0FH?>@$Yy+ zfYmc8**{`%bvqabBC$xb$ZoFT2tzvvAvmXpZW_%DP#VMP?41wiULKWTNtZ$V@1Jf`1xSl`1e>^BE$}?bx&B>nYwj*bx_|jj=^5D2$gh)I)dK#Nc3?XVH=9SJE*mhw>P&kuh6jTg zZej6*hk&te!*H2&+#uiJ{mM&#Bi_FR3d7_vv;TmdNhk8ggwxn6Fj)|=XiV;Y_Y^=` zmmySP5$y*6EXw@LU@)XAK$b7y_tIGPziD8sM*UwMF@xa$S0F}Y(7$Z=PDYyKf1kuW zOMAC8{vBI)#ruE9SC>csaUYBW3I7B1cbESk#D=$Je&*6#LJSD4_3ebn#mQ-r;%;3! zQ2j@&J(2&RN$5pB=EhOuk>?%l=uWqbcY$bJpFQ-+!Km*@Q0t8u6pnzbYFa)u zf})BcD2Lkv-i+Jupq2Au5SkHvIU(k)-F$k2LY3X7lwEfl-Q*JZ9Ag77K99;^+|M!6 z7uAYJL9Rsx&CA2$P*onHw+^kVSa-xc$E}bQ1X=(~0*prC5P&!Qw8f1|X3IQ>ZGhhU z6(E$fk>d&qVX%dtx^$}oS(t3y#sfhFSWBB$Ggo}KJE8Tm80*+y0MS2h;bp#OC-%oH znYVvjEN=G1uPBUev%K$Ed~GitVxebh?%k^2x$UaYm!6_!t-X_D)w5h+Ga^cStNzZ; ztN4C-zL>L0`^V+xk-3w){Ly1b$E5my)O`1^ZbjU*QD3FvJLA4G6GXO_{NQ>8gnxdw zR2&)qt*+xKpT)`N&!Sbn$RH!2$nZL!e)u}m9n%fqLF2lEVdH(V2Cvm6vW2#wRm8WR zL%;FrV(zVu1U$ibd7Jw2rfiW1%^7E7tJJ@B>mg)%$KA{L4)xiZKwpL8Z2i-8BoOoW zMdwJsV(#+CJqQYh1FT?d-KHn|?_JC+?YY%C3GgYsFUNFkaN7*l_*)w%vc0>p;c4r5 z#F!xuU72=pzJ63VUr#x-RaL>`gd$>_T3{3_C?%dhqH{Q#46(rHy zij(2Do453j+N8I<_z5#MWHZGENyB*ZO^mdoIQQJ&)&dXp9Z)DFsJZSc?Ru>AZr?e? ze{@;*tiPd@-lAt^5rS!4zD#@3U|yrIxw`?EoTXqPph?;vM05Rv${@iaF2mfQqQ+#B?>g#eMMMR+?P|055UFgn{wRcr zOx~TY8VJ)8&LFe(J{j{+0y-m|_G527S+;+{dbpk_I^q=8_#Si?S!~|G$DwzN{_t6n zwu95iVY1qXm=%#W_&=)B>C=4;)f_`+*k*0p!U&x4HCK^N0GlgrE2VVxcTF{40 z+JPo=He_n-%6xtTIg~?nI|w*kxJTc=1023B^R+z3IY0i(*-#f}DR8$XdEof}?DcsI z9yNRiSnWTd@R}~Vla;PEvGg!mSN5eZm)h1s;*o|5nS>0Jqd@@}}Kj~c97X9whkrB6D! zgjgm!xqHqA6wPksQ}T=-pQT5^HD_7vP@!0v8jqE|c%O8kpRbObHsWCVx0;+jddPXi zzj*Mq@gZif|Kcog4Ofawq@WjN4~;wdFz=&N4U}(hD4mrGq(-koexCk5OU}L0?_pzm zB9sj)g*3q$dEvFS!oCbK1u0Apb4zgLM_K(lxJTi+sq zlJj3x;*aux7&zkgG%`%hFfpZ^9RGC^7xkx2LOdHLnKLWS#3{4+w zorH9UOJT^H=_eq-4R|I>4IY-^w0G019CV6E)2OOv|WoR0+`WuEc?n}iu%&v=~@f$ zi?6ls34~=aW{))Ta)7fQ*@&+TcQcC8)8AR&g8&m89VviW1T*u7Pn`@$9z+CswbCdu z1iO|Q$L^O3dZCii=Hv%S{!!S4`wtf-1`g!|^A;;9Z* zO~JEAPT(VTr1=xy+xnrcS1$_99kbC)_Z)GyOS}&xi~M^YT^_y3(=B-d<*XeH8(HAa zBUZS3anTrD{`-qh(h^0?dm207)iLbc&E`g9E^>0*>z2gEswgGC()@jlaLVCujGZQ0 zH4?%~8sn;|86@t*P>i)<2Id(7^$3SejZLwNBq>25x@^zDe0Uaco>u^mP$+oz6v2YB z$Y@3AQ#UTq+Tn-{#}uTEKBE-g%3}To9pZeY?Xxyz)jB&Hb}3yO zv}XC6s_8H@o@R-ahK)CHxpjN(Mg;HQ!MRbnQO9-1lsuqDAO`f#3xJ)D_WAUG>JO{>>lm&f3r@13Da#6H%Iv8o(l)wfc%QJ8duS zone&3I>ax7{62+%53%KrRw&#Te3YHQdV$&RB-X^2m!vQ??kcw7`g4$fz)1O)oGr() z;pWZnz`Q4z<$?8bb;Y?$)hkc|b-S4lqr`0TT+J2Y?9k{2t=B`*vNjq=exB<5f7(O` z0@$3n1qNlTI^<_5dmmK285mSUQk7@@aGeCJIL^49t3|;gk^TI5r}@nQYx0|qkJ=3O zX2r*DCyr)0z4VZbP(gY}D&eBWa@9V6hjFV}1GXryqib7m&3?9z14mty<`TZYltIl3 z5lAbbN&-LiEI=Qk6G>gXUZwDW4g=za5SXyBc(6ZK>#IK$(|PI5=NCZ{m95G@Q0de2 zrJ8A{p~@~dkgzm1_>~#a#d(l1N@%UB{v~%vpDoerHm|9g87U+bu%8>=a6a%P8@e4>?XzPsq@GY@P=*8DhayZ6Q+D!!-%25~nM`8p}$5orGCKjmxze==PYll8uh#tkNnc@j+d-DvB^> zyuG*}vPbRN3rq?fq&~A&R3{t1g@J?Syc8-=FVn||T}eYCS z2%#6dex0Vb_v4bbD#x`!jrymT2HYW)Txhvcs@6h*6cC`|b&Lv&Yx zvIqvAUB;LiP>olVX!*S`dHo!^zOdgBl_Pk19-vl2_)J{)C37Jk>K=bO0_sk2fUBw42 zyXu2A`c8V?&)U7;NFQXTTCOBBadxIMA;KQgLx-!1lwI+?!#1fkQ5fea#e~D(to6(f zYDuoQ8{xuWy0r#=e=}hba6wua6V0A^&W>@0jQVwvxiy4jvY?CKnaE9s0KD|c#XtT4 zHRSb@dvriTra^oT=##;wFUop9ifFU5UYlTj52)8KBmueQC5b`y5XcX7&1c2&O-zHc zpUV3iO@wDJW4KDG!A7QVvGL;BbR!(OLC+3~aqzpBqo+KS4Gj|uLAROGP$5y4IC+}A z^%6`@wUhYZY%^SqEHw8CQPLxr@2-jq*5E+C%YZn6vXs zZtbo0pFI@W%i}Ij8a8e&?bI14=fnlr2U=;dc1A_wJApriFn3qu9+E%0gcc{Zu7zbB zrwBG3PTyaB-5uVoRHcV6oji9CGO0@JUcK8%s-B8{;a;~at5#mR=PhBDY*=En{Cd9I zJnR968+~5MV`AyU9_Bf+*3LNNrR2{bwc+h8Vlypn68O-^vE3GSF80;yHkB_hgHAL) z)g37gE$it!kFVs*%g(+sq);ZSNVq_G@rP$Wwb($CD1w|W{(yh&B2JKpKS;a3UvD9N z!QeOB0wd-w{iPK&{Wp&aH0DxGYn@t>Uc~^FI(0*^$pNe8!b`i+uTQ!1DwQ;uLCLXJ zPOfxJZFT`)(aduZTj=iA8(j33(G8xF^Vv|WE)n31MC2tdyP*4+8-G{apfPt%Jidz& ze^Of2hk#vdFwcH%(uL;@Qx{6wJ!0GEz59-P^BLZ#_(-CB1(U$!##mp&o}JX<__KR0 z(A9h19=S${u~Xd#vSR3AO4J|-~MI{aY z<8Jnssnp9As_6!bj=-t0Wu%U!y4YA2TSsME+&-nm`v{fKw?a>pU@BBboor2gwifiZ zlGw*PsO2}%WzPH7&CtgdHAeoT#gCk`!@_I2QW|J}4GnhpYs^kr88OrSt=1^!|z*;w3bTQ;{uy6^HybA79L zQeetfi^g6uJpnK^WxzRPO9pp^$wMB6R91iT6}!|l0}iF;m9mpiRFy0w{B`(1S-<=w z!JoZMy;9+tqFznCv#{J#U>tCmSXwl%F z!j_t8z&v<*rP!ccVDDi8>5Gc~VFL3JzC!T18L?(Cn2k^@9AoMK5fqpw*eYoSl49Wd#sY`W(JcY!Jh`%Mle`c*v&U zVvi!2oCk8`(XofE8`6%P7zb{aIi_ObfDmt3({zXrLpn*)(HJ&Z24m0 ze=TtvC;!K~YqGV1v&6gy4VVdIFPtwWF)t%_T$h2>J><`v1j&Kzyfz6nQ0}0fOI_ix zX)k_~Kd=@c_4*V(X7@1fEM|HJ-6n`NZC|f-C_R{R0-c9K_`Ec)WFEAEl@dx}Th*)sLQuH)_0G z3;MS%DI7n4SMbGO3MllpemH2lCV5)kxjcna#Owx?_3f(a!dbD(h~SG1LD&9RV>&;y zZMJ3~Bo!8`?=(W*Pllx9l3Go|iiOgiUW-y3Xf_@y*`940vshf6kYU&Gyfa zLBVg1i^>~H_|N-`I=2@H6iuiD**x$CrGrdBu+ivYzfsA}6F}(!8Q1|u1+)bn%wI8z(bIF`YD&Les9p<` zT?hVh(rY=hHJW7^Ky3P)WhbrX8470p;1*j=O6) zY3i+N`&k{Fhcmt;wc{Rq%Au~+T^K@bIWQhM@2K-2A#qe2bt8}i7ZmAbt4EGhe6n^a ziSMtBUQsAw27#~!Ilpd?y+tuVv zatzy*x@O6@Vf+$iSsB*s?$&*HzAI9;HqI7yxi z50vqHcNZVY$*9M{OBb4vq}TMq)`*5Gm;LfAwply=F^0dh?>{Tqm8xuDzO?D7HuqVQ z%*;TWA+j^j!ROp!Bthx{Li?oz>F=IXJpObp_xBH$rsx@6g_F+9V}-O#BKZ_{0hg5z z3}dz65z%L2F@tY*gJNbIbSXQel=ZhwDNnB^cNkRnZ%}v|ELd$;LvYMbpaSSH62f)KxcNexmQH6UlyR*Ucn*7+@w=hZmTZ8ak{Q;dCrBt@l zV=Xdd$B(f>PH`jMe99r?^%<76u zz-f0)=(VgYWv?hFBBn*ptq41I$lOzItj^C_S8tiVMAeSpO&@>hQaxJfGjXhFi*sRZ z0ezD4JNL|z0@{1A{J-svIak!-r`kT_hnJd3%qC6pAk5Q#Nxgr!=$)7BGT|5_$Heent?4%R_H-^0tO!R ziiq?IB$=L^^IozIpL~4c_}CC#%G``@`>szo5~!tiYKjy!Ev?3TJ~wQ#KFi=y*Z&W& zHqKm~fz|rbU48lZnTfv7*ws<*md8W;8Q3kp%Zy;Y^vxfcz1=Z241AyhJVHpao$|o= zYA>?qi`%|s0vz@7XuL`Y8ajnu55~!!3kA}?-VCqBVD9IwFL!!@RW3PB8$rLsW{P3s z(%?P?%a4e?_d(8#Xc?9-(XY~uo@l81#*R;Fuy=@!q{ocjU8aN7>P zefU%G?i0kR!Zsnc!A@Hteq?Y6qWxp}i931S%B#=3WZBUbe;ipzD{qRterAGdh=!iY zdg?inrKrf#LFF5*XW4}@jDoTmPnNVI!5F9NATuWNEZg^q@QAi#%N=BW$Qnu`X-drbIKzu9oNeb1DW#d!~fdSjPN=y zY*{Z979MOe{YWAKOFOGim#I`wMCphRqJD1Y`%K;+4fNh9_@r$RWeP5NTaZT?Jl}I= zoY1#EELYsbh1c&Ggz3#3o2o`*2n0iNC_P7D%RO82WmI2Ad`OavyTO6rB#T3F>ddLF zN>8D+Vp>Rxu2Q3#XNC6Tj#FcS(%H_b?_PDEE`Hb*Y5pI=&N3jX_G|Z;sHi9?NX|n@ z3)0P~q)12$2q@hp9WyH3BHbd=C7r{dbjQ#`N_Pwc3{z+0^Zw6!&UrtauY=p!v+sS! zTI>2<3)I{CJ(OD9@)wEKwmZ2_DUHeDBJNWVE43_Z#4D9jT?gwZAkw<$#9k#=@8RuM z38TwvD4X9Ed+4GpLD$FJbUr3}7k@I-a>6q8V7;%oUzBp;i@n{8pH4mRPi0t9mlhw? zw>Sv*O&2t_Imo@dzxGaJ#c!+(-`*edHjT}X1*we|E#``JHq9?GQOUr{B3IhvqO%rX zPL@gjE`PX7swMkademO`h7iLiNuX}~@d-j_TSl3>YK7L!y#R45LoW}to1f^LXn7jn zwDikGR*xTvM0r=#?%l4?Kz6=Z(Vwjj(F2&4cKAxtjq7X(9%}Y2jLlb8#O~|)Th3(m zSkwZP{~QH!cuw2)x-*$)G=l-9IqaBz_x58*HCe*>V8JJQW`aiPqy+8*z32X;b8T)B z!$1awSao~h;7|;+WHd^YR4c@Gs-zn?M?&KGddl0J*=1^I3WM%_&F|!1742u6*Ieye zJztCJK9R~94lH-)z3rLi=!32VImp%O;M2892kxatGd_0x9OzLq!P{`6!Sr8|z-%^< z-cm_-l-y<>rKfk3dLrOGU9fv@3$JC z^#864v`GrgMGB=jBt*SwNosJPD;gf#cQ)Bp;1NhKBXxd->m)^*oWb0g{v>6leS}&k zp_6wXvKIw-)K#6+IEYEFIKLc;QgC+wCyO-*^-&}1f@;Sghp~koQ}#Ln4&$kBEc>f{ zton+xBoN7O1np;{RIs>&5m`Ys;9>C4^!5JX0JFWWzDgphQmQANh7$Yn2mevQl(WG_ z$Y|w9Sz}(dMM~#HB!3#4DS5Yat**EDbS(=y_7YD;00?RbzT@7@O!1a3UPb;Vv? zp=r}YnR8@9Y@7$_EVj*~j&n=IzH|}2&Gbswn4+xsBx-xR^XXbOtxav%X;+IzV)$FR z`1lVrwxnaBIcO5ch)HSs88i$>I7-17K{by&@cgNe8Sjb6oS4z#!Jj|g{0P}jfoyC> zYvK`v?_O4MvFd3U);G+Usp98!Ios}!+Nm1c2+}ZhubVDnteyOi1LkV!ruR_$=}Ir? zD1S5qnvcL<7Aw71t4U9)Ob4fjYjc$1gz`p8Zkr9Af4if|$R5!^jw2l>kA9<59^(9( zLYEGw#Z6ssR_Hx&fyxtSJ2ko##Z+aTOn8gx^F z+V9u8-?=AYfEbmYp)n52eaXmHF2#BJ)d5XdqUmXI zG&59Y-X4XH6IN^(noQpGGRsV`DA67N)}>ugCdvdgQ`8;IpJ2l9u(?&;wBr*6bbMOTu^`NM^i7IK+P_y zQJLLLLvhr}QcKpg2-o~&w+CJPr)01WOVT2kK^(5oQ|1o*#eG%F4>tHePRZPYR1!uG z>TmD3SB+V<;Gq0GX+st}>FzlW{(rcewm*cCthe&v=Ffo;RYuy((*jDcar@2_J-gWE z1Vl=C-w{85T?9%TmM_{hK!-esC}bcS25NBAD~=8GgG>eW3h6k!sYt$jyv#uG^RStD z&?+AB8}sd$<8(EDOy-Z%)y} zy*SwUE`@m67JPnz)SohZE|ci(STNA&dvlv9j>f`EtBT%W)qOx6WWR?S`L(c99b>d^jHB5BMm2yUPT< z+q8rakw(q)yy|{p4v2y)I9yw>@S)-Hs6I^fsZ8S*oN7sKLW$lA&%z~22A?%ytSwc8 z8$q^aMeH2>t4-9{b+LY_a1)JtfWG`91-A&5-EUMCzKF@TKNxxcep%`kADS)z`V?YQ zHnh2)p#NwBh{@8JUY_Un9CVsGiK+@$+gW(?NBDrcJUpcK<%?neB+PrjQir9I zWOL7XkC(tMB!Iy6jl+VVrP~hZjYgFDi)OIQ(0o0o<|QKK zUobb2d-4I5r7&}&$%j@{A(%95%s=asA>eHrneJ2Y8MsgX@K+bP$a`GC5ccO>AEW;e zwx|*Nd5GXfMCJS8y3Radcu&Up_$#wiIR=1h(5j$TyZVP~lIK2)*`=>04N^>4u0N73 zhbWhKk4kEJLLR@Plb9;IX~JFA(X)D$q@LwJp-7p^ew-NR`WSoBTWuxK;i-0)p6Q6>GPyh)-K zVzaG`YDm_7*svHob8-va7JuuS%1a7`rrL zc!>91=M>NPvnOt5ox6b1g76j8iOff0L5$ZPStb;&zDE3o1z~%g2yooBA)j;UG!+6V z*lp2duH@Q^&C!mP%x?CA@4iOsz6m~vcxIP{JA(VTt>;uiU9a22jcW+otlU*DF#DHm zYl_=-_fb7qK%mVNQH)QlAAXdWr)bwYSYTYNYQr7oooGKVS4E*^`cX1beV+&^-A{{1 znuCUjyb*EGxntil?c;MzG}=tA|9tVV@VUu@-{_ytHmTu(Gm{=)AQeCwT_Tu^xa^xQ zW-gSM{W{UocNKj%WG_>G_-Wop9! zlRM&r$G%i?B592OBEKTNxb*!n;DoJ+P0vCRYvKDLP`@fOq8%}b@3EE?QN4v|D9VT5 zfcxxT%;}abN%*gj)5(SasCyka%S7OeuH5gTxS;keOF511WHH7%7)_{@!Q>q+a|(T( zQj94ZA2_r_2!c+w*c?Fx*!u3m7399=-V8Sc%AQVB)!R+*W;3Ww3i*O>j^bD2U9kcU z_c^7w=1A@F+wI3ofkOvujEx#yMGiCO{HqPKmQ_Vrq;(DmtQ+_y5*ue)OH-~5Tafvc ztp&m8yzd1hmX@bd%{fKi`$G<*dw0CVzphqEQ*=RK0u-y6>YI|q?xlW=ooZ2Wqm|Cl z6vQ89$X?ZAWaEh)i8hryQ>TynBIv9}jW^=jn!WR-MI<(vynBDTZDNb=Fxpe*h|dIH zMO*_B9J0a}j#qpSyg{{w1;lGv_|0-6#sqRKy^k6)VP8AtGpfC|XfH40565%T=TX-p zW0>R8cy$qMQ`P?%!Af@g5_kQWrfPL~se05zR91YM*-4yFy-FD7aT}?DABoY*`^fWe zqcS%WoYc>MXcQ;BLfACB$UMnyGPbevZV`QDmHk$E5_^U3mZs>4ee9POEg?QRxn%Kz z;)iJ=wHzVnVws%%{JvbVlwOL@!UJgX3{(ARnkyu;BsmY4jw)p((?@)MyvO?AJ7?}N zWoL&Ma%pD7AXqZ93Th(rZqiamRuA+>=iJ$(iXDt7v{)E+&$t;9sKA=&cK-+mvC)o_ zN~2DL%f|nZ@4dg?cI|Vylh`#l&d!NArhb;Jx`apU>HGC|LHixE2^NG!d<v*;`|cg zw!c?MeCpH?m($e3P69xs^!%DwzWgv?=(Oxr%oiE1zrj;kXs zwRwStu%Z4{Mno)RrK^t_wl6+(M8s4;@jlQ`CU*~@UklwqDMhF7bsZwkdVKNv?8@yS zp>gFZjIpu=xQ~%JMPod=$CRs$~!*#ae!FK-F>)2pDInw1}e>Wk{59J zLUs$ih_YUlf-Ar1!`x1#J+4m4qK?Q>(*?j~mIw0)h*6Ehhv6v~i9?wuuA7Ykmaold zYsbjnXWg%8q>I~ec9qA!V5{I6DCeIG|M5+=ctQts{S}-4JVfM941$2GMI=U=BVpuM z=-%1`hr0)79C$Qa3ZtZpLBhmZtzF3#~U-f|bLoGz)KSYkjrYNnxfWgD}^ zbkC9@>l94h+T=bei0S!EL0Lo3;Hd%!Go~XR$C)-VvpsMJ{6{hV*HC5E+u;oVN>*CD zB4+htb^8clA<*bi`%h4IWR(!-Rq%`&tJkC?XrrtB>~YuYf_=V)^d|zsJiEJYF_iu_ zZm^;*bHsZgiqAC+hub$dg}hV&WaalQ8~P7RicRlZzg=Ja*OP2kcj4HG*h=&sD;@&l z3Pp*dYwH6um&89H^7J*{_U3byYv}Y%9DEUK)4SH%a2x|g9hRSCPH`1h)L_)Q%;#Cn zT74bc>86%t`#3t!W@b% zKtsF_wG!ZVdavZG{IsSYgkQd@9v7MQ2Jk;LKU+GHyoHWoG(PE1LEsl}EF-0jmUxPP zTHPLzX>CB~De4l2lE7Yl5g46(o&=NtOOee?qh?LaE{#Rnhqt)dH{GsG-{%s2vSXE$ zKE`_J)Ab_!63;eEhT>}GzP;q?d-dCWyv42`BwY6K(&h1 z_gaq<`FJhvw}_Ao7Axv*os6L*x2tvn*AXi^RJlAjq55sfQhZU4D-(85UYSpl%*PE8 z>l2&)#M*jQZ`ZT=pod?rXjf+-&oV&g|6U&adbPm`1Z&fk}rb4Y9&$rN12wWpSK#S+Ok#=GtZ?S z@^U^*Qe=1~_Z!b;rKQ+!LrHZP*PWEOIb!;pCxYhE$8FhGsQn`qol}47lO+Hj@Y|BF ztW*-Ymgd}bNV(eF8u@7P&(s78{FJ?JxL_iok|)Eei6KA3G4+!MV;)??Z@kRAGjNyC zK8F->&}v(+IR z1OUsx$aUX{ddIhN*K+*fWo>1?41oKxqJAGw&kRfMbJaQL9CBYHWXU$s<{d%6 z^v3sLKsI|Y1SiM1dS<4-w`9%wG41o&hracbeg7F)2aUNb?o2PSN-VkvkM{)J6qDy86aoo$x_BF+VFOvwDr#wp#|={ zvM1RNT>=p=>9tJLkr+Nw$^yDPI0rhtY*kD zu4(&bP}hJ6OEGeW+~obI))>7WdqHDyBL*SmCf0_DsfRss(b1W2gaLQrfRE6=`_yVO z5`zEg0|7OEk*8k)vEy_Mqo$ucc9f*r5G#OweaZUwt zrzEZNE@NeUO{yVc@{m2rXv;_E#u&idwA*=&F;_s{R8P;nX2?8~Et@}~szyCm-1vtz z7XVyFQ$;lEd#cuGZ~A2l+>aZyE}lF2M;a=>gCev$o*$^PP~5lR@|)UYrshvc7(}%h z2=oP8XqD#ND|eD5i%rlg?v26I<}-STZeD5C|CjXaNMpV`utmqQR>gjn+U>a zK91%4B&i+z)-%mf;qY#6HPtFx1&yuRRD&bLkGJMRiB+Szkg(AZoQLPoXzU1=(@a08 z;ws(oCCA5q*+3>-9k~Z_6E>i@5a)N|U-x9ubNM7vnyV6%Ssh?78OX49&=!|8>hj2* z2d6EWl5i84AonNu7)4mp2Ey$a=3Tz$7}H;8>k5ZWJMI}NF^&f?B80g49#6PAY*SxX zGLangH-?*RTQ{-xh(-8Fo<9z_(t!|CS37wWR zDDlZG40>%>(6nL-f>vO%vSiUu@Ai=Ar&ihm)CCp(;K=M4f~Ho=dSSCYC{7Eoa``fF z)BB|ulX@x0Nd%wwA_G$0fb()9PL&mZ8XnQmS7T7XGZ-k7>rqz6tQV#ysgyRg6ek&p z^_NQ-NQKHZgfzJ48?F*0zCXDd3i2@{|z&Iz}pZ&;! zJRl1(E>mk2@4|SUzW2wM)faM24CogqTfsMqGZqdU>L~peIZ6lhyVq4U0rP@T#}hm0 z46fg1Ik(><1r=10cL~pXzlSC;d+K^#d5*pRQSwS2jp(-M!pTV;49}oQPW)qXMgbr> zp236gO+W5ol&7=&H23zw5%I9JgY7 zjxiGkj>NU<(>}7zd5vv+X!y?Un3l^Q^RHeaZvLETITr?(#$T{M&ZIueV_8Itx|+-d z_Q}BR_B|S%8>g2Rt5Za@$#XG112426MA%$wjhc|xyV;db#iDiTS^KCdUxn>IOo3KH z%nEcAA}sR!lwUh?wr(cm!n4xOF?QTuiSPI*S~G6K(?qw;Opbr^;lF}Wd!BHtJP7;Z z;xYVCl_vH%T0sdq7bSGcgu6}aK52k^~js-I}C8n@0u!o zm(w)_44PoEn_B_y`(ItFeC|0?A%3)aGn07o;ymU{TJ&Vfw=o4cBPseISRO{@APt6q5vpZod&D9iTfyNrr3LH;XYE+A zJl0CB0Q}}_SlkO*@OO;Hq_lvCgJ_^5K|l6}+K9u|Mc&|##OvbJ-~B--kUVgYz%Zk7 z#`hTu^rXa~?|1>C)%zi^fM-kzg61UwBwVR#;Q2Sio}c~=t#a<9b-@Zj&l)4?$O?|= z55)UfySw*E#HjBbEZhL?LidU2EAbU@j63v6^av^712Bm049WNKFIXr2NX8P*BJg(w z?vUapqZypd(O!GGvsF}flG3l0)fB^GwOv#fP0b0UEf|^J`1gv85H@B-A$SwT3*e4j zYXY_zJFYT{^!*0}*soAOM#1EnmTjDf@9ZB)>~}PC;N!*$d|)%>@u+FAg80nNm2{Kt z1F-O*IA|9uM%*Tz>n-EVNj^%>(t#%9?gEhMzkLLZVOG+(hL{;&h3I`rl6sEWjqV2v zTCoGCKN!Xu*>;|WfHIroqubt@EwNYil&IVwNjFR;k>=d@>T<#lN-khRGKsh>d_&gh z2w{?W2Jrf$Yu=14%p}T;p{}%E`%X$1{Rb%(sx%q6hYy;9v4%H1(*!LtKWinn6E?xv zBqzV+G-5XhGnREWNjzy;m)>t`K}iC>4kWV}E{la@>(vj~DPS&AcTb%rzHZo@SO*FB zf>SM$kFUH{Ih%u;mixBR!M76@2(4F6q4V6vCj$#db$_paIDe*ueq-0N6Li|oI;eT+ zBiZl5Ji+Lp(cOA#_SMImPkpb||Gakq=G5#R$Ql&Cn0f)C(v{2`z>7tF+v07g%8uNb zlJ2Fq=79WlDjy%Kj?di3x5W7WBD+|-h$G;0MSxzOJ(QVB6_u%kyyLwOFkJE!71hc2 zNj?It4%BywTaKVmtW(SKk|GGhZE})ia`u}VAUW%oVTViO21q#W^D7|*TQUHP;N<`= zh~z(a0TG#rpo^Oc6P0dc1Ku0}Fa8%fPZx#jZHh`a`z*mWUu8!00+|Dn`ue}yyf+F6 z)_mOfd`bQV{D%Mcry^(^U;_ob<)1pPvfU3Wsky*qfz&wgNhib#PE1iOR`=FDDIDs( zAhBDo1p{S@*ph7tS4-RgUJy`X>>r2s)|NaDHRJ~weVH}K-}f3FA49~^{#GrG9G_3qy@#H67ewo_5}{$Gsx zBg2iem^%T5TP=E>e}CO~IUt%5>w+SIU-#z@xgN;6zi*EZ^!9HD4-(4%7mYS^^(py3 z@uDjv=|Q40ny~Du8yup20pB^!G=z|3Obrc`dVKgNd(V=Ye4+5xaTupl3TEr_W%Av0Uqb zNZ{gGy}dBF1wNiXI~Xh5ZvoWI?7*jhg~5M)d~g6jt)rxC7uYI^+TT0!EGC}(+Dn>8 z_CLm_V=e!$zlcf!MP`gOasGjc)x{M_ZMQewnm1L!*a_kRDD&{x3bzVBras|)0=%8+ zFi|jt$N_xkQe@-BKi0b+haA}S(BXcyX9_2-+axd^S*?=Q@k|r;#=*5 ziO*4XAZvd|&|j{XM9&>5h^yU=kNVK)FIHqb*YPs;6;-Tcd!Nanyt>!G#U^$hmUVnc z0IRQ=0yE6p3F3yxf{G-?UwmonLr2e6Fo#27cgNCl@?$Amz-=j4s!8@Y;X)Zd32(JJ zgPti8MgWmF296)}gv@rqLV?SseG%G2|IP}MNmsHfkoBDnj=4FxMeTfr#8pWs8CRuv z(r)9HTNAAT+YvM6adgj#$vC_JD7)W=Yz(n!vUzP&-FHURZ`TBP;=tSm&ag^do246?J8M3vG^l;sA}@#*r$TNUx4suu@d>^k7u zC|d8m0B@_duOCM}B42z1bF(h29S8N(H_UC~FJxSQIE{$Z#NSC5>&7c5AM;J3-zHvZ z|L>cFup!0Cct2Qap~#N&~c z(ES}MzKf?=H$HF;H;8GKT3K=LR?4gIPtU&p8>~1&p|TF8GM9VIGRD- z3;$QZ2h6zT0x-DfVj(9f+kbf-r&gK-WWEnnl++|2uCA)wGrhALbHz1t|B088@PO-Z zNAs78FGBX+r=NTit>ok&9na83lQOwOR!O&@S2*?OXqUSaEx&OYF8T{$#r+o zsSDpZHSvgDW(zY!>@e}$t|OK@$pgL*iyr(rzKHj&>K9LUu`%->_dSJW#7UoyBFAH) zIm7;Np;zMk2H0oKj@Mt6Z0(MqwIBFKL^frYNl5CTo1PbsSm$g71mFSgjzu-R!E36I2jZD(E6Xl^zX#? zxOJ*&qe)|VsQV*b?A`2)E+2iL;kU z0({{t#jO+-H^cDCd0N5U4N{CD%v^n6xAV$sitcLnSLrj+{3b{u(?I(0Iz}MmIj0$V z{?{mEF^u0L68&L8ESi4xrOYdJxwRLr6wHvULv|H`BEa`lbcPhe)RHy7v9K8m-D$&$ zeII$S4q9NkwR<+V(JjnE;NZ2ih?D}bmD_-Kqk9I8!ge}`XJ5F&I7i>n^avH3l{SLY z0hbWp!xI&f=Y)J7fB8O|#ofQn@Un&YpC-B-ooRQdDQuL8L~Vur9~J=R$2cU4`S#ba0kEWV2tw45Jndv=xF z*Sz6aYgd;K&+Tzr2QM?|x%_Ab9amUJG;bw7Bxb=+Hge#etEBKH_i{GRua!zN$5SD* z83fO!gzQw<4QT>hw@_~I}YUl9Kx({hh=qha3+=G zHzr$G*u6OaE2LLWL_Nm#JV1N63=w*^Z|>yxV`hIKUrG=gZ)NfK7???4YwyDgQ~~3k ze6V#NKG9S04SH9$J84!N!jY1MbiIe`VKg06ZABb5}Zq3RTsV*2MN6x?Ev4i!DR zgpu~$xONR7yladn0zmr7H=fsrAGsJG{{}&sw{%N& zv)_tPNexhC54B|BPR4uXHid@RYD>AmGfkr>u&cBK9v&UC{X*?myu}F~A>uZh8 zd9vLHI{5r27oaBoIA|0EhhD|#csY*1Xs;KFeO3MA23isz%V2umFi znZZ#S&g&m0&TSrcJkJ6SBkb>Zo>*q5gU5!;knU$+j|5GK&dA^4w>phd*Zoi(9ag@+ z1duB98K5j4wLX9SYG3P+l@+bUY5Kx+eSyw-}e9dp%3+=CZt@A+haL#oa`v7*&ZOlz;-021I&=B^9ar>P>)0A?cQ<~;6 zPjsiogQO!n%Z-$G6`DG^90@=m0&yiUu*|?^@q-YeV2m0XNB%7nw0Aj=&YqR5!GGiW z+zBKwM{2<81{Mfe6U}xX<#xPKfuUtdTWTHha|(01zXv@eNoO|Wp+VbD(<;6g%b-%! z@a%8$@vSyi>fo*_-O^JK4Pa!MJh8l;pcwtb+0jk^iBe@)VSO_Wy{+@aev1D{;GN-|iXF=;0sq0jLPNCv|!!i3Fj zvHZc6SnZub@1T_*G9_GJ|Mn`1Vx)H|5`PUbr$`Z!pv6Bi?R-2`702nr_2^F2xhrJA zLOC(9ibJ6qnlwFz$^nCC`Ej9nlDXA~ebGW0Nz-cFuaRh3R%M!9W0_+k!BUOUsXInB zU~}KxNMItjmbNBhNfX<(4@!VCqm#VVnZ@zk0tWENPd8J*VoG15HSbJx#G~R1=K;rC ziu?(k1%9ql+b2&VY;1Y1vZxyBlvZdY3Vu%=|0)Jr{~%$Y8{ZLMum1bFZ(y$w902ia z{mvURPGqYz>Wgvbq%*{W`P8nJ+|%q#kR$i{6;HTZVf9?#9&-=sxH98;P7!{_QijYZ z<~K&s2pN>x!y&Q5M2k6CShxhBuq3k*kpom@kg7r){7`k_^CL!*Xdoqq8oO)8+V_g) zaiji(?ir2KN}N%rysmIUm_Lux3usG=!Rf^MURV^0IqCCxe$6YsAQ-l+u21I2Xo-5^ zod5=Xk4?Gro$hLCl8lp~Bp~PYa-T0#&oqE$_O90Kyu0P2QWJ;B;HLVXQhjF{ z<6j&NWLKpo+=WZY0w4EPr`Pg2I9cMu^Wx7uX@EJxq@Q~WqEWh0nY>8DJ@}xR=eviI9=GNoUuR>{tI2P~cs zX$?q@eQq0?H!Ql*>zP#QE^>VuKWh1)}KbEmy3^8nv;eGE+gKfNv z4G8BEpV@s>>>o;I8xOk$6dssW*+pYsJr94*3sa(?S=5 ze`7i1_F~l?gm-=5Q+H;q3Wr90PJ}KW?y^HRno;ehYt#s`<>=969{s(eVh2Q zAo38gHo@cX8u?lP@P5Maalgly@{Vkrrz5MkeKB~H)yi4XXTh2e{p<-5-U>Fg^(%_a z&uKh`hHv!b%$&IlSZ!pSlpjp10TvyWNdj=)MW@^?$P85Ip%6wmz*XWUYp8eg{QN~G zaH5sRwlCVOcklpyr}NFi>D9$DOB`$BPltHM+|M2`UA5q0-`6t~nd%x|?Ox`RiF*m} zhai)a#qMIT@SFPmD4R9At$>;>2Ooiv$5%f%z!?pt<$9WDAz$ch=naje%ak63_&&JV zRj5n->%BC12K|d>`UFY-%bVkcsrRp$nT=Tc31-E)@lpqG5pHv_X0NR$602t~i|u&? zT!ij1=r9C99?L$sUc_y19{UqF#4P+z7ZBal-MdUEJ+M$6d>VWp3Z9!FS?>|`p9G&> zNQ>Ng&pr=fj`wkCM7mE%$D&;DOftnwHCcph)-vFAhUtIf{bqhB=*OHjw#fF$t0PnO zz|A8eSXusN4H>$uGnO*8DeC*wotXo_J-xe;w&#u#yh10N1lCvg*G*W#C~LGN77ybD zYOYql3eUeW-wJF)&Y$PqH>FMUH<`wya7I;rfAIoD_*;9k^^p2BOdnUu9LXvzWUTxYv~7DKd9iNxb=6U+cHiMXV% z4qv}ep{qAp9p(_XY8Fo0z%AbBIO2gK4A8VPsmFCOnm{)7{E%3gGcT?VFdn;b@_Bt> zKLDdDMZ8ddK3PDqfN^sR8w;-%sXnZ1y)u>@3Rx~N^^j7J@_(~$=DN!~hdqW=#8v;9 z{*1kxCXo`t{&rW)?AN8HGvwm}Ou`bhvy9hGUL>&al)$=me&|A0v6myS)mNX+5zG znLB{JxWOna>m)`OTxR3Yy{*Mo>CIL9@Fim6M~yD8YIIj=Tq)ru4bT*6YKat3%-lwB zg^N>2Wowb0nGnMH8h28#d%p96KKFY+@(!2 z=4F3u6t|COH+Wp!^0k8i^N$u2nr&-?x84)l^tL38mg4Q{?9b5bM4Q?qKPouBdlf!6;XxQ-)-Z8H(q$sxp3<8>XeQ@=;V z{rQ7^_#ro8)Ug_VxQLRmKV8b%_cqb-G&z{g+Jh3}V~EM*&ZY5(ByX2^ncw z)vvqT$Se+$d}zCulkED7*}XbvoR;#|;rO#?wZ{CL`LLlqgj?dmb@A%DG7$ z%0GT=an;EV9(8wjf6fn<>g#^{b3^2!PLzp0NKf(Fydw66JW~Lv!_C4sV9vq1rISzE zrS;x{Cwy#7`lY4Kqu;o8ukq58CZLg1*U}XL!zYhhQwqB6-*w8>+G3qoxGfS3=9E9UoId^V?7Jk6sap7ZBU0i#pOItt(RV1lW0`hB zC=W_eV?stKBpf{$u-c2!X1`hE=No}hgdU@+gxIN*$(Qk2L^$+(%j7Huz6PB#N8`C# zLCwU9zHl7)EIT0PJapYr^Bm&7I6dSyb3u>fd|ZHU?H}~;5sMW)Ww@~H&WU+6rRuI2 zkhW~SQuwq-8}8=>+C#CJEEcL1AGGI(y|7kUAc*as!sy07F# zT?lKE9R0tMx}21^OnVaMu#2C4mu0nlh@S+q3w(p~`_HEQ#)>WIW&($w9(DixEjIp- z&HSW+Bop(WWxt~C_d0O@=5bltD5L!ai~LkSWa+je<+@-jV{~}Yypx+~CjGI8yg;^t zbY*3~n61O5MU|;xiTHh1!#4tOR@KQ1Hxo%V1hf1Uxgk)FOZ9BV*R4eyk;6C4rpHDX z9-)R=$l-VfIGQu-_~puFl}H{Mxf}K za$+>dZ`>0SK)zr80Yuz#gv!9p4@8YIT$ioZ#6HxBvq_{Sm>Pbg6>0PcW_`(@6{nik zGHe?oU>OBC{pFc_thH6G_Zm(OT@EK?8;5EA{r&3;u? zrk@v3$b-GxdS0$jt7i^H*@6Ro?<_i%Ju*#Lh zm@^h(>-GAZUHjrjrPZKRIj*QMdog3hpF$}{6TEK9i{wDFtyC?WlxAyIWKw zb4Ur!>_ncmhu}enivdoUQ@9duvpS&-gysYh`3a<;b?6qmUq2sl2I+}7x|oxM^DN@3 z;sUCLH0$*JWEckjD#_u}M+9I;l`Fz@T9GYN@Nk-*(rA!8CMLB-U%NbCb8+~J$XQe=u@cpD$gDXq}j4`gRDUS z*v>KzaRR&YJ%<8zFWF?FltsqDQA+%)QWizz((;w*QT@hFd>4Vn-Spkjo#YbNq5w-Z|2z6sH@KXdNyU1s<#<_ym<(Cug6BJ zj^}t%_mo~A;f#&IyFCcsaMFE}&kiub61b-xOY4Q6MFRBEeds8K+;%RQ)KJ&H(@vD>eDn-I2Xtt#5vUt27(!^)fuSE@KD z^ffb+UQ2q>r!kp^SEJh|EwmYl`)SG_rx&rAYwmn0_RW8C0cdpbInYJAv9R7%;)~bm z)i0q_aUqY8wHndXuJ+rVq~~UGFDOT*?Qb26idI@a2xBDyn$l+_tJ}Ar!MHB|AM62H zcuW@jD7B3}M;#Ndo;t+)R(GpqU8+xUjkqNY#;!sMsOUc)|F>ozorEFcrr;1f6yro( zehfXP#ATV=&M5*7?)JUMf!_@c^xiku zF4m#5@Rc7cvs?Y@nmJ`TevGb+d4c&lH9?u;GalS2sbbmi&98)9Mca$S%10kLQw7pzK7{NKud$z0J4oJb*| z{45W?ZE~Jij;WkOwg5of3G`2V3wxh_ZrB&?8wOaZackdK@-27nFn>|Worj;h%z+^L4pO*K3ZCtN3Y)~!xi6}%p?G(~Zn^60Yc(t^ zF6daxgg0mtYipvK!poWaE&G@CWNDt(i}2m>r>h7q^MWnCGzTTMy6xIJ59L^X+b+tc zESz%NI2A3k{@!~wK-|3N?3{9<=Qt=Yv6Hm(*J8IvHE6_A*23peMN}udqu;lzl@xP5 z`_9?fd}qi8U3J{$IKE`y+>2Ne#DIyEQ0OTQs0Spxi(H+&4B1sB4($m-v80fli#=DP zyv6Cf40@pDM93W&g6uB#<`5RQ>^CMxk1Kf|Z)=0|ywysI?5I4l6~0eZJG!tu<~pu6 zh0u7Pvx$`~EV$;Fh(|ZAK8J0tB!N7Skg1KvL2gqT(OG#G_v>a{!P_lr2DcZ(nr&<+ zPmf4n|NKx9Wed~o&!5(R)a*6up?tp~tiqu@D$4Jf`gbYyG!NK*5-5KTTlL#S`9)cY zp>P0tNt!%AVuSysdfp%Z;LK_uISf*yt{9+e%bOhB!3q!ZL|q?07n-(axZ^Ey+XiS| z?GcSxse-+byD$z`RRl5I6-rx<@`2Hyt`n~$99e&-Vy}{>nYe{3HOLy&n{cedP zdaw@Im^#cBkY<&d9Bjs=gCv&49z5XqgPY>C3R^5t1KN77=`k9PlQW5t7stK)JbC44XSaTCjw&>i}w@gk5J@6irdRgG9l+&L#htTpJ? zrIW0=P!kLvyb-emCia%!`)JsK9w)fY#Z3B4pQmdtoZF=`X)i8)v`=H~q8j=Tvg=1u1_ViJC-y;QNtfN$$f+lD{z!qum?L=e@UM zmX%0R-<_w5JzTo|_^4{(r{yM;9;q9py%u7_&FlBat{P(hc3d|8fv<1UNv{BP>~R`v4mgGZQ_ogWzG{-pra|xxNb3UcltGid3}A}y$0>U4`CNg7AA&yPl2MRqchL_ z_}Bbt7GX*hY9av!_adZL&61aE-V;PhUC-Us!G1K`0q3kKjfXL^$v?+^u!*l9E`E4& zwADbvx#4Cm@a*GlVpPEd(qnzQk&VQvH)^nJ17Xd0^ViHE--+?O_c*57FLWrw=5h}}4Y~$F3ANcT3`2=bY<#p6BtnKN62p)&Zv)(NFUM)5{(U zmaBO%B`eINxpL(C(m=izTQ_-Vh%%e&!5~LxCMD|(j3CP&UE{Ne<7^U0Z@r#hoTVsUe>1kbkrO}gp!aYSL!)=R*Z`5x8@O4fP37m2*N(xfS0&Kjxn=stDRc}Wwi$~9~CJ5;2WFC@#aRVQeP`Kg^(LR>yN3ueMq>uhwE z4%85AW>IM<^)^kNl88UyXQUaZuF{&pc$6h%V^4zUAFrP@I$mB5ngQ96go{dpDUL6> zcb$5!azGkC0S1sMe*8W){l&q`VrBdjoyTfS)w9L{FSi0_Er&9SLEUea{Ms;2ByQQ= z$Y1KI=9CJXp-9JsWVKC{7O*`ik_Kz}-Rv@|E7#}AcGa#J1+MrP!x-VxGKX6wRTDJ2 z)-#MM`QqYVfwL#vjpoTMf{1put`VtFB4tMqB`f&))aT=iBrMT=vZ0l2z4P-ol>E@O zrwGUC_*Ge6wvi6-cXe5?&0Fd7lK`hvHRzO$vXaGSwa+NbLnYN-+gHcrU^aNiw{B_X z)5KVKSA|M)-%n{lJKHK;bMy2pC})wQPt@45bvz{cPnFp zlUZ*kgG?v)4>3)+RxCQB9$ayojw_u!(Nsh^=`bx@GC z4!#Bcl<=anmF)rv0du&_dj^bRtGkmCkoIE>^T$3BmvBX#?E^2MY+UqZGL#m~j8zmt z=;f}XZG*qM7$9c4PSCGe`-N#A-D_i26_bXwzVmZ~=b1F~Eph*;APFEUF+8!WYagyuNE8~UUP zs`1U^!OHQzlKmDGCzAA@c@Zvn&^`KBp555bXUqu3X)vyk6UorWA#ix8(_-7(M!>%w zYcO)-gpXRmFv!@XBgI6ngtBW8wuFe-=p zybyOh*FDa7$9!UMVYMKiy=a`0n^RpDcBYKwzUJz9wD$~(jeD)&u8{_ndr7S%WSl8B zx>2|2iD;P#{!x@a6TzACE* zH^m2v)}1d?am$WgRmG3+S=pvIQ` z3~js;nucGR;UNlB>BAq_dUs0RY)o#NTzF}`khBSN+(bM%uDq7ltv{h#;eVV%zs6eQ zS{pohkg8JUFrj(RtowM?BhHeqZCx?YagC~VnMz2T2 zat1o;hAtF{mU&t&OwlazwL4Szj;9z}eo?}yvcvQc1GKl27f!fq3$YmA>cH}brk{L1 zvu}`kG1cQ}Ce>qH#Yz;=U_A@T#7DJr)v$T8k7de|J9&GR_D0 z-Alb%UUD+HsEa;$crBXB_dqx-yuPw@P?&c$IzxKq;~l-omBGbZ-cxyOKrTkd+tZ4X z9HAhM=(0d@K! zh_P1Y>oL4zyKYl-BYx|;#WhIIIuOFB8-_Nplz~Im-Eck2qH|e9k$*;5bB9Fg2 zOi-84*0bDn@V5p|#WCb3cY5F5{RYX(k*BsP(O?=+w@biBGA0zE?G{I4DWJ8BQZP*L zHDp{>ws5sTesy1%_Iu_KV6#p2ax~&&?h$32EYDzx-%VJpH3)W5@rVU$V@$$1{r&F< z)PCQo&60iT!n!$p3|FCuHLj30sb|3cV1kFPCYZP+Epn{0jMH9a>iX1aEm>63&~M-T zNN-^OVP?R7LC2|KDqF1c9Z{QpUBhy=s@2Gm{@C_KH5m-=XjYabBZ`ggs@p{PNfjpC z%k)d*Ju02Q8zy%#BggGcSB##8h009*kX_+C9H62XVKN0(nI$WFvz2VX}cqyXiH~;Q!=y&h2TV$_yZ4EBMqAZNdTCEm$7z~z7#F07Wret!-Zq?t8pcYK`itg_=?(<3QO|Q zaS+C81C8)x=u4K*fO!|7UC+I1&3T}-|AQ5{auGR;^ji^s$Z}Koqu94tnps8`*iQjZ z-@EYZd~dg6%p|@_K=lMW#5J$ysAbkqDmNO~{L%Z;d?E9CSIDs@@rFz8p5Bq7oLJ1) zSkWX;9)sVs>+R+5fk!$KwI;|L*7w2@i!%%UF@jP9OM2W57k+3|jt=tm=Rx|iFX+bM z4#hnuo^kNm^fJiz>(O70K*_jPAaQDg(OPYRg>0+-xNU zOq}`VMbEduw?zd)wFYMyoYsy?nLIyK*k^FGY@!1{Ii@5&J{VF{!KzYL6I1g}qqqY?LRBH3jSp zJ`{`%j3WPz00@3!DUchHK#Su2m_K`E&I|}`D!lcd5QjaU`Mzr$(lxz9-}Pw2fQhc4 z{khQdgvcl4@W{vaKGpg(o6VXguvA`(2`+c;zy%dq2zp~Usr*W%K(JG`_#>b@69q(J zsV>$t5%ASDU-cj9lFZ&rS&h?VYK5eD@vI(bt84x3vCfU^r(h-OfvCdjhll_zp?hS_+-NK zEVgT1T(QqP?lTAu)c0gPdW?OF;hy6Gh9Ic-&;9mkQP){bRxDmr)@OFgVTvoIb|9*|`>UgQ^*4Fu@W?z&y2 z_bWMyeAhXRUOyqp_uNpfH0m9Bdb1+T9%pe&+d!gKWBa~#&Jl;H(A02Pz+@dO5Id0B z*Uf#$;El8}zb%;Z;>t1jkVL!N5rc)55uo<_o&v5(axxDu$ z07Ht*o$ET~)h=}lwG+q#YQ$DZ9nGErdQ!aZs!8TNMzb^K>s+FJGdksGmP1UwgPi_@ z%{&-h-#|#kjNTv{`^Sn5GnturF&1chqzGiByRaHddgUxObUINC|Pq7DzIc)Vy;hYC52`mya zp84_X8F^X*bIC1ib$kAbsWho3wf}UUh&XZe!Y6E}f%@uzlA2kp94xrRXyAU$y98utPp!GYiNq z0pqB}pn&=Iua-#7kqT_;{lK+w2Kp_$M)OJvqP4~ZJsgF1cT1riJ78SrHO^N zY7NmB1mR>k^)KVvfW1y+MeVZ*HdC%A&;UPUfdW0JhsT z(}1*jgWR__tzjiQO4+(^*#F2poF#u5vo73};wH(%#p$wEgVRH9D+;`9*bV^w@Bqoz z^CaRfIniXgn37fd9k$y8G*#Y(@ni!r4>DTiI?4(Z`DvH-@V9I`(#M^b8ZDj2%#~_f zXr}ahF1+^t@GZFU3acr45@Z25pP*#(-!~z(SNHsWXX|Yh0?~K8OZgGi4%7;|`{Ke_ z89fyh8SdV=jvGGt&f2!Qs6_qWZ!42|lx)0Qn^Qasr@@E)YUHK<&F&b^SPME?iz3D& zHV(jGJeVo+hwDC->u_P^!iE<*SuF3$9_QeQ=GW|n&mBXBK~!MDYyS694RXbh!Hu^O z>hS`2PQH`-k?G7cJ{lP#l~G}wNv0}=RwUlOeU>Un4CfeK)#qC5x7FUUWU3vlGaxk0 ztYq(B(Ue)?=$C_)Go4I}@&WV8nt3iK#Q1bjr3zcGm_1C03t6=JHKNB;s3+zLexh)klAw@iej)@v67g{W!ULR*ONq@00tA^nv0ZKRxHbyq+`}soqLk zdO4t--V2yQ8qXD$8>?FJ7hq<3!`KRoazQk7S2g%wxX;%(d$e?E0U z*Hdw=f8xgV zq!EaRVbVrQz<^MtC7XFC**@Iw`Yo$4EqU#u^|99hW@@c_*OLVw+>*Vipq0CEQSJt$ zDiOB+3K~sl}Lc{=5|7QBq7KI`3cT+5qaORO{y*4$uHIWg0Ev1g${Q1E zW%sJPYw~L;R}I}~4rRr8r~QS7sywfvF7lWI;vmh|9RSx0P}rSi%qu5)N6NB$s$5S+ zbZmU@rirQcyvkJFn>JF0lv6YGth&d&G8#LWh>`3cD9(04{jPd69CD7zHTg_sH~N>y z2>Qw4sD;T{w=gZEKh#E1QfjLcv=Yvpk}7)Z#7{0x?dZlV4&b&iF9&JZnytP8`-HA7 zXEMi1#vT#qZi9ZE{6ibK=KNpHGQ@w}$NHZF#Wd=zo=tZ5XS`>2;>3NWxbsRJf=c#YybP$!~ znXq`*M!NE!UA4T%Ve)8{(EIU?t50Y8oX)p=_tRYTq$YQiQnhx20$Zm&H>L#PDcEaW z)U|LQM!c;!E0Yiv5kwOyOx5U+&lVxOrB)=b%RPV4$6Vix$`NBPatj-QNt^Z?B-p-I zG4s($zEnK%#7#Y|w(8(E+A@dW^I$8S_;)~-kp1Sk zff*2SCTL7gg2eGCC>5UAkjg3at;)ruFT}{nVoFMrFaNJ~Dgdiwd0+^Ud=R%Rrp;ov z;?MKB8%RN>FIroWr_(_gF$~t(D_#X1TAG&|6Z+Ol^dzk_t~Bo>3=7y)zw6Ow=+4+f zKD`ee4C-gp{F7*__o8${u|Sum9Uoz}_ETO;XZAR!?&6}7(wQ;GHDMCe5&#vGf0DK_ z1l@X8C1_ua2DG@odd~Teu2Sn)wODiy4iy_2Fv|(!1fO#xYOG$MT2$4}Ij+E4tJsR9 zoxF{W$JHGI%omy7Cbpo9d4KSFeDk+LhWfJ>Xl44+w@m7yxW>vQA?y#A0jt+@LHmO8 zl0maAyqi${$ZK9g02-|FgI!)gbCj)i4u;i(I}NdCE4k1ru6f-6B>=Z?-^ z!3Bo<|F|LdSWSy3bx9{62H-)Zv-S@%2G%>7Y1;bx6H2c1JpsT+oeQW{(&qB8A>nb7 zLuMphtfKa;Vbn20uZoUdV|m>KmklP?*SlHuXH5h0$6)B12J>39=@c3?o;e&Omy5QV zbq@lwmKHh~nN)gDP5x{i|9`yzBDCe*FPpfR)I##aJ7;3*#W6yFciwT#_86$;q5GCJ zVk<}NP^(C(5xhuXqtclj=2Kp6=})g|rTINu=NNQ3cT{^^H_6m$Aqm?S;;E6$63Mu! zI-S`oKg5j}NUk;E&rV7kXu=rxX4pZe#n?^=mo718czjQAVp13tUr`(r{@-g^X-V;y z?e3>Dx#geN0c_1jZja~1!+r`X5ZmnkF0cY;L?6ZAO0`s-d~KDaZ(7+kAv?8_cDqj% zA}i$?gq@|YDRh|Dzw8F&>n;-Mp2A0Hs4cZ-Xgt!vOemDO>vtvl@mk;1p<RY+5h9I`6C^_F9h0Z)21)Ln_GGEY&uEY} z!L$VE#)wW;6jNqUQ8SfD+gDhg7?v?mK`mIJ;>QB#*!$&rD~(WLC5cCc}P; zM-z-=HH-mly91{^#j`Ar=Fi(VQ36niZ+u zdv&9hlQ8kgor4FZ!^$Atsls`yjbC8>x{^|n$Gxj>o5@oXy>}F6=kdb(3g7q7=`f!s z`8xeD%TpG{KEj0ev@}jfN#}2OmFqQ)xya6&xJ=+?}u}BSw@Ea{@cPW%< z0)zByB24kPqHeQ(C-6u{to=sF4XJzQ-0nZQGxFoyO;vUty?4qnZKu|(K_8_a-ua8d zeY`fp`;J{FChf;tj?Mg!7deml-4-JmA|3+$-6wMyjCSkZ*ghD-%&0WCq|OgpL$C4MxXJ6G{p69M!LahM6JkC>ej1{Oq5n-{%#pZ@-Hhnvy6Suq+He z3?Jp<0Duby(=-$yEch1)7#Lt^Qod+XL{JR}lqJB-FO1wEw=8B+_Uu8JEb=b2B^m%g z=(x3cK}@EhgFPFj@qGVW#TMLGh?Ae~gH8-AjwyTQls+&ClLJ^mtEab70IUG`So|yC zV-NiEa4(Ng*j@)+Wk%W-`Gjt__&!nduG$&-e+6zLc&kj z@`zD@W(>pp^XJ*Oxl6nTKFb>$90($dQP$2`?Uusv)Kdr=sA6xnkP9lOxuuAVCI;!`5D>vC5^bz7S=8`=CxCFqUxHovVGZu_& zEMZ%A4&w!3NaCp)^fCV#{)Ebex&8p`Mc#D75&_Wr1;D0T+`1H(p-Iq%38@0G9DtH= zgZ4PSC=GrJYI;SP7p4@0h-_Hd70o=D-%%&C4zSQPF@D%x!bx6;?^$#^RrrPT6p5t; z!eQI7QyXRieCl#^oExaCupLGRjCkT{DIrq|+D%QihpzvRSHb?iFt}@?0eV!rb2=VO znam0Cx5xfPKV`Z}#h->#7XgUcJi8`R{)Wr{X7e zO$ZZL`^f0Y;5A{=I1Q|pVhi41eV$5O)+NoFkPa&6@WloWAJNiO78(IROMg+ayS}!Z zIlbM1+$A<;Bxye{fW%CO+Jo{s_c+}kQ}zn$fKPKV(bItvr{JT>-bNPlIC~>dE&lv( z5#+kl>V{ost_RV8SogkjMhIG9 zfLGmgi=|>nCwZ~|pfyzCS2GV;%#rwyZoM@JPL$tcxqEB69=4QO?C}OXctolhHO2+R z^eS%T0^E(XKiGvTlp^HBeieGO#CJwLc&~in9@*)m0D&?gO#VUGV1=TQq>q6+3eNz{ zPXYo$MlJr&`pq74jj~r;He;`V4V(`_)CDnv_n+w!{Xhqmw}Egg{S!C8LAPdjtB@UX zH{%RT1Po^*Fr2!elU}SRbPz%Y!W#xF$%PETLw@qWb&bU}x8pCMR_th7AMu~T_7+|L zP{lpyF=)Z3D_rsLj~j{Ck2viHY>ApnZ=!dOI!Q$2uIZzHfQ|>U((O?BRw9DZa}QSv zBh_P1^p4)2Az$2xi!GbsMIa8ZGg=50)dSHVXOsR?0B0}2&jRM;{qrE;?;;wY--u() z{Iy$W8;*1>?HN`_sbw#&swMvaCNDxlPE%|kXk^biaTtM`NPPIPt8?8<5%t)OfE&Pp zP7Tgv*k_YWCh+(ImAtx_?F107p7+0b0W-b;tu&+CC)MhDD}ed`EDJ_YRYj2enMmYH z_T4=AzA!inGyMeA2AieBf8k^h4{Ij1ugr zk@hyCOfNVW*8)>&mug}6T=LP`6TH>D!g`GPB8SKd(akKJ2<;jFpo%PWsFnn5ujTEYGjKdZj>g zz^lpM)@=JTXTL2OLO0Sl5Ia5qrq1gX5;^VoZaQ#R^}sLLVK_UcJ+Wl06f!&pV=TTMhW z6SQa^T30BQ3>ctwW-i7w`FwbCMewVhi1r{Ox;QZ0zsNhv639)aChk!G-(2gKo}1jq z;};gJr%jnqV-aSWoX8kmm5*-=CMvH!Q_Q)`F^sqN8)4E+7nm}K^X3)&t&LEcH$qs~ zH#f+EQ_C6QYAV_3ZDRJM|KKez9{0KKrr{ZZab<=Fc5TleNkS=Np8vO~@7#KGbGE=$ z!YWpjq_&@3)M&nGrgl>Oa{&BF4J0F&tF z<_1HTf9=j3_6pi+w3J<^^B&DsJg%WtlpNLeB0_M)2m`&LFn67U%6%%su5II;$TU*d zhV+`lQ-!on2==FBu|mINA729IQDc||;+I=jv77tpScU0C`CbbCeUT~qC5*PEuh3~0 z45R&IYQhM$($iQ9$3!F-AqDUDB-5ytdKL#9*#(O=X6Nzr7^}g@LSKE~bTYcV#&F4E zut>C5zvrlOV z{F1ncQikJTu^_sDujgJO2QrgWl9TYD9Eb$bIu+}RW7B%^b=Mf|+% zdrGRkBB9RR_T}hi)nXlH&7ept)enwk{nZC8!AB|`rM6&mo+NoXVwuFb@4-}!Z!JqN zGw~8~RIYffXumWX2%312YLg+aR7H_O!nYJ5D=WGxcUL%p-|}n39e*C~krHHy#Q>c$ zzEKW^)}>sHiQ27Fd=Ot7Zw2f6H_{h}+2&We7WGmP<^SwIJ;6Jp<7b<**$Nz5ghq~( z%@23btHem~?te5Msp|cf=N37ppB}XqB)ZYa6c$S?In)L>fNjJ7UoSwsJJ#>HykW{{ zutFX}>$^YyEz0!Q=3X+s0lP;__(uSWOBA3x)^2sL^M^(u5X-?b$nH=_hHZndeW@=7 zPkej2Q#KstVOm4&uNMDiW30Twf%u`ey~o&h?-}F?rFrBMEXCyF;!h75xYJhsWcw?ZZUd?0oLgAS`OGIm zhr*ZZ%#7;H%fu%tJ$aJSrwjQ>_1`%cr54}~lbKMmj9i{f%D?wzT*Ma`%Ga~WbnTjH zs{XeD+7~=Ff)|X8RCRc7k7yg23ppcwF9=6@(6s^RqKV93cbFqMs`^TJSEN)wm>mYm zMt0qIi#5MXyFHiCCg9iiR3{3D-3-^nwi(o*+IGWpkFxE92)MSv;M41Ha^WO#Zp#E5 z(2D|U6q8o2*nEW3PTP^8;NLCCX?X6jY5YPE!G-O3mxeqwM45vJqVc>QXod&YWJMZ; zcgYcpnni$pRm@+;W*n)QdjJromNkFQtTIv0?oe}JqqGT=>y9V`qya2xr3-?1EORzt z-*YZU86G$5nD@53zj~cnD7wv1qfzty6|7<|d-}fh<=@Jqgv6llD4bdRGvQPnPsYpj zE01sc^C&}Ue_=PV=K&_i;&t1EEZsaDyrbkX^1{UNQexnWIdUnHxIQKaI_<#*|MoIj zf)+T=Fu?cgO7DGWAoVnZ5BBrkk;*Hl;*O+{?<^BlE-upU%fNk}1t`Si>6>aT<9E0i zu=YH?`w`_}Qy~Pce(T&UzV&&AdUWIzGNKl4_3CX~5=&>P{@`v_1GcG_a-e3T{;&8@ z>nq4~f>}4iRdu5V=(27R3mttPd4f?TrPcc4xA?A;P7n(worxS^qs|zPSRf5&;OjHm z!~jLFt&1PHxM)vQ%IXItV@rSBEZinmkkxmoH(9us8x0zbvDZBDC-4?bTqQ9OTuWMg zf@g?mU~8CuHdQ#pj)V(tX#VJxLiLfDZ2I28y1OZqWkA%OER+PPC%bFJe3w znuaEnKcj0I|Ll5;k@cGxnx784%_HG_Hu592R>D_)Fdv4sjfJw1J1D2KM^{`|{#8yN zg zR>mw#&k}mLnBh|Qks|c94kgqDS;xuRMOEZ%;7u+>4A|K^DW&Zd39W5an8VM?6MEdqH;EOL;PO%iLgzMr$pMzk%6BtK^J=2?JDh~aRBgvSx{Zq~r|C<-l_h=q zDpN+ECRf!njnXxl7uB}Cd8FORLU2vybPjfRaB&w%NwM=!sDd<^Fwx__Y{`n1$(~+i zR5Qn@bP=BBJ0!%c6ym#1%qjJyb$#jRlKMTHJ1m{^`>x55_He8xO)kY>Y7q*i3eWaY zHc+e4T6W~1qMGvE`Bk~)xo}hKyD7(9zt8sLRv1V)`NRfsZ3w&JC#Iym3Y-IaEMnnh z&wnLpWv{pt*w`WrJJyICes0d%leN*k;2D%~wT_KJh55@%9M3Os{3XNdRV43SjLSY- zq80mCR{1p?8=UVLe(-6Cvd+-@O>e#=30X1@a41QQgi#vEWP>x5fNY^C?{K=JL!y07 zM?WKqIu7yQj8{4Xdsmz{IRf1H;ddP7@BDhlpssC`4f}!|q}OQr?S!-Ys$LlM#4JS< z(JZx<^?Qvd{=B29o~3+;y4>hlGWhP5&QF7aDOq)zLOri7JBYEfexRR|S`8eDbx@cXYEZ*S(bd%I18(7ibww)&oVxp_c-Xj%pzudevmmj3NJBzq65(o>mw1 z>yN)yXs6vRT{YO8Ie%Y`1J96YWwoPXX^3?EWu%+iPuER>MD>c^*S;_M{1qZFQlU%C4o*+5>Eqc%q;UvMs@NS4>nMLcqJZx=2Ki(upC1Ftw z{b&?)nj?oitXk6zUIR)QR1T0dkdCioeoOqMMv%BahA1$fsC9jzNel3aDs1hkA#w+n z7)J{dM1(&v%R0G&-fN&JDLpRf4aQ1)%{#Gd9Y!wgZQKm1O3H1caeHA~;Gb9_nQ>x! zo=)^Ox9ete?@6IaxuYDiIxj5b>bE`8IVzz`P(n^MJ7d^qPskI%gd*bfC&)gVv)RTf z5m5md>t~4K(HlOQV6V85w{y2P_whVc!%P$#hE15s58v!Fv`P#~<@eiS&!OK}*KVZj za`vHGmIjBqPvr6_$L9k>&)tgjnAQu|XPx@ufUq`BTULL%MEmZN%bAQsXCZMhf#xtKjiBTx_)2F*@B>& z3&??*xP&sIz^uUKAA&vcR7s+=ie*;s60$v(F;P}t94*zDOAdO zUm*H6lig=EPXb~+~fQpeSP%hX90H1w|5HX z`xYKw%m(d6d#hbkt2pVdT=4A;CPEdKE{-bxLZH0bO0p{0Ix)`@HR@B2ea7DM>lOt| z<HxBP>sB;zL9v zU+MjsgR9J0_UH*h%f1cgcK=@F0c?c8j%^^dd zeQt5|Nr_i<492-q^o{*zu7pA(_M!ZA4>J?9BcItHLh8Ozh~l8Zx8?NBy_bd3i((Ad z=3)eL%lPWFlB%+-me*%y+CstmYH1nDV77l`3!IQUp zX8yK_c6529ZrhBOd;5OlmS=IAQEg5r!<4x+R~0LIUC%_7EmzL$E4+%Obf456VPNr; zWiMY=g{RGi?*#_2FC4e_7MAxqtyAqPIdQ6z*5vJ+YFKS)cpO&sQ7eY6C!d{0BJDJEX74t5 z%F=gtZl-DypD|(K`LDj}`_L5_Hf)KV7YA766(Nt1kw5!yP%(6xNnN!&c;Gczp%=!@ ztN%LF(Ud)opU8@zm16QOR;tPW zT{be6lte(k7ctbVb}e5As?+ z8H|G}Y3bM%!JUnoUZ|||jg`zLlZs()}JPuRpUClGP)N`5eIER5S^!LP4&2>NFb zWywZI)wn&!kFTjJ;K$S8KX!qhHM)G4|FnX|Gk& zvB7%Ljl)OtGMZ~ya9mTW!ewX-Xf~StQId*exq>VsxDMHtvs~Va|C{PnCo7+tYlObm z;b;P9&ziUXD(D+pr?$JuPxV06vZ>)gV$w;~3*Of5BCJ()^Rm@9oZ24Vs-} zgl9V%md1W{{96SAi_N^8J$0qIxA|yV0yowtv{9W;G?EMaMQp<&Vk-Y%FJKF=HFl}Q zE!M8YwX?M@w9`M~!B&L{o4Ic#^DG{?3UJSGk<#Q5%+UGvzTj_%uzae9-Ij00%G2%= zuSoFadZ)mn-nRmc%};xb9Gt;v2!2#JL>J2Ha-_DL@G$xUPW-Iva~u~y4k8_@R$_QW zAPMO&a&@b53rqYLX-ceadQ{_ifCHg>WO{|4W;9_XS`+tS27ANN(RPmLXW7UkMYktD z^s&t$%?O1(UFGQYHJ-I7FD@=k<`bZ?vb=ZPQCVW@r1cAjZhWvPVB339r6Ky0xgf3H z?d!fbEx7ib8Zd*&{)6^9@PqXjV4*k6yCK6|*+qpfI@m{7aE>@W9!+nnL|6%o%KKbE zo{A<6YJ9Z-P_5+SHC4VhjJSO8;<^jZ=OjG3Pt0R*ev{i5e}T#(%c8uujCs@4 zR>$!jQ=Z^Rtu$N{`tqMaDEh8_?6v;iMi+o)J+Hh%+i*m<(B4+E!P-9LkrWR3ACLag z(y(F5wWOZGcf$zX%GovPRvz|(4-$4;O8TObb)G&VagtJ^#F`6m;7CgYSu>oLRu#ESwV1h5)Y?W} zMz>KvVXWfMRp0PYq^EuD0$7$ix)>;bXr>oSHV?|)?D;;q@YOqK&+?S#_e5eoTQY26 zz|W=J(jQ9bq)~(vGP=~2CL-{S27FhVB9e+VcRJj_C8Z}jw1s0HIj@}0Ez(?C9ZRNe zyHG#+wZCwr?%nH+Emt{wmF-bV!zyKW1mGcS+9LRo!+Zw=Ygye5*#13WvgphcuG*yE@&&8sD}*|b5{E=}j$uh*}PBuc%zljM_J*I}E| zh?ta8M5Hn0+iQeo$AG6)&eKaYh9;?!Ksw$~F1%v!#H5_o1GbXXoad4@Fly99)FVrC z7`5h_Q@c)Roo_=PoHALpiBIexJHz)Ce_g6tk?9`zY(ttpeTMP7(XC-QX&UCTe&K(?jWY|zLIi&DGJ_C?-M&p zkB3mbko^{+xRrE)r6~Pw$3Sec*3f*YqdclIgI2X^x}K5P+}Xng2HUvY;Kq>WGOs$n z*oWZj=Vy1^@;u+1#>OMrsdhgX|JC~BpP<+9XKJEk>_VUC?`3%gI~gZs$;&=VSV{i0 z3u&T#7RQtFQJt2g6_G%Jzo*w$+t6kvPJ8&E-cQWvOd+i(BC$P%HhCQHEMp}qx}f9v za3TEem^9UUrzB82Qc5F!txhZ*mVE>%e1J0b%y!KIimYFGf<9|OQu#O4-~Ld?S$kP2 z+V~)vnOb%yb&kk~v^5Au?-z9(8@|`82%Pn)q*a=fmalUpFDz+KD|Eozj6wg-@Si zF2Qn#95o6eY^o(b*g1Hd#{jvI=T8C^LU#L8{Z@?p->mVw|2E(4=k|m#*%P0dfc+Vg z#6eBDHB5+v_t$6qTC2Hk%|-V%fqbwW&4-UqrId|d&A`0Jwh)+L*VOHWM;=Zou+kt+ zXDHYE-bat4NNm*1@Zhd(pr}$LsDuKy7Bs40%;WF_6`=|01n=}~F6UEwzc_?_e(v$* zSKCf)<@|ez#u-K40{EqlT1aIZ<7R5lBh4R1ZP(}`xQbj|>2rfKA~cD{5xAS+uic*X z-{OF~F=`PgM)NJKu)-W6{#vj;?j8F!kQB33V(Ks-^R9WuChM>3n?H!2(ei9CHtjT0 zz*8jPw1qs(sM)CgceshMI`&<&#iPDz2Uf|zXdSfpwD(+5a^k{GyF|hur^Q8$hD@6xROf^r2@HmH5i!B4 zJ6aqT_fLP33E>RT*S}{7I|@X9{83_o;br>qogGc$ z37QaEPhp1yCvnSVcx%SzyuGS>9UUf{U%WXpIOAKl(PJYbV;{fzLVeR%)#EOpxnRw_ zP}==y19%*w_@Iil+6W(Wfh_J)dlwUv@=fBBp^`sO$dlDtz1Aw_H4Tyw>N?2suz>vZ zvArw5`D&@;w=FtytH64^1aWV)xDAzL4XqZixL1a2K6L;rejcFC8|UIBy6S%lA)(!Xp-24?@QK`?3a{RCZS=+H9;* z-Py!ws~T?pfHu-14R+pSzNECGW@MdJF+l~>VwtTEA!}x6jfRZbYDKYKG+CgKXa?MR zj~jw_d@fQ+8p@P9%RioIRf^<0qBmO~Q zQduNFKoKkqJ-xl+V1PPiKJnYT@ z=sqC(?SO*uhf;wDrioa0m-7L3P=R;D#%mQOpM8ZWX#aL3nSQA_$-#MJwCA^LMgM-DmpF}BF zWV#TwRDugZd<_DEs?VwTj>WhIfwvl#1rTVw#()1MIS37<&6}j@6z8fG*^fNkaB_72 z@M3{_%5JX2rV(nY_mI|Q!?(&k`Vt4f^@mGZK&crDXcrbgWWWTCHiW;( z{(tPfX*`tS|M#sVl@N+hM3yWODP)wjr?QTv$i57+3q{B> z#=Z?R_F=}%+~?^3yYB!0bzcweC)cy9+lJ1D_@-e93S^JM8(TT{N0UTpAOdYltlvnlpr!}H3xrl#XF*{f=J z^wiBP)6~tkngt?Nu1b(c%vgE@iD9kwgdL#I@oW)brWsgzgp;T*zdK^s^I~#Oi6t0w zsZ3%76UqQdj53@(cc3b7cHvpoxf{42ckJBld;&-7{1svtk}#!vO=fi$3zpR}7V24?$zpANTHb_) zfH^-2N7=hhHiUY&?|p|4y45pvEIa}ABo~ZRvqHqG4BiKZSPH5VlIblFVV){r$Wu+z zy&i`EAcmO=l^KAP-7OYHoszYc9YhC{_wOfK42mvF;f_X6T3 z%{~XAL`O`JZ0}nZfhnE2nRy6|D|x55sCZz%ED;oE^Mt4NQP5Z^)1x*!e-roQo(Se}BgqGUGWSIqUTF+cP2r>j9bM@*_-MTW}Ot9hPy`CY0@#GarEi zzU9nS*d{Us*+J{`Q)~h@Vvy|MerIIP{V(dGEC=PMlJT=#bIfBkRcl9K0SXt=>eZT+ zZ$Zx*?m5j4?N1yu;hQD|V9v#(%&@0d-VpP>(5?JvRD6BB7ud*LXf*=2d{kD(g`Ypl zx-N5TMF9W|AZ+=8G-KDyB<*88E(xP0V)0DGneE`VDLdmreSwX}7~Nus zoc$CaogOrBMYY7rX18^+-Xq2{LGLam#qI3JC%PJQZ=rQHfdR{F}j%xPp^S_N*!%&2hb|v+)w%cn&k^Kn%bC<(p;ogY>$$?8t2vS1;p)JGxvTfrPX{HjC>J8{a&Fcj*Hvjw zyYYOf?7>5f0fN{N@xws5jX{I?``5jVn#2ybpqV(OPL)qbuAg9s zp$t5Q_RV7lh(rHO-BTJh07NLKc59NhcGMUwrutd&ts|@R$kQrQ->8_3O_IiYogME$ zcY3FlsJ#hOgLZMtZbTh=t~T$J(($_?Y;k|10uJPPU2p0b^n zqx$VlWN&wt)Qj5vgqk-;fG9$pgI@-#y3lCx{%~N^ zLC^Y+r-`JtFF!{j*bZ$rhjEY*(G!44Pm6O@oy+z-(HnOwyQBrWvuP8xs3hi<9d za{UADboR6${@suR!oZUHH}YFPKir=icQhXmnxB+Xq;g~SDfI0_Jz9Xm8h}SWZ=-j= z>2Vu1w1^Wxi_T1zrOQ6Jt5vbH|E?M_e1y1uc;c#L^0uHv+hxI0>{%9~WJzjt=Vox? zTar_1!t1&G)gQC6ZfLJXQpS_%$m=g2gB?Hfv$EhZG2vMADapIBD!bPrqIbV!r~Ckh zzgjs?qNMJWf0fU(B2R`y@w9edlqu9_=S|E$t>WG#V)L+@|8?SEd!q=Z2{qBg%=k)Y zI0DM(ba@)sWx4vyI=+&4kO5BJop1to{gmxpM&y-`)eL1kcY=W{C^Smi*_{=bZKezn0bGEbBh_ z*xWu+;~F^-3fZ_u5(#|t!$W&04O(J4;@f0`XMVma1Hz>dzcJ_F^eXlsbL{kT?F6L5IPq%9m7pq+RUPA$6ovgEr>;wx|<@3LXEH8~IqCj-F3Oz0NU@BK@ z!J)Q^8#oU4=(A_Teyq;-!NAj$0m(*XwOCdr!QrRTcYo^JE;m+9`|dRwkcS$63Gco0 z#OFM}%#_7*@{z8gZ^dT6%1P@Oo@H4Z2sz)7-1#{5uR4J46&Up|`-~;6G)8{-aPhgr z)D6z-0Bq3mB(jCs{pK0}_qxHIc%>rqMoChzzq2StxJP1Fa_PC0yiJtCcOTgZ>m+;# zy_kfG(3kd`!x~+1e|(c)Drro~cRMzxNtK3)5s()tmmM)|eSvtY(e68kkHrV2wsLxj zy=R$+eRR5fC-9^7jnv!PpFds5Ew;BS%0CR-LO@fP)Zbss%yL`gJ)?!G$Go|?OhnAB zE}Q~JTsbCS3RcE4oBs*NJmR-8?WR316ZXK2}khresn7ia_&3%U!W;MD5OE29P|VpZ#AvT6do;^%Al30G(J5K(p6r zBF|_GE4(%8t8gQ|kH4@!^ z)51Qf{pXrN-Ry>9P<+XqhxkWTy%(ac9|B#5E_IB5_*-uBt#?&n6?Wr(o5wzPlx?q_ z8CbU%e) zqo{;ZLSG`Ajo{U8X{)5!$9VUdI!?&W&j!o7o2&w$$Aqo5y_a1e*jJp*fuu8;(r0Q` zlbxo+`j(2zkDWXP3w4h3NLm;X3tspp6KXy}+8mN4eW#Nmr*h_zOxOC{oGPJnK|2X=tdk1l&e;-jva!p-Q z=?u9&xl_)}8U5+0r-3B9J<=2!wOD9a@fkXJJQ-%Sd z&M_OwLNXH+Gz^mB^vpxz7QJ#DY`+Ol8PtET-zcFHz+3k6!AR6CPWq7BId{nHO)JkT z2V1^33%^Kw__CZU(mUk->*v>0tz^S=jB0|*2KMpuFunxiG7KX!PciL_VgmbPx`)*KNYLYBaG?SQ+ zht!o>@|b%sf@rB#fh)iw1;0bV*G_GSs=ttSW4auFR?`|qqX8IbncbNqnlVGq0i@?QRF0GnMFKutOEzFz*%3o?j%Wb$s=nlL#PIzUmf@}@me+g2jNQOf6;=n{LkJ}dQJ zx^22cpH{-;YlVOpmd-)u|{JPMeuZ}6of&pe|X zjX0O0C^LSdH>PEs|vg-nN3M z_!A*0h2V&G!-$2=@cjnoz1|5aH@bTEvI1burK=MiDrup;BX<0EKPslJUp&hW>;cgz zUwsPjpm8aNv9NyQX?TwzPjz@h=WMUEZr#(@9UW?~eVl_|a%5Bohdq04Gxaib?vduWKYg@tLOV$uP%8pVWr`ICrg(-Fx?Af z2){`J`me5HNRHS#a<_>2It_#tg=1^`0Q!!cLS>{rn(QAlG143YR|cSRV2S5l$J4j2 zwX80mOt3YH0isXSxX)5q{z0@L>^Q60vPpotS?r&w_wWmvGg@MQ1>1Iso?Oa!(k0Vk&|P9!C_ zqmsw)LMS4}K8e5jB9ZEgP$mJuaG}@N?QpdiCHyG*VB9cuA61}9bT>YgJQoENYbb&- z42XPLNa#V<;*pI|{B6GlvF2TSV0{H7b^+KeYDw4~jTeW_T=lD?FFy#94S5)6`QrGl z5cTDsm)ZKTc2K+{B~L%(?-+>bCV_f$=E`xUXTync4N$ae&Q{?O#eYKgn3J6`KfdXA6p!yEqMK~?dqGW;O8$$f)4O$JUH|=V42ZC@tuRfH!q3p< z_@QJ$TLM64fngtX{6({Hlws3MDKCOBi{J$x9iY3Ef~mJR9j{T#?!;}oX3|Ywz^{XP zpb%~4#lQeKS5fbW9;Y2zPRUZh{WXlwin0nAy{W(gxOV_o4imL7p5v>KA1?qp9s+LJL%oGZ!*_#=L!SL>U!Tfqp^*^EEp<;=lKQKfzYz!CT z4tN+1c=7Cf&oKO#^2g&^H2_f{c;r3`Ur&$RWd?$IXi#HV1BICjbYV1dG1CA#<44&N zo(j()_YNL(4o>q?Z__Y8(F7iPcZgE3r>yv4fwUJ^nJLwS3R=gvdF~yjy$EW;H!mX( zuVY)|l}WQ`lDaGqX_wl>Us9WRWH&QqT&bK;88j7+CU(V>ip@O#SwZe`)}lE`TV3$2 za=kiw_@N|d`L^G`La#kTwR4Eocp4Pm*EQ|Ee55s|j-=@G_(^xpoTnzh!2p01{O_NAG}M2d8^5@ZJjmar zCu3u+e6)cc2)HD;sj2q4HGHLxQa_lLH#*+{A?fe30tyvOEwj`X zVC8Eu;OB^3qkmZlbjCnE(@>LsMMMN)Km`9o4PJ}p4V%7^+i#BBt-B_*jVRhuFxdoM zzX8DFwk4Ip&}_9o^uT{ZRq3cj(n`q55r^Z#cR&Z-bKyZwI}5{5J>=T^IRsA%=VhwhnG|44h7vr-v|7GOh+UAcD z{6gXN>i_HoR6r=}-01B%djHl+Bw@9jK!&T+NK^(DlS2yrpr;@W{y6fKFMKlnIg#$w z7ptAZBWGTPkWm|0Tsq`{%@S z{ne(?DfCK^Scugy8qyF?m^N*YCc8Ng9K6qZqdcp2BtO<8oEekjE*(g?F8wcyY9HI+ zb|y8QDsjB2vuMJ;Uo!>||GgNHdh{R2-948y5D(i9vf7-Y!kVs@CU-WXtqv!am6kcN zJsS`=OZT1FF+nXg8Ya<(+)>r>G*dJDx3$P(tB~*52jk3-Cfzo9Q@%M}t|!rBIRPxb zcfBgm=lL{kxBo!|=F_0ZS<08-IiH^8%y+VO|C-ko-7`m!WND!+&zgCjBgE=+Y;(2`kR!V<<}`UP4rX zQd-NM67F?+{GYB=RFNqfy=EAzJi>&XC+WiB8$20?MB!ygR)(IZ(va_dy!xH%gb$WE zwejoEMUcv~@skPhKUr|p?sVqh{tPlvr&On9$Y;WD3u&7C`f;{xk>cI1FpE$t@jh-n zY^^of0zXwVu?!z(6o#Z61>w*^NAo;&rVN_%E3>ke@MR59-Pt270)7Od%!v#Vs{0$V znl^ajA{6%j43ZZ^aE%RQ`uJWe!k@?v2`3y;Z5;Itf&EaV;5*5@Uc@}`M`H<95Tc4_ z5@EjmfQ`NOUa;uOfz(eqA6`TDhvFBWuaF}J9IyR&ybf|7)Dg^j=%PV@QU`QkS#$mr zS*#F}l`G9g%%QLNP*En*7dSl@BfR=Mo>UVu^FtEW;Y=CiC5$07DPo|*Z6FrsCI%X~ zC1w?bL0Hbsk!XV(h->fC~U##q(;AR9~lALVd6QBPtHONA{Vdsall%Aa7{HZ zT+>Dn4$)V+KcXQMY|F>;KRs1(SJ)VZgYVT3DAh6|3xfZbrnk(v*EhT(LD}?C&Bv4G#jy<) z`4V*W^&%}0CyzRdiwxM$yS;Q|Dzbq|P1af??|9eaoN7*8;6Mn{DC}arAe*wI^$?*X zHEHXK3O>a8*oBy z3b3=N>8q%pU0@2hV825bhFFd>p$r5~`oW3=#tQyuq>}biZwOlXTkJLt_U3r1?*8rJ zj9j?$JMb=0b*a7H2GpMaGT)|^jB`EUkmUwi7FHJ+n1H$T7GLL&*0h4?7Q~!2KbPp3 zoip7I{c!_SEDNhEff4CJ`(6}m-lTrLB94{l1f~3UwiSv==-3Le;d05u^9Ne#WAL))rJo)v^}+gI*&e@Qx)2mYAbynF2! z_rv2(q~+497I@hDM`Cp;7`ndp_OWdS>YzFsSM{KxvTT{n0^FN;Kcyk+)Co36DHa)H zq;I7qa012>xp1Q%4>)81E*O%O0(4!#k^^jkXr2fM%#K)wpT;VO{Fg6LJ9rN@pW3{6 zh(7uRktsIw*)~fdSRGXG`dJZLafJ69HKYtYygQ`*W=Ld29}ezgwKIm7g@;(p^VAlW z(>EMC_5P3y@F#qabkJ{*_hF{a9ZAc`W-EhxhD#J;o-E%6)l-GWJb>!ad5R}07r_o* z_Jm!i4TL4DWxgU=*KmEZuD|yYIudM@ARZXE^M$98JFo}+j=^YevpdYmH5tqS5_dBhLwIMZAW=siv z809U*V$no?690tc7<1>}cS9}6SSRpgtUTz8x!M+)7=yczV+@>Cnmdy2WB)p%{fd3g zqEokUP^<*;w&l(n9mQ3`idT7jjBQ?_j0|b2^V`_M?{iS^(|UPi_;vLU|oQF z{<)p2DWp(gDUrUYqY;pBrl)vFnEXQe64e=#Fn#{SS=CiMg^jf~RmNu$01U}3&CvR4 zNN2g^ZkE~Y`*V?zUw;3v$ZJNdV~dDEk3xX0+Twj)Quw2s-yn3FCgGK=Kz#Na4gE!% zDGkcCK-;*a{jO-iQ>p;V0Bi>_hQa$&=SD<*b`aTz(# zx}Rh%x@PBC8kCn@Qc~YhaeKlK%d9FI-EFF3-t+^Lgi}!m->gCu6^5XS(j34plUD*+itX?Q{pz!OmaC;aq<>Zk z4jeRXQ{&Ry6Sjb8$_m->VP^w-nvr84UhZ;LN zzYx_vhSsWunn{gsIJt`tKaJhJfH4Tp(@9>E7v6KJD~t6QC^1mldW$wi$?AS4wvO$H zq-doxZG7TWWLeI7OmFZtU&_cn0QRvDbj2{1N3Tx6s^JzgYS*4(*hF%y@yR6})>a%b ziXi!(GY=m0r(FhBWO&VfQpPrghkJiMA3H>9#68Roj`RVWfOkxE0UDU~+p$mpm-|mz zGe)@-Rmu2DR4z|vKsRKv=GUz_vc|{-EuDj5`ZoowQ`}!;xM$8I>@+U52Q(@rPgWbfw_{P7?-2O- z;Mw}e-nwG-d;O?n=ja#93|Mbd?5>*KCU4pT<)eo0rtU4!EgSI>@x!sH#ZbE#)>PScu#Y| z4c0Hza*-F3MuhvYMY4G{7w1|VVbg03q9J~HkRq}rvcK7j7l$B~5rZ(6pf}<;qh#|$ z5XI>$wjyM_b{od`W6!yv z^X9o1YzMKLj@jA|fl${c*soG8B@Q`%v%fpM*5M zNR|?pf70DzYGWQM+wU@Zp|>)5IN$N@I}es5dn3kKV{8rI>SXWsZl;1Y#Nouf)PvuS z6!!pf255UfUb0lIuV(3v)!`eC;AtPkvPCh)e;n>TjRNnx$d#94>KpgZMmU3z zNynOxoYH{2!8f#VyD66)-NPHyigIq*Vmzw$8n%S|O3ZgU8*R-}*wMz(oLFsM>qMEs z&qvFQ^m(u;BRF;>K1vKlZt2a|ESRw}8rj-Bi&m@hMvnr%xk%ze-)!!3BZm{_bE%p~ zkzM*o;xvBBEXS#TZ5Veruir?TUsM89a_b0BeWvaG&oc02M`sw2zqaQE28L6*gWL4S zg4WgFAiLZTW98AY1{qfc#k2M1_CP@)RW&OMw!$XNi}eyIXG=`hedaY&bXa@#y~xHG zysL(ai4L2%I<;=Dz%>*$%|5?R(TcL&vHD?^(RI{%l?fZqy=jl%D;BCx6q6oi@8 zX`W5WXs>QYIfqz%*p9xlQ2~nWoc>eMU61Mz|ETg%y%VK2w%glrH2tBa|I=q%(S}2L z`z9Gy?`glg*1E1qSy!7u!|zK(!Kk&|jX;PhgDOwo&N?Pib!k!=UvCwF#>R>u3x?uF z4-9#;o7bbE0yL44gMgNd5Le8enSSjXX_id^pToxN6ag_--};(Dr>^$$$?3=0P;}2_ z1JFg^MYmPw1D%J5VS6tVF2p>=*y#daPa`)PXE`HF-c>?TF!lx)Mtst5J=7Wb5GqL2 zFsuvR*L?P$y?});mD11aEvw0Yoo@JN>Ojo4Nq5Jdo1c>N8tpT`ge<|^x1SE)(}M|3 zSG(P8JzZS&vVn`M;6#3}MwbJ&y9Pe&KpJu_n1(;9Ya>(k>Bd+>e>`hIH)~_WMLZ#| zaZ8n^rO^ixbHl$zcT5I{OD_Bogz2TM1@UVRGmFRRGaEWR>oLaSyV3&_FD7~6?y|C! zzt5`hh*KGRWtW661GV>fo&;*TQi^PRW%8S+O{?2P9Xj#qU>XmhOvQ|I(0Ms^j{#485 zZJ9*!-`{KX7xKDWchu*%Upgg2QTi|S7@tH?B|v~p{fXIgNA-qfx8R+7zl{7OzG;6e zwn>|=9bX@)KJ(%P1=o#bfQys1D3~&k6mpy@M}hFIdmV zREapGobxv-3Ebgk{dz+?@4lZHO|4qVYWiq_Ta9I!fcWL9`-}8Ssq+nPv!lX6^Tb_7 ziJ_f6H&ST*6UT{^=+XK+8c2jyk<)WP$un4JPCUNa4;w%B>Q9J6-kDC44p!K==^Hsq zE!i%i)V`Er5A2Eo9jeX7Ejrlbh#iXlrhbLWYgM#t@m1X5jxYw5JnG<%KxK}sY_Jb2 zvfAdFsv5t~Mkq8(`d0N{uw9La2Xr3R0>+s~Q#S18)($p2o2OBaDjiuGJjsO8A{|yh zY3qdffbS)u?)jR|zquyKy>VF}Lt7JCYeEHjI!GB!p=;!B-!fyD!XfXfd zQw2%myDXXNN#{Gc4sPPIMq8ARktKY*K92J+q6|WDJ(7bKrCdZ)v0)z{i~729gnQ3- zO~|k8q3VzX<(>j- zOySU9M&9)v?XOS!9x>WrF4SBoI?J%OsKd#1E+MZ+sJ_82%nkE! z$m@*tEbPn=AaW>mY#mQwI4VmnBTe}_ZwJf>iSjm9%FSakp^=v0QZc7jJ$g&_eHi?& zW@fkxrWoTQ5dNT_qgS?=DLo(Z8i?@C!AJ`rkO}irFvvWV`0iDH`Pzuo3H-d;y@V@C z&uMBk>$7hHO?d0p^vdk(`Wt6uW*zzdd@`u#P>YF9#Jv7&Q$W%i*Ia?QGsIPy;Ywb* zRYA~PX^Wf%qtJ8il5sn19`5#Uv+L+0hGi484KHvATOTjv$123w4@!$MadnT8O>|Xa zh|XU(B)5GweYI(_CM5TWNo8d(9#*?G_zgd2*Oo6Ve$smyRWcfuxxj+)F>`{f>f_Nc z#W$dX)yne8a;KwcrA7RX16x=oAZ8b}rxB~8FzNhqtNmAdUI^Hb^Q`DX@*Ukt@NIau zrk-!2M?86E^p4N%Nmta6P2$-J8O8+Zo7?yM*okdyQr;%bWHsgmtoR8C6GWHp7n(DYjHU0QaA#PDuScj{Kc`zjHXbNHValfhUM!GOvwgRHVGvq?O???FQpm*I1net|?~K>AH}IOCn5 zR-q_cl;+pmw6We&-L*gyu^RRZ25|W|F4Wmkkwe}&6_A^HQdHSssPTKZ4_;3<8_0B%z zbAn|>dq||&@9*%Yr(xFc)qdV%WAj>Ml-rC_1ZwdRw(#Ve>aN7(|@Z+fK4Q0w;=Dnn7jD> z{haWT$nlb?-x_Nqmv(VnEpe3blS>r>Ud31Ja|pVpFg`qDkw>){nq{vdT2P8eIeU=Z z*Xsd~t9$7vxzm$~&nm{&;XZvYmh68ut18QPd5`G3E6m4tjPAgurgJhs4_(rf%8n8A zG@NI)`*xk`N%TBjy(oZBnzxBLJB|10XVeQ}(!4;@&Y{i|2?*&y_b)%6CUKH(Ft$f7 z=Y!|$X)%ri=Ef%6iyDd>F;a8TwxF8-jq{E?_7ap@y=QhWCApX~wl{PcV z4DR0Z;}wC&D-CWt0+4D3b5d?;DfIbbltp0OvH~7#O0Xa#8(1@4sqm}%Zgj^2caG9* z1Nt1s*YoAgfFF3;zwf(PVd(_*D8`y>-Sljj4vp_XgKn2|=iQtvua6J^J!2sMq4ae3n9@c z%5Ypb2pZwym>)!m^cEjlmXh-Poy%=?7&n3yaZ5 z4Xb68vK#T8?1XBwbue{h*F5fa?Yg{iR2!h!!9E%*VHOk}G4r4(rEe!>gi|zH7xaWH zkM6q5i&UkzzP^distk)PWngr}9RVzFZ=El_Dt>kh_acOWJOHoEyr}gHaB$T#V~zO9 zSY{Fttwycx8CL(tVd%noKIuz;&~!J=I}pQJd}bW$CdhLiOS-KkqOY=?3M*r0=uE@D z)hRUUOB5J3pKy~$q^5jub8Yg&v2NP3GE_IYf-Yxl`bcc$)RZcxXaVxDJQcZyueD+B z?pyO8m_CzG+7so*ug!vD`~|u{8TQZg5*78U@5&##5y*6IF6+If%uRPyH7(LW+|Vmm zYb1+0+%`rk}X9v2p>4Li6_pP zH*8xxi18-v^8u2t+O388Wr*~i5>2^ro~|>@cGX<(Vx-(=)=szWtAg-NnqU;$d!e~2 zJ;CPrGOEcgp0I{Og;bJiYm#ju^N1U2Ph^?Ql;F)ZtlQYNeS83I&crOVNiRO&%a1%! z#d!2Hm2krnw=o(n8Ty1L&qUm%sb(b*{Uh-4&Z~2CT2~75Vxuw}e8Tcw&A-9Y-#%V? zW%(0~6B=xlcQy%sGT{FK^o)fG@YTtCINy^D?z0>FIXQI7O@~dfFZ!#MxakPXY**Gd zze20?m!Sh@&&lkHKN8Ke8|vP?Q!F$OL4v^rH|>UEvxY}Rj=pghF}l=Xr#WU+0GT3?=7GkU2GhfGHB%tGN%1(dMASa(dWwM(=_f<>%Z`^T)07QujcL} zyM1DGeAu(5>Uk1hz3gbt3|>l!hnd~Pa3Dm|06%m8$M3QU#Ayf;A5Ek3wPNkgVDze! zySKa**sZBj)+ULybKO0g`0spNLZ0_P7eNR+Me_7Z?Uk{}83FZw?<*dK#c{{^O$k4* zF?JGV;*q^NxR00E5|+6rf zB@ZolX(Zl(-twLac(yl0Kx|LlAB&gI>5S z49g_A6j1n!eOp{yY*{!#7xa*m1NM^Z08=26BK`IdX4dq8zWsbSan!TS_`Ul4pFqV) zG`=}oGEt}Y9df01SEadfPqJQ$$Mto_1F=F+6&| z4RrmKFt|w;zj*Ye+a19}H4t-koiSH^e;z~D3u%{zj`#P1Ms~?`G70>8L$r7B9&PL8 zCDw{p)(%T@#d`oYlKf>O#3rQ1^!|6DKZPA77I4E~;_RmRjgmoDa@@wZ~Xt5}OoiMc&-W2C&gy29U}eLf&Gz$QSTZX`<# z*I;+*z3oXb5QyQ__hM~T+tvw7dZO$aqs1M}kx2mP*H_y}B5}hJN?&vOam~F2m^P(Y zz5C&U45%$H}n!){g=M3cUo8I>aDiP=K0p2=nXgAdsHq{|ep zw=Xq{`S=h_!J-laUON}10>27ebbuOP9c4UHLi8OPFv|4qB0TyH9ajUue4MD z>zC4)%p+Gp^5Z48f9;(~;o+py^tZQ~cMr3+et~}$8*F)Lz~-SJtP`P1cd}DlG1ams z0H0eYTJ{2yb~#g{6D_Z9S>(AScY9eq=XjjGI9vvGhJ&YnjT&`(&$ZQAVh;yGQr?qw zl=G6WDB2($4W%zTtFFZ#nI-5-!0us zb3WHtK-dz`V3@B+r57z<_v~B%?HvZ&nTxz4fk6=98zT2-IeisT-8TZOwA}TP8Upck2A|Z zF*A1=EZfek2D55%XK5VHGP6=_T7N+j4fVWq_@U2Qn*Y`9b__#TH+Ldt_3p z%?8%&1oO=laJ2AmZ+>1!y23FILvMzSd?rd^**HnDWRri8OWc*a)8AyzH;tA$IcG1X zeGkvL?3E_KXYzEU#2NL&)_0T_ze{{npEUd}y`ev>a;~S? zz&W+2D-&J)sKJ2jpQOp_g&k7{RMZB|C1j}p_7{Ar#>5~ARnVBKNuU$TZHJA)bSX1!%WCZkjH;|GdwX{)|J zN${$X`1M`a;j^QVN*YI?6r`z-*jneuo3?dM8U6ts8_GiE3V~f!g_r|RvhfnLn$hOp z{xA-3%cs4=ApC;bmvF4lwHvYdW#;V9Fu*G5f^)r|iEp!BaJKfo%4?@ONEwuL=5xuL zn(A3%(7|_{fJ#6j;HpslBIyG6=nWP7tj>pJnyq=#Ia}_^4a0O`qMYvc>y-xvAWRH5(8X8 zof{;XO@;mFw=xzMMor%mJszU0ALw^7s2D4X%xx*QG=5V|oLU=5!Dme0XP zd4qAnBcPv_UoCbyExKci`Touad>CafY=B+cUFLZW0O-jZ=yNLS(k8AnXXF`^f4_b+ zvLt}OEUK_%+t<05zfXW0biSv)ipIRpy_JW?+%nwLaq4jbj|&s)t%s!ss6(5&-{FF} zat(RiU)^SKCKdzsJMX*2d56jS`qz&CI3^A3!qvu{1`l*q66Fzo_+l7F`)Tc5h}C;k zK=X)q6JN|uX~Fu(h6%c(hisw{KO&vDUS*G7g6G1&lV93jalrhD+xh9FS-Os=R_xi* zeGWAA;njzzsLxnLoi$s)=-g+c-bIqF*EuUm{Ck+f{rfkP)U#bqDl2^zI{pS4XMiws zA3r4{k^j4xqc9pzo@uJ`9_I26PM0#2OT&{qI!y7#$-gQgDZgI)^ZUnKtnV)x8c7rfDkFZp>oHz4HRD>AGWy3yN?ZYW zJM#xrZ%PecJJ*-Zz}V9D;7t_Z!witpWP3<&xBHXX3lq(mmA# zK_}(gxte;iQw)VVx9ccp|8*8E>TPi*G_|ZQV~#50fw3Ns?Mlz;8V)>b{vv&HpPc-!q~qb2M&c&5+SXml169;3>TD&SdA$66+yTy1v?X)XNHpBH z6|N;RAHRqOa-RC-EdP{JX&~(BfRn=Ubw!nm_8nhcR7CjrYLSXK4uJsta6eB)5|6L{ z`{@5D0RWz#qzdjqgZmVCX6OdVYX!(PBIVM*f(@m=S%|I6qA}+==E3?0n_znf|64Ax z!=Mpc0AG2Vv$xWZff8FH;hSARXaF)wyBs9{k5{H~XL&pu*|+jPXu|BG^!<+V;EkQ^ zo%8qwDikRhc&Oh9CYj#!-r-<&I}qT#pm0J$Ji6&d1{DOuZW$ss z&&JoT5|9Cu$YaP7=tZ0gH-9Y7MI8ck7TS;8g7k}r0t{AhA{<8wiib~KhX|5n;&@>5 zdw#IpB&)6O!sX2!A$#$ZWh=!+6LfVzQe_S4pTQh^E~G~H?I5?4B(0RludLw1RQwSj zGg&!syfbEi^cHcaPB0w4bG-&|;G|yuD_`??%Od`_!lcI!w1h{T1DQMi|7FJp!UHCe zFkBFjJM$f7{0{OR@RpV{VZ0I?smm7DR#(U1{e#Hn?m3N+PF?JvBxNZBeVC08=@`yl zS5ExqgI??8ho}7HWji;kHnZ&BSS`7cx!h5nTUBPRb%?3JGg0m1cXs``+vzN%Fp;< zbbjQ2wMIq%|JFq7cmI#K#<7Uj53T=IAGN;MHmzuZA(|t)a~?Gfn=pK-`!95AIw%Wapk|-LCi5`o9!*ByevkA+$ilRyb^%4o>e@< zamWB#P8!R}WR;7LrU)P10Z|Ael81KXWE1=W7)>cZlZghtRhDuKxmAj*B~BZjQqGE| zyrQZc!*C4Q7)$DGd*<5HgLoxFF}7`iiK9~c-wW;DtXsJV`^v*c(x9ILZI@ZAVO>o>>&2c5pyrKs160fb{Y=g zZKx!~MFJIy1i;ux!ZK|`x7ER#uKCuXB(z~(j55u^a^Nk|BY6Y_yU?M2m-v~Zu2*+L z4Er5+Ufnxrboz7OuA(aC2NN)7nq+=|>cO+*XcAaI?yT%}^JC<8Du^;Y&x`K{cY9Q- zax7V#UCAsLaA%R&=7>WwFpmJAV&Sv9YIQ`1XgtN-`HIwrO6-kC5u7OtCUDRo>q+Jg zx}!D}bn>Q6$TIU$&=pg_q~*9zQdk^xA&{M>Cc~g;b?1{jg4V>o{1W2hFIu&MMWP(h z7FHu;VE_lFAe`Uv)-hd(MYtg^X*9MzKSeOF7NN^80Rad?7Af>#62k=1; zWz3ufC7LHRJ5S_eV#|jNmxhAGjqgttOge1qT8Q-Bmj7dycklM82lawdcy5*)L*yUiW zYKNY;)}V5~#l|aYPizrLM7^b`>PbTh!Zlm|n+6ZUrBF z_DcLMxf`s!)0Z9C3~5vK`Ok-qfM(yQG7r&F+EA&-v?{=Zl9L@mCYQLW0?BXH-_yUA zx&oMtbnAQa=TDOOecxp}6thfkK2R&ZQCezmSO38JnwoJp?Y78V10VP9t5i?d=Qt!L z=0XvkOVbY3C7t*!+(#nzjqFCl1}$$hDV&!$O&Rp6$q8QLP;LzgUJjbBIb6w>UlyCq zt?#yyBTFbg<)AQ75^~6kBlEJ&dsqKS74y5pICjt-(F_0C3t&J`TVlz_I{roeTs4hd#fvqDqLL4tt60mg~F4&+IIgQ9{8t^jUa*qLg5MG?G zcQu7812JZ_#kG9_q5k|d$)|uax)?rJa~?J>;hQ2Zbe8$0@vr<<1u@lml@OWy5I~F< zCCVSIa{!(F4%V^Xo`RR>!6OGo4ib)|SpbVjwo~LEE$X||#>2(RI?-=GKCr^RZ({oL zwX9oTr~JHDXFKm#!0-5vwUMN~seOQu{9fOwFK>1lalIX%Za1^>GQM)}I}O8wVuR8@L>Rf29dOi2)kG2KR1fuk?zHlul&R4rs6`M5wf-eufhyk=c(_EZq-8 z!D;iD7Ba;yQ1XGQr=@H)tQQo|{vUBt1rQWycn~yBd>&r5=ycWS)?Rc!(ECmO!h&E9 zbuHFEaulGTNp95g{KJO;`ALMxowTSnS*f=Bh6Y{L6nwCL;O-V)d-e&1PMLo>&jonUYFK z0M%nk?Ai~VNFWQOv0vNug$#<}fl}`c9!rl`HDP>)M%lq_l89Iu1UW2c4`QGEXp97ATK zR)9Xv0_%P{YtUSlrT%-WQ)zE{6-1>>py?3${pf`?(uhn}!Cm6yK6XDZZOH-S6OcBX zx}00oAm-}nRe}8Ttfu9e)9y_VG`~tWBOS0BZ*4%R@WF795?4CYAOgxMDY7vqYD-EK zWnD}2Y@SKHUS!jq6g3|9$NeFPh1iu$D{FB2%FBAuqCkdJ=S0->CezSOh2V{da9S7% zR7m9Q;2Wm?*zS+l06LC|a?k~~vxl<>uT2_LKQHp4F& zi;R}8q3);O{pmErSpa|s=dzHbgMf%X&+Gv=1m1E?}#7E zQv=ai#}NP#dc&o^D=!$qNeS_mvEx1X?v+U6zs}CDBsLkjg)jrNa!U6X0DQmB4dZ+> zq}7*g0buSOc@bz5fP2c@o;ZG%HHL^LWxq*oKI2(8BudM6zmmlPmR)1$O3fQRXrT#N zXT&V@E+0`SCn3c$V$z+H$Q1Lj2HRU6r>|WH=gW?h>ly6|Uw$7Qb*^|JU+6op`;Rlk z(Yt*3TdzwUx`$A*Yw;rHkQ4Rp?qMgFg4$agy~u<&_C@X~OulB3Q_)XPVsUry=KXI7 z@m`^vXW5BB6=NfN`%io26%2k3`*U`z=<>JvFex2_=Ef161XYw&HF>V!)D+R7dx`Qu zkimx>(B3N>tL-V8MkZ6AV-zek8%LNkuCJap44O>NAMk->5)wQ$l!0`e;9tg1EEF=g zd@)Y9iawyR?zV>$M-X|=1zrogysFiPHHJ{ll!?@Py}o` zu`;gK)Q88u0C0!)7(ty=-Dup`jB)Pu(Bm zN^omp7o@XXK!WX0@Sy%7%e*Dcf>v16Q6)BbW+!|AH_U_YwzJOhUJL?Ac{W4)(0$;O z2}x`=2~w4(LxAf?I^z8%-WWs}?MJO^AC8mZ_Ev>rR39tfXlj-zCcG4gF|V zwdEdb-lgg6&c;}+?cCyWv-RfM*&Q3Hbhrp?H5K?4Z3vz_?~R#U-Y$ea1M#iw`j&`Q z>!7y3RcmxD;r10TSjs79vW>|(H4kaasoTk;U8lkiCD{IG&EBjHwOOyov|OpRE}!Uv z!6e3Vaw^5Dk?Hwo_<(3Yb%nmI05o!Ll88P3!!MtOb;aJT<&oBLQ(J!f7hP4B2+RFY zb(IWZ@CF%5arM2#q|rG`Y@I%!Gghz_KGdouR@_6mAN99EF`{a-{w`mg$e={sv!^G7 z%HkX~CTqRLO>DAcvrl`|eG|pYcWAJ&++IE@=8w5?hqnzNGv=hMb$P`j9S?)6M#GVt zmAfJ~!9{G)ntrn#*Bs_80dTFTc609O8#my{+?x#P6GC@BGM z*?Cc~uK!63EMC~wxKzuM|YbFy*=h5EGQz6npgm&IHZCx0e3F`Le@xPRyP znGPB@xv$IS-u&QhDIe~P{?j^3SqC5KG$iW#U`LGJ=c7uC-CFn>eaJnDw1@ARb#Nm5 z?uS&~;kequ&G1HE?R9$^LMlf*xIeeAK0St}QvI6|`F_0SB}5@~W=5*zT`LI*q)c#& zLo+ZQk&04?+4Kj(D}JpHlwlsqYl-hYVd3FyuiyOFHH_?pvmFKB5s!2dnVIw5bhnS~ z8-#pw{HSNU&Zl`Tjmor8nV@eq>dR3TsLvV_(La_v^?aeU|5H`p*n^Daf{bg~$MhS6 znL~g6D%>6_n^~%8^t&F8A6A{J5DPdp?EZxZ_Q{lk9&B@u57SPZFv`#V@4 z=Syj-tpsE&1JptbW!ZAq?9m2m(CicR9Fotlgo(8Ry>Kni;qI&wS%k!_hlDeCJojQK zhUfm1DJoul>p5>{Z2b+ox zJxl97QssCJ1UrVaTg3YLRMUf?Xgd7joB9MD^VFSEPM`f z>UdeeSgs@CZ;dGxy=jx&*n$imzWWFqcwZ=1klEC=@Y9w)JrUB@LjB!K$E4EXFks>Y zq)}aNr2ynb0!T!2Gk`8+b|_6b*X6T35pt_k`_qfL$&Hy70(9Dcw^Z-v;})MchYnAI z%kU^zDo^8%^^$OVK1f&^7vxbz^S(4>dyTv$*SDB-fxQ3VFt&8fC_Wm$zvp!musnZp zGP#<@S%eqT2j1(BkX}l~a`4~}CmwNH}$5bMmJJD@s zPTI(juVlPtRJ6aghm%AJWagdlZ2M7ZgT{wC4h$15E>vWu?4{bXo@N%!Gb)0^@!VK3 zX9s(7gNW&VL~oDtUid-CK_Iclmyh1F<3i|eaJDcFtLEoI)3fb(_;jX^?Uhu6M=!Qs zV?bKc=IhNEkE%7BZMzekT6cwQ193LuptXcr!NO>Jac6^SpQYq0mAAux7$j-^-S_`6 zNKAe?`bvhA+LDo_InY6W5sI!z7xiZj=ADZ&cq73 ziZ0P~d>!2_xLUCCBcO|WJ_RP%Yp#jj_DJ~5c|>s$;%@?{nU&7g3NC55tYzb|yS3}_ zm`lc_!6SyZGt8a3Sdw|@hKOA3{nk#&cU?e&;kBdv1bAJdyYiQ96(w>-h+0k7>7-%) zqats(YFrGHgopDhgO)BlI0(5K5%G|Vty^KNu`BOhF-*Rqo_~AbusjP-@@d~jo(bn? zP~PLKU;WaU3kKXAMNZvIxQClGDAmzZ?fSN5Df|Nrf6aGO`{0;6!@okjAgw+jQh#T* z4e@eVpOx-v?_f4jH?F!@X;Bq(QomBHIpws{B*gq;C{-=mBQ0)y&#`Nr68Ec7qFT+UC-LXaoJB#Cjz6o%qKga~u=pY-E{d1N=t=Ox0V(U_ayybRg+$Hlp^3@lmL27Y|BugX^LM$c2M{ejEO*w34wu^PnLpjfm!H{d~SzL`~Ji=u*w# zH`p4q;eJ#p!(2N*fR)4LAV&Zw4BvQxRd^N`VUEObf`XsRO*O$ zBr!7=q0%q2645_piwRYC1A7afV&C~Dr7l1zQdcaX(rdD^i6M#@2g-G=$rLY$ja!L% zYX2;0f!{?K1451Ax`C9cmq9%27SW|{!qlI402jNu=*>z@?&w&N=vYGT6eUxStDM4G zzsz+Vs9)%|9H-B7y48z)sQM;F=q`MUc71Z`2rPux^coj-x=QYIm(1@uR}p~f7T|vZ zQK)O*xp$Zm_e+3Vwz|Y)dK!?6n+5S0p2f_sY=_K53P^BB9Sc<}4$AECp5Aqe?dRb0 zu6ntNwWwtoPUD!@t&DT4b32-+6_fHE=Q#T5gZ{Ggs_o(aT+;D(D@jez61M+dV(*I;ukmpgCi&ag(WkaDAHE<{bh zc4|C)`H%%e6VN=xy^x3icPW$~qBM1GENh+^Ei9eVU}0LO0O2QQGx zr00rGwbXJyARQ>(qR_wWiwxG>Yu(RJKOG8sOEhPO+ez%-H`LB_`Gu1xz&$lXm+x{v zj7LZ+$dvToeLT;~NKZE+|4GH*ovV*$$C89B-9afYzi zI@?f|Sy9b_iE$k^AXX2sO4R)pJ^@5Xd!>-*1V3!=*KmRj99{K#ABMp*DTxjXN3C1kt9PDGid z5)eU<_nM-*B`D^Dt_acD?FHq|)}=681_5JA)3W$py!7FsR{e1_`0FIv`pZr<-fPMW z$5CQ^X_mze4nlK1|D5nIjoE&|oi@ayuUOhaHr~kCkT8P1rdNA(CT7ENGpNP(MvutY z$01S<8K6>n7s7xhgZ>l;+^OatvvkuY(-cp&hs9{Snm|2gsBPA?fpX%9qJZ$x2j$|7+s8GE{^v@NXqpreoDh-%{A!}CPK__ zS`f%h%m?nF9!O*`7F+x5*@~W2>JV<=$KY^X98l>NwL?G`Qy@I8F|AkX1mAHe9Q#hQ z>E!naFAP2hdbmsUAoVg!XCHRYcmA)&Qb#@zgYWk=wW&_8E-pW`8}(`(I$P76b4xr% zrz}jHqwSy2b6&mqb2xsr9E3);i8xpz72jtaZN%6WdFXR;ZsXpEZgEQ9Kb-P{$isx} zp)1mcXj84<kApPZWc)$R zbb59}eB7cmjn~iTy(bzMZX7mvk}E?3&nz+RiJjj29h%-kG#Gtyf3q~`rto{n`pqld z(sKp~rNW}gU6a4P%>o#NoUDc;oHS@UQ-%V9dx3I&7h;}yQN&vj=))wVxMOn-g?pRd zaRX8enwbG(*5kSa;UrT@uJdTnto_8~?gK%7Ce8cx=rxZ`0zfXlQVooD+8r@H|A!2k z2Kfo~o~DuK{>8<5ccPr;*(?)Xl65hSDfi9ITKrQegBBLf;74iB>8`F5%Lpvb=fv@A z<$-36IjSo>Lh#om0A^dGezd^6gfUE&}~zaHJJyYptQ=IuNg;35}mg zJ`#^~P;qtYYkT9PX$u5a3d1U_Sk3tha{v%Hbeo=RB=qpozY%K~^X>_-KPM-}R4k_> ec=}W9Lqm1>D#v?x9SH{fLZzo|q=nM3fB8RI^l6*` diff --git a/left-toolbar-reset-last-final.png b/left-toolbar-reset-last-final.png deleted file mode 100644 index 5598dbb4bff411b92a7a1e0bc6d8ff209e845638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76314 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

^PUF654H;E<=AHm=dx*6YT~^o?Zp|bs>Ur{ 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

{_ea9xk3>VQ%s@CrS3OuZUFV8(E}!8O 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 diff --git a/left-toolbar-reset-last.png b/left-toolbar-reset-last.png deleted file mode 100644 index c907350785f08c34623d6906ec362416d7c397b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76183 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
{_ea9xk3>VQ%s@CrS3OuZUFV8(E}!8O zo3wB|W%or=Kk6Q|ZcV;=Ye%&Ckgy6G)~|fpB;aTFq>e+8%Sf7P?^&yV%NEUXk>HDT z)b?vvEBqE1zfEU~N0?m%<2yECI3PPf&kCiJC;vSBC;3Tdp6;W|11C_y?$h%8%aEwB z?cgO1M1?|DLRR;diM=?*4~tlaE;MA)9*F5_->=`SuAFtL_j5?x2tT>#{I|dKAHpQJ z1&?M_?kYba<@Kz0PDtC1)34L(6?JbhTWhM@i>O;ZgRaHS`ggCsorG0&C=P}nwcD0C zmzZMyf&D3qK0fBA&`YJ0#=f*ddh=+>t5)npi~DHMlhMRT%H4YOpOy0*W)tBhd~noK ztM(mewh`>GQ$b7LCS;^zUmRy}(S>g{`WLA7u+B^kdj-7Mn8tSSLAtoW%l&}>UY-s1 zH3`m82 zYD(XgI;ptyPUMY{f_{5%$o6n%4cgz8v5YZkl!7*FA}_9>6|_$I(<#Y2;uKHShOK9HrnzA0N-}X!wl(e~Jq}Ij8nVCXZNvL)54-|! z0s0}~x1U75!&UUv1|}2JcOEkWTbBSr*R3*+3#eI)RN%+TkGElP42# zcAbusGMwla6q@C%eD#WUsCAwwEX_z1TkVJ|H}p&ke$Er#F=`^AllD9IsyKWqes!9A z9gwPMos;9FR;gDUElv$Trz@vO@;V9V+{7_#Yr zRLF!O1$yn0hpf#m^Y|n#&y3)w7s*Q@unVGl>Fi!_*>;@NHxj(~_1=$WC`PUNZ{}NT zvt&H!`u+QC3l~Z;kn7-AmO)POQq^QW`Pi1Yqaa7ItqU@*=t^-s1+`kID*$%YD_pHl=YbEzF~>UZe&s#jjZ zn;;tb?p0lH$YZ;*j$Me2)k`i>lN&R8ks$v9;TahX!o-B?o!RU7ImVieskUcx@j z^%(Mp-IPIjFPiiw=pYWin*Re|3qO`1BR^Wg{60B5hp&h}!M{ObsF4>7`~C>+78nxv zG2rU#86WlbF>J$X|Efsu>ME_5`sdC(Y(?D>agl}Z_hxMAlE6U=UnloJ%$En?e!Sa! z(yk81q44`XK(437k21M$qc@YaoJtIyy2Fo`ewa?pX=JV))7YeqO0XiEIVXXs8Wai* z>PVoerBHT}St47`HpaAhrd+ST>IIvNKF|DXu~^1Emx87lS1jzg$&*iU`BM799#CDX z=rmt%FPy1K2N7p+h zy;eTSr9gZL(lglv_AI4;%gh6b5k`hwTwR>uKA4{90P#6`O>8e1h>T4gUMy~snfY&# zfv(DnFxcDh9g#P=Sa#&V(*OPxtYjz>&Y z&h1G-A45-N1+?k&FT&=Dp}hr{%^h!wDb_)ge2UG^8QcRIpm9mQ&BWLlHJO6Dsb7K) zje`tlg6eA3Q}X)GAi_O&oENCJ@3+mx4ENJ#odH~n>LQ~=wga&jeGRM7Y zwb>%DYm$ArM{nZ6@QDFKIX8WZIP`>#M+85N>TCE9?MP2ktYRw0lO{a09q#X8P0hH3|B57LuzL z_5(k0|Nc$ym~62^N3TlDp<;gbm+H(q41$T>tP2TXdrgLiLr{T@a1Z_R+7ZutDS6Df zmnIxBlY&O^{5#fUE*F>!7)b7e~N(ae|WW@8yN8N+t-4JJr_nVxt#;XfZPf4f(!Fa)#g(MVv~1p4D+(*y=_WWZF6i@} z=(ekoz^=Pgez^3dVyjozCvUk)=>GD)qh8J`2T%gNf{EZ=9+GU$C>Qv3M=soNAI_+WW zJMcMPZ(8v@-bGoKIYMIg{)+Yqu$Cr6H@y{@FCf2&`ItrRUcJx>4MzC`_;Q#!(TNup z$|*@`FXBRm8t~qPZ!fyCoFP-8Ub3@8&1H| z;mqsPsgT32CtzWd-q4h{P@n?u!qoZvLgH7IhB0ujen7HXhU zEyGhDcpuMuvQRa9gYHf~jC$6!)5)0hOw!cE?+@j`#)q4LgWSd!%g0CG=D<4~i;PT$ z_;e1bC^BI&XjweUaYwH?BahQuD=!AzW{k=g2F=v-p7kWzHTD#ALTr2Wc#ITe8~l?E*vArnk0Q!QNlIfGFPrz_1I1(!msdj zn!_?0Ep`s7<5k~wUrTi#S1p{agzXnNRU>=&D^1l=+_?MwzMU8*z! zI<6z4PiGjDJNx|yuCsbtj5;U}%`63S`^L{j3`iIItJS1%eZ!q+*?`(;=>t^@U|2m7 z#_1_=y;@(%G`GE$D1lLBc(zbCA#B`-wy5?^KMm43-=vBo2&tNsZ&=jUgVAer-jAj( zy_bYm6@C1w^*%t2ZeYOYXL(br8@3Q43yK`&x_WO-*PoQ%p(v4INn5KmBzq@3-V?W` zW$I(~=u?dKNqAoLu>xI4rGMkdp*jL1FJKEh5p$%CmZfw$zu^qJ7Soki%;xiOtV&o3 zxJThky4xP|Hss})WmBzTzQheN>X^BmNT0+_?QY%^WOWC0pV(?*ZtUrbcL%h@B-d*) zCEK(%82r3JFu#7+zAPQq?2*ZCtA7Vj&>tD-EYqQmV&;$H=X7rj?Sp&-7wUYu&{D1e zyGKaR!2BzF1)ZK=(a0S-&yE#tcVFnZ*jqk-^t&`6M$VMJ3q6;WK+5*uVpV!{EQ3g=w){~pA=9pS_zu==O(GAIwDt$c%8NQTwk;Pr4aZ_|Rv=$k3 z1x~1DPA5tB)#-|0Xw4K3Dj3fqF4eQA6;DX&(aJZd)TgwqBLhtLL}qK4`uEYUl#)_! zVL5Z}PosRcSFbuIhiMiIe|P(&BvFf~PX`{}!?I4bZ1MCJMWdz@s#IPSoaS@GxY$7X z`<`qv6`-uu&9PVJ@+!zWWf~ElG^JK@?(X8dt|iyyrGO8;Uf5S3g>7UOh2BiQWqZsi z25vH=?TJ@T$-8px5KsN0pH<=BWXh>anI?JVQ4f164KlL~K6nkyYka^{l;M2Zd$fDk zpuS(eN>Ly&U*1!-K)T(5`a1;BU(e5K98usqZp3>q(>{-(H^5Td=^jpkousPyV+?+pcAOZj|22yXpJ{Qgv`o8l~ z#@>4-CMmNZNX20L^1gReX)iwoMjJktf2oxGPbwA7)^udT`mi{4L07sMmH4rU1H3rT zI7&%aXhZ$Bjv<-YX2||awK9b|I8CUm2QTjiP5;>qXNl`-+fuq)N7KD6tp731QwI4Z z=bG*Z%U}(6bkC}F4t;PK)}6P^8D;%LjeochsX%7AedpJ>Pm0?44c&~@&^6o(CVIXH zLBUtx8-RxQbw+$dt;q#B_NU3zX_PGjsyUxWJ&`?o{)w_dB#gl%tOD94U$-}XG`?_7 zx}@4$=~wpVE9Z64;naBZY5y%cY>mDckX&qKdCaX_yc?UI3iVS6u-v5zaqaC)wCMYhMzh>wd4i!*r38_R{yRJYdfnyCv5b8K#j6gyQCvatT~!ew8a{!vMH-dK40q?U2Dycm04-;5I#x$KJ2*QuD$ z{tf(o{^l}K-dt-ET)T&Ct>!)t`atpBKS1Id-vEg6sTk?>YZ`3SK^>p*4#wq_IW&YJ z&rrJD<^DvI+ij27(8DtC+dYu=*mo?csvSj&o#Q_hpY|9_0U8*GNi%5Iz2q9TpWfiN z=@xY`gntY6_xmHVP0e5w-AP);#)MS2Q)!o#tnw=rCqpJg^Cr#gnc2YM@74Q^} zJ8d%znVnz)>ke1tc!1W^3C5pgyMr}f%^j@pKbp}~rQ_W~h?aumLq*RtJ_>R?_PyB3 z7c&3AgLJ0bZXAuD$a-^m3$S_R-bF$vYCd>qVj%U%Ym&|HQ?;7h*;>&Jz{0GGx)9RH`nXCNdlji+8H)$+4%E(NEp=nvHIhePa)3a2sxP`=dLMSmh|3 z#s;YibOSAs{jGtEBpoa+-GUB7uFNWQ;)jnbO%3X11|UoO(lp?VCzs#Kb-7Qbz>*Pb zUB46hqZ(jP+b#7MieyX9f9u1;oT&*ZPE!!i7rp#6Jsf9ij<03Xuv;(wNwjN=ABi6G zNc{fe2|&%PGuAyONGZ$rc@|m6EA48@!o`!wc!89#%EgK@{-A1&GA`9>xot* z*ELmCov)jdk05DW(hBDyRBe|^r}`^P1Xt$6QWRC;;-(G)d+!67Dhvy=hFg=$h zTNQI2*52t)DA)OXGd8f!;Q1rn3NGMg^C+tz=cD1z*6>KO=*OkPxQhU}{D;%G3n@bf zI}Z(R4Gi4Zp8yO${u?{?o;n$Ku5AdoHjz8nRVn_sb2mVXDnIZ-t1G@{i1Oc_PX+w% z;~7n>&doGZLK+~LFX0yE3NrFqWkiX2G-S(7 zOxkUlxg_@JdOOXRl!t3oe)t&h4!D$lU0Vfg4$g>lD9X8O4?WLQ|CHA-NCGGr^eSTl z*={nYhELc}dMFDudCzB6JHAw}nhmA;rtxK1hFXKI&>mIHE_weHn;zr*wEa^;L0yTz zqZv3~MgqL)uWVMI5$FDZN8Sf?`n#YV?n(s>BL*%>{>@4^!?z&NENX=tP+6Zu!md|K zxX#lhG~LDJz8o&Sk}{O6txU-JM<7FEgXGim=s3mBWk#3=n;Pb;nGt{FB&ueLRfRa) zt}*HIEz(10Qli_!eB#yj10ueoxJ@GB^Bcn=e|6dVqx5I;qqU!aC6$!?J^AN0v%}8w zMfS6!E7HT9t9mpaToke@qe;_t6uu|B-2AxB0?CVHGRJ(XJ0HXK9-|%SzXploDU~Z5 zZu}yBKywoia7;vJ4iJ6w-Z!&Kd#x*U&9L*Sr?Q=QB(lcBb`FMS$a$$UKJT7ic2+VR znqdq6DS4f3P+q&@Yr=&bFa;Qx?n9n~bi_!op`YxKyKn(z31pZHkM`Ja{tZ9edpr6t4Lc?P@b{`QP z5wl(~5*a zRrZwGH#>iM8s6!+|LFroESiA9{O{?1-G1!3cAIjCsgxxOQ_+BZrDd&5dvo^5_ip{N zlNlqwmjBn*2SYmPSz)+vag$Kcrr41a0ljonFj=%)~=`g(!=|8Z)5oAhB|(RQm|H-&`r#kk!cimEFVkIJgL16~y&71R-sPsf zyKlB2ft~)paW>HJ9k`tK=h`U`N5I_hRM!+U!m*V9>N9MBLV@#{O*i~vtM2Z9mjMlT zEw9O4*TjIZ89$> z3a@*%K+mUvI2&MRP8mffEHXMFezv1=I`c$k*piRQYJ$0;KhN%#@C@0?cF*(iqb zvH<@FXxh-=-DLx+gX1HSCp_?zH}I>NXz1E1XfK5TxdQggk(VyeeKYJ?70nK_6@E=B z8e5WtRKM1>Gx#sh<5llI+NTJQ!oQ|FP?Mg@Zt2A?(S39$N$}{pfCbZuEvq4z{T-i9uw2PT?lpbHzx1{@eUV z49lb+*=5p#9`p6m4Vb6rzqWt%cJ&tTExiBiEdokIc-&8h@VK+M0$}egu=EsuRTdbH zj59mDcmMzH64ts%N>LIKQKZz>l!3#&Ukob`;nm|gezVx)^wnFGgf^VLIkt!b(%ziT zX{3zq*5?~lBt+`RS~Y&Vy>xc=`8?PcSK-e%eytBzqF0~HxtPaN@@cT)nEHPJn;EFd zS07`6!Drk?-2LfM5EH4o()k;+&<04$@%c6k-?kCHFV_qryxSn~&k|CZ71b0)n35G7 z5AiRt<(*NXlJ#Oub|A26_-#zs;}M3QmtpPyd=T+K*~2DjZn{eNcKF5oz8=2BJ?YW1 zDn-!QpPq$3RgyU;f~c@EhP3=ym?J*ZM;Wl^JiJ}LA1@sB^^1FqCA&1H(kWrpr>#z% z@v?kNMhzSV83(K1Vep)P`Z@TXvrKKBi@)vZNji+?^7xus$#4_1%`-eJbzEx5D0vy9 zuvm0P9<8|c0Rx&lcX7FxJrw1A( zQ&$T!XeZ0sFwac*1X%d|`(kPP9JTCV_EDX4%<+0U_8t(wjz$Mut(d+BEQKD@_)eDK zUJR2_2kCod$Ik;%zBL1e$im1tO-zVDEla zOD3hU1XR)`LMlE)(SsMPf1ixnd+fd0lOe=l0KoeZAvU@4I19=k>+KPS(c-AMgWPwW zMBA3yC01|7t5gbHr4rManh6NCMjB2P1h)#k{a+lgnPEzozHtw=r_Vw&djN2U$Wt z7wcrg_(PeYO{wOKngXl8+8@5wKJT*3Nt^h53DfXE&v!Rph5r4EYGD+@z z(Yp1zldL{kq{T()>u>nu##IRg!r(R^6Xs@SCVvI;1AHm#pQ$ug@6JKD1Gom1JM<4dGEbCXzyZg%Z-9TH zS37owziJ=ZVlv3!CT8{BF2TE^kyFRu%EY>215Ss0)|8yB-`umhr@-}#dUGZvJsr>c?T*K7J!@zj`IY z5oL^a%w!_sbw$tR%-Im;5}X8;UvI_mGcS^h_x#o^$gk4~W;l`~yfZ}X_LA3&69*w{ z=JDe5O59TowmAPfMMyw-8de@KG(9Ezj)UG~ZvX8cUUs7jD8;85kwRO$XKE z8B+4AwKrBenFSb4w}IHo&8i#&gZvBqy97aLL4WG}o$;9k3tE(S#GG&!-?(ku=r!rY z;{S&Q=wL9^=W6)V8|8h%s5!Q9bL|YxIeqEJN{+1IQsqgiMnYr1Rmd$AF)agRY9XdD&fwiHT zX$iTV;A80fnK}d^h%My5y~I`xk^_E5^07R(66Z@kp7q{Dm`a*Es@WpW2e92XyFQhA z?lzyxMWB3(<)7bf0^i6dAcd*JW3^hKrL`8awlh-RP9psVOcmM>s~hi+5`-jb5crAC z?!R`hEG;m<8M|Y#F0>tud|*%~WuWRf>vW6-WA@Tb|>t}vC^|zQb^me^FD|FuL_P&p6 z{fZ*%i3#-d_sV{CP2TsGBKTl$afuoyAa(WH3moInJB#jBTkXgy?yQ%LJjzXbjz&dH zK`2&pC4(S8Y_>i)>cWv%QH7b`DCpr2M$a;#7@PxM9F#ZZ$i9ir>e@2Tl>EKumr7+t zm7`C!=ja0Es6qM7-nxIYesD&wq+2ELf;p`~YlLEPXBzh+juJuD9oz(krk9C8Y#<_2$eD8Ed_#25qH9Y_kV~qsQ_)ws z7{}sE1#iK@5%zxWw1mF(7>EkRZU=*l(Fp#P(vr3Nva`nYtZ3Fccj9bBSA6h?{tkBH zwwyVRH|JKk6#)bsLJLOrU#MBGsG0Q1+be~E8Uy*N#wV2kk zQXiA+Drk=8YuU#uHE6hqTd^dD{K@K1DLiv%M|d!%YNIFM;0J#OMZ0l7{uw$KW!Mhv zu*8urlif-E4Ue*$YiM{&FTcM4{w;#)fB62Ess)oKG*y5H;7kWTS3KQQXa?hUW(y?O zAIvxZdMU#5*5v8&7Ij6kzC`c|g+&B`ip#$M1UM=m7mQ^Zrbt>$^*S)57n07hLa1>x)7^vyNQ`=5afNUXLQS?#>y{F$TQMRkOq(93 zSXCbRXGXWAE$U@l=!l!s-dYIrbe#Yw!^=kjlC|oxolkp}@;aHDf`ml8MKxZ7J&rjk zjrvBzn-=u@+;f+xF%O8u>3r7IvqYW^+|GF2s?nQRvp4OQ8Pk zl;pZkvvv6ncHmQWux7yYG2#Vq&-e62E4nQqg5_irti@F1auu7alFp;7#A325GWS*X zf@Mf_n*fovhF-`CBOed>E}}mK)TFbgQ|yx6KH}!f$u8k4gZu#+o`iO2WUCzM1II1-$VqIO*j(yW#6&f28eW5u+7l5IX%ew0H~)y@J?H3ZuDdv=7%E6_$P>#(k$ao zjpjK(y!p|ZubWLpG7v%5jSJX?Q0XAG$BY%1r&aY+8f*sQM#NOA=LZ-yGK*xUHXA>= z1|o@*Me@FO_;k&fHGh^By&EW<-NncC6mxpOo>hOo@Cc1WY_497dYX}CR}&AAsLj8( zC)sYW%q`Nx5F#RQc9kAZUAd5Db}2J7`jho+q!hFLjeT_k3eB`yv0MaEOKQri>tPos z8d$l#rc@o?y-e%!H3_MWUp9RNSRh7}>V5`BlDa|PhjMn+-E*cRzQ`&}YTe;tJQs8E zL7?vadKg9%o@QN3AI4ufABxbRbgtR%pwdda;n%FU&%&uceJYh*rBX4$=MuMLUfuP{ zW#!7(AmycCYhstA&Ee8xhZZ*JN6bepEg9AJSubU7fkbWUb}#o7r0@@EWz;D$`&A_% zStEKDYnRFfw1}}W|B43)xzaoc-1On9ZAXML?9-OWFld2H2MaPqnv8$fcg0_{j*O@W zIsvO*`WKFjjZorHl6HZTf`inq>=-<+f7K{mbnc!5cj2=o?3C{`r z2B@dJiDQ2+l8Lv$UwPt2!1zs5x0Bw-VibUn#!(j!c|^QMJ%u{s2h3mACXo7>2_>gj zzYX5L1?AtVOFr|t;^@T6c_sYuSN7WSYB?bq0SzZ9RdNW=uZ{LLp`2tF#wc!rvXWwBq!PTcGIhVFg+xy-t1`Uxx5D`H7je^U633Y`& zRvxPGT$d?GwKl_fiB9{Et6yaVlGIY2tMTe~{>!nR)f{QJ+QSQ8n=qC?I>U`VzdW^2V^CYU;9*D=V!7658N z8f_vl!LQ2BzpL$2Dp(<)Z4HU12e;$uCe6I!a3LQo`}6bb(+ag>&l;LFkow^Sr1m;loWxMaop!{Z*&>J6kNe&^BMmr|BDA3pF)S}x<#q0t< z^_O4@fCgxqvjS+mK07(qok~1{9_z7VxPIZNWh{0|V%OxHDkg2fZ{_@jkT|&tJ#ywG zgnE$iW1VR=t zl8cJp_HsE3xq5m}tZpbI4xf>~=g<|GJ18bY2MQRt>Q})R~gSD<>*aaqh+%&_q4Z z9q>qGC+Bj*r5l`U>DRuih(w1hK#*sF(P#HmH?0~>z_t=m z5XIBxALluQh0Hu2^~jy1{) z|L@1=SS`d&lM6uk&E3oL5z2jxhxk63p~ZvH2D*sor4*rox&34ri>uP~F8h|$umdL~ zS(KZ7h^U!L^Lt&&Q1z1#)v6`8`T9v{H6f!jExY7+q@{yjB33@TvD6(rAC<9PZvn!d zS8{BMAxrrz;D%nTMuYV^U;P`9q&Pd1T4ZpB(H|b>s6F$~m-r&@ds!wNB)!-#3RIMUub+qdHoxAH6v=jE$8Y`z`9|1)!doFymSxXQ<*zNj|Is zpeP~gQH+-L3Hezgr~s~Ky&U*j5AxW)>uI*RRwZBT;smBprPpZ79=-^5XJzN=Z@)7& zS7_INa(5`KQyVhfgDXTUuiF4zJ>eJ4DCC7LMr>pdylO}DuTtT2{;~WgW|Fi7$6K)a zX5`GX?7P3qumU{np7XZn<1oXHyc|^+;X@@jO&fLmub`E^t$6C3;Y#> z39V*-4<<#@Fj!wWt?#4#FJL}{lV6ewHaQA~cM^H9xTo?gz~}~HH(nGT=dOlTsthNA zH5i@iG{_^zL^;RD9!YR0v_rJFy*rjE^-Y`1PBHUehmi~P)ocACJ)eq(YIWI0qHt{0 zr9T7S-dSpLoI7o~eR?I~(NeDDHFAF>+o$f@Q|5-bgE2!GwJwk zq6^WY5USR!!@rz+!FD~jBoQj1!rSNsv_HZY6+X+~Q)<*>#7zJ{)tTs3q_#z9<#4Ac z)0^G=6?wnx)MFas$!<*hJqFMBB#}O4-O{n7pVgVK@2C}67(aW6SJJaH$ z4W`=FI^J(TYru~ldh;YOx<`Eh{;g_Ew@nPxQZN~Lb^)7T=H?GxE>#x25Q;@hQgE~7 z7kz>KbRbGOeqoUsu~xW<8Xl_b2&*!#pL`V;Z^jcWRNDxOStSZUAyN-j$q2qWX(7ZH z$1>G(qD}AoWW}`^-g(Y@Ss$cOk7&F!qLe&xn1V{# zvWvV)LAso()*}0=2Crt#Dym{@fnRo~h+O-WBvK##Tbj_gMA0 z?X<(XC*3$v$`7$P@VYH8a3f`O01Jq9tVteyRh$v#u{}vHlfs_25tNqH zbE&k^PL zyVdJ%R-PD+>Q?$E5x9%;J`(=VW>9r@LcC-Oh%AL`xBafyam%4iZ1eQm-*nXk;CMFsBti0b2C*N}>O9~vr_<7CEg(g{?&Jnh+u5G1(M+MZNTiKbpYpLY_tdK zQA$mT*JA9d;p~NSMnSuAOH4$L6gP$_Kwz1GiFfQrFPQr8N2HUfd87A9Tbk`Y5)Ih=_Cn zA)BIzG${fKBzx0Qib#_#y-06Ljg2NvdM6?RQbX?$mEL-?_j0 zx&IC`L*|`X>s{q}o<;kYtf_lIh4bKP74-&AjQbIx!OWL7U>)FIwCmXLD7`v zm7ktUM&k4HX#dK({p*#w^IeK-#tSv!!_kl8A}H|?-dky!)n-}WQH2@_nquL{hHo=p z&ci5e=usGD^V-<06p1d|`2B^n)c1a?QV)_&Cq?zQFvwK{aPB2(K`W5t4N)7E5vNDTu}T=ss>C8gx}I3THqhH-AvqzfDsQ z_H5p&v=*m@F&3CJrnrsU))`1!<1IF(d`lGd5bc3woRvKf%;}d4PGjQg&VvNS4zadZ z7sJEWwGM5+uCWT}S&9G38M8eX^1#!}Dn+ag!8-Sx(5_Z6XXS0sTVwFb zI$eBxJ6i}IvZHBZJy_u+Be94!Ql%f1r7O5$ERmAjsT-pC#gT@pJktaoAdT`=?<8D_ z>3Ht7>e$qyVeYG?)GrZJ#%?3+x>mrVL0FFo56L5^eQ~}2^jC{5RQNblK5G>NcXN$Yv^#)m9FL=d$boI|GaEoa;UJ6dY{o&)a*PN`doD1+j5*d zS@>hkMMt%H%kPQc=#=cF@ce@;-xPrmxqebX183OhJ3?Ytf!0zN#@FVSw@HlDd zdGD!;DDRWL#_P40oI4y9-kSc_q7U^87HfqE1%!0#JXy+tsE!-S#btP&=mt!(r!YsI z9LkT2DJ<$1Lz^s_56mQvog`tGpYnqOA3ECjwBCrC;Y}T)Xdf_HDBc#0^wjKqS-+=R zha<`fB#d-j78IkBRmeT=nVo!&x9KlU^OmmJyEn!k<0K{2K35HPZ0}jM7011!d^!8c zP_m7=`PZGJj|p?5v!%-m52=%DNA2Hy-wsq6!zXj_xSJ&2gRSaRWc=i!xd2%RKptI! z9uy+U{nKxL^&?Kb5fnHHzP1}(yf314T;ad2(U|H|f}@5lkFCt4qP$ea9?f82pcVIL z{3zO~X8je2zBGV@xj#)`VxX42d|3bV;Id82V(Bo?^WWeK7_U?1b{Ww zd0FgEly+5_d9a0ZkRJGaN~%^=4sw>t_L#$wlYBBuUK@tLq&UVzkLh#p*|WFr-=fkU z|Na;T>wQ{OJaLABCTLfwf=+M)f~kh4B_JP~s2 zM2>=;vbhIM#<>cxg=~P%I;Mjt_3KW@n>PLMv!(<5h#Kf={%JQ97nnn7Ap|`@M50Jh zLDTf4(>T&{J!Jj&;DSHF19|XXrE%Qz@u$@^!iObm?@N;wMH=J@IanA%kwMGe+ljQ| zJ|iT_`qr_) z1P{-I=Z`m=43yG7D94tZ!7)0_z5G$u!p=_=8g%f-GY}N)$W2gd=<*{X~+MWhldzm|7_IXMnfKHm16NylmHc=kL_3CI{g|!;SA_DFJ>qBPQHNc^f75W z=jSP}CE>5iyLbm{L*WCzstQWlW`#AzKw4pz!dSm?eWhkYU{C#yGex!6AbNgz{=l-! zGkhDHFE?V!KzV)FM}~rl0)IWbKxIZPa|OdId}q|Lj3zv-^RDD?pK3Q%W6|Rom3Z|R zGmWmlgPM=2Pt-8%)tn*tBd(X6UsLlUnXi=grwP>2-j~}nEXBDIkdq$7SY($J{IMn#*LLk}3eM6>wnxgR?-axzzWsB>Jyf~7O5{# z42=O#ePZM0W1N%imV=zDbjl!gV-L~`*F@KC2*adZ9sCxIWCv85FAxPnh~9sUU4nvx z5I3ixD9SqQFuKrU!S)z(R(XjsK4|<;&fVdlGd*tNB0cvNBDoN8dJwWFX?d0!Yk~j1 z3(LAN4>u~K$oBTRn2DJtMB+#Bt{p+gZ3bE*{lA|;pPD&de>$Eg`O-ljK3Pzc+#&x| z8lhaxXlng-K1Jt%Vo`RG9hJK9I#c?Ew5tJ~OIu?=0J}`Ajq;zI@n1{kUlt*ZU!``rT}BnX z9GaRZoLGt<@;!NDVtrF$q4nmWyXVk;y2Ir0@@Sm=b_8Fc0B`*89>EcYZYEOZ;AfT7 zZf?6!G=*qj`w2xEMdJ4d<3fI0wj7xv4%95rB;-ar;Z@6f%9a}x47EKpvcz+E*?(sq zi1_+h+*95yQ1Yg~PdR5@4}Vp$3A$6$;&DW$6!|30ZfkV)gLB{>L{&K$>>s$>=2h)N5tQ+J}VKx*g3KxtX( z!>!-}>NPf;N9|d_pB)H2OD`4ObfY+4CCy#gp;0b1wfZo z{@uQtA;LKJ`qM^e#8pXZ-&$+*2{gZS;BEbb$sa+#f!>qx`PZ?1-Zw_VliBYZ40MF?T# zJDRr`IpSZ8sq~-;dAbjeT`XM4>|gmsp2y09h8Ti^+67OOEdy~5&^ZCuYX>kd&m&{l znMQNyS?Vc?93S6UkQGVY` z=^h58(Y5*Hrgcc@f7b%`#_CVa*ysUFy@*; zZdO$fe1aRwkvz@V_(C1=G9%Z$cxpzx0E`_D-i4g8c$v%?i(mABLFA8P8ANo5}7e?vF#@+7bu?4=2B@RV!}oV;wv7PF68#S z8z@;+@;j zfx2dX=!zZhAk_5a@7&1vH^!;qIpkxYYR9&lW>xzj3x+zqqe=?V=O>i#Ub@W0DENhN z`iVbbwnknXho09ql}K>KfrVW>+IW`3^_KHa4#@qM=t4^B!CVj_4^CtS4ZGhxBmwFe zB9tBna;{F$AP$;2yiI^3NIPw3VnM68Gm))=MC9E`iZAl0o*37*li6mEvqO^R>G2Tv zp(HT0N}eTAMHe7aPJOTQl3JYFRTGxKb+=2l>uXxF_jQL04b{OFQ<*?9ZV6hQ7hJOK zD_J#L+Awz*>nc+;7)1EIFA&QDEwfnA0M?c+BJogoZ|{Ud;LLdo0O9o(v^(-&ekJ#Nm}$)EDC0NLFqCObcHhWxfwYH|(*{oM#g!Ja1$nQ$2g>a_u_RC^Uq9$0aUs)2}UyVBTo5DV4o zeCTOrTyVQs&~hBO`g9h8K3XfN8Z3UEhwMy<=#$qGYn~}Kq%PwTXOT~&!DZUihLn1O zt;7l~=fZZ#PW>q#Z&RLeouV&2p1WtM`6|UJ^;M=@+fs{p)`6XydA*g}!`$AMfzemz zGCJRh7x_L(ENcB7CToemPIz!8i!4MN-!I5_Ih&Q;tTSrA=@8ht!rkvza-aELV;#@z z70^JORWQ1j#J}C7E9%#kG*f4SJ=#?iH^4Uo3IbC7GRa!G_x?GQ>OGCL(W3e%4CL0D z_l&YR|CIZYcN6HgRZw7|&_LC-*IhtOf1!2>dkCOs#;Dx_#1Y#``Cb{361ufqPQ1&xTG}+eu?FA2nEzNp(gIuT<%D63xO!bBjN{6eMa&$6{jFYMk z=atHym zD6#qfWQ4jOb|Q}X`2fkC_AN}6gI)UbR8BY6!X4co&61p8b1Are|RL0 zgUW5d(RD3xC#lm=aOYA8>>UIUq9{(8qo|L)0Pr;Xs&`xV)Re;NMzt#xhc3@A4d8kM zGX~oQ*M{hzDLM|+NBRxl^v$?^g&AmYg;`o$;)PnWvWG&JCIxEYS1N_=FH@D%U7%E2 zJuq0r<<5o!anf-STW=rlEVIim*KYSD^hG)Aw`d#FVJIbQK{?L^kQMRC+4IZtYjXNa z)qjSpdc@Ma!Om1p08ySRuiL{0+3$pu$Ok77vj01!xij>&$9>32_a-1BE9GO5|6TYv zY20tb@VLW4BT1U)L7a*>EL5e}?}OooJMS5FceVQU8|wqxoVIH@j15&u0d{px(Ea+C zohxZAMaqcjzTUj2$-iL6Bkig`J%nkvq61wxYVK zbBze4-*ZmuBapn_7@u%!{Co^LX7W#3jk9YEA62K4xqO658Qw#plL9|U_Jo~c;O8j8 zKght(t^l7lc?s*WP6^ryULQwip3vNqZm6xwrDoYlNoMfzT)2ZgfJJi5`3|FclNHJ0 z`~xon((ZUqZRSn~+$tzHur{sGsXo3aiUOEx#|{aTKQ_?2eF_TMmL9y*W!#w@pE{&6 zQSU1wzWeSeVRK!(C89KL>se>ba|J@Jd+yP(p+$N(?7V6ROynO5jAm}|Q+YfFLTOB& zyogqBy2kiP9+(|Kb=ObaU8W>Zv#!}krXkrAzxEKZGw#;O?6)6@F43E=^<@5kRi>QeMyKMXSS3@sGRtmR zhv+Cw#>B)n?%O>p44~_5p<_b~zp8<=f7%UU@A=oBIy0 zU{AbT)JOH1skFI7SpBQ_Gk`V&Ufz!PZuY2Q^WNVIl;{~0DRS{-CDV|fw@?4HVo^oZ zT0$rrm0D|?Lf2nlqQ+x^3}fXLg6k)P2$I?gyB1^AZ>s@d7a#>4Rj(jnzKlTd*FR4h zz@@qEG?`EGbGb50Pl}86sl0hM`AX%5pH)_Rt;q+5v=C|Lzy<(0>XJyz=Mt_}feOS9zsL|NtDD045Mr6pR$M5ZD z=kw(mEcv8EtZ76yFD+>Pp#4XL2IryoB?m%`_SL_CDqD|+LiwsVbKW_WqIH!zc zHpW*?br|YP-{4#*FdPZ@tx-s@%~EOQBE|oF_uDB$Kp-$$*%0F#t&$*6^bd~VZRWKL z=Nxld_dv&D6yo6S(h?#X%U=1y1rm_=S+Y7_SlhPwYZ@&-20#|fw1K)t)SyL01898< zuejc#$$ww<*ehBv-d!ug*bEjR^}mnDN$Wt`<{@=E&VT#(=%?s~>r$?XhANv={;Tna7+N`Y9;sifOQHT7wk@xJWqE#Bhv?!=|9u} ze2=DYU)ZS}U$N6%)AQQ6J$AdS@GIdGg0_t}N8Qv~M_T5tPsRHgbM}n~rHtHTly__X zHxW>SRrs1oGSSgfdE=7A<05A>QM0#<&@g7Me7-ic?e@1L~6sQl=({i{C%by1mJ)c{A7FBc=qRJ9=cm;x@ zgFbcH>Gts|F9#Ra?o+eO9o;eeCIxOhi_Q&oycI2DIs!ntCqufUS{1$KFu8*k>Lch0 z0bGpulls0eMbhLuYbWhMXv^n)uG*!z?>$2vCoEL*f>%#yh6qBG^(|u z_}#~wIinG`T-6(*nL9PrS>uWY^i#-~g^6KH)1TFsU&m9q>6|wE=YjE|VyDGM#3CGm zLJ}jcu>oYl1`*e7yrq{A0UfSza$Ny;VOcoF*<7$cfp^~ACCe?NTylI`H^|8iYOR@8 z@tXLQA=&yd>vD9$=-eJ{dO7$7PE=5)kb0%lI)gb);GzfN7jlU6VeG09WrN<=oU(|- zZ~@SJHz1FBceV)HflwY*vn?bt0$|Z(rxE~g$+B?W4|VjSqG#JM#)za<7(-{Lo~qzx z!V*B}%oKQN;NZlqdc;80p!DS%CG6CZLLG7#PGX~=EGceXn=p#EB|unQmiB%z45b|h zct#HWbbG}&K0r1kr$mJKHhCe}`iovF)9p2(&_XFoaebhh6(@(RZ>v@5Tc_Gzc6*q8 zb{NL=L4v)H;APJMj|AQT+P3`l^}~WV=bNt9&nPWDp|6_*1YchHBv_a9aVC zV$FdKInNRBO>Ro=&~InimoVpTzu`N8!JDd-rn$;s|HpqzUiE3p7NfP=_FX>?y6cB6 zuPX@`XYKUdhy1Q?Rk%p?`pRYEbh{b>LWH(vNMNVi*2TKT&;ABTY;8+tBNOHH7=R?> zrtGQQHF{kMS(4`Pe>-4IBSF@yt~_ApO}rOyJHE>$I&*jDK-mPWJ4xuAZRh6D*Ho|2 zlA#gsiuxE(8Sv4SK$g6>%2RR?tbqG}jy#pF&>Pc^{3EC0I|&BP$ zZ`rF~H@r_*e$sBqUYBMKk<1+E`$+Y}oR;&8z?#AV{s2K*!ja#h6b?`!WVWCh%HSVf z;AQu~H-JxLJAdZb&7WbqL7DEnV-Ir!p*(&t#!j=pi|9SL|6Ya$QBGk*bbT9U4|+-u z#qN;T5ly(pVbZ$;3RoHVbm|dLX6qH6;}^i9fSBqd32f^feYYkI{(xg0k!d$`aw!Y2 zA4dQX}y?b3V>Q~3a)SHpl$=i54oT7+!hQcDC)P~VG^Q%!Se?3mrxB!UM9vJ zc#{tuC?oWU?L-*m{p(i3B6KZ|Xa!Jd>RaRLHp=MX2e7B-T&NsnVG$t4eMx(PvPuYp zQ;+*&0^$nrxRTg;0%;ihJa|g7YB)p{posz- zHJ}i08fj}j9sj>hO9{VEL9rpD0?rxNvIjTcyCtg}0|eC#)zo$N{G=@Ib80UZG>>q| z0j4X++PE)XCTydjK}4KOa{jCZJQS80^ z^K&4JQ^184M^oWSP%;}|>-nqmIM?f^YWP4JdKa+MZZKp6*adL7;qreD18$_q9ND@q zc@2;NprU$7{a=UIbMqhHko{~5775-f(jm}Vl2BMtVc@c?)_TZo(L=;qNNLmg$woI5 zO$WF941}KUzeJpsAjo=fXgiE}EQUbkL_v29pqaq(%@XJlNaCED32a_X0eGKOKUfxz zuOnRL>{hef5L^be`@g^S+==RO{hcpH_|zRdbiRvWwqQp^WQfjMFR&1+OXQvc2*pKI z5TGtmz3pGvehYmz_dGtT{lF&W@Vl!~f6DQ$Gz|fHTrh1(paHj2Y#?NM@R9#8p$ylC z(*v)E0(6H3Jc&c9ClM7Gc7x#`|MXJzXP8FM}YP4!d^gl z+ix}vUC;B?PGa*4IpJFc6;vgKue4N~)Mnop=1(e&yiHKWWixlWB25oF#mI^j5OA$b zXMs5^4(lDVlR0{Rr-hs$;RL@t_Om+90oliFdPC^aoAOHl50 z4M#y8A*rAD=_xZRv(BwcDs}!@$nMV4^Cy_&FMzC9#PPQtJ~2Mz zw5QqVcm6%SJ8p|H`u29bH%gAm^1+kv$gIbQ^nm(JB=pn|kk5_L%@6>HxT<;0Z3ar} z7&UUs-!Or!PW#|zfOyla$j}jJSBx?W!54ypPe$2Dm5{I~z+USYfL$hDa9QB|pLzIB zvm72Q3iEy$jyq1ZVSCx)$ee0-s)W`6YjbpB9wgd0^eG7Ic zsE`MubGhg**ItqGZHg)UY<`&XP3LR@a;8Qh$5A>IaAw5l;ZrH#E!6h_F8n9)Ea?h=DpeSqz(=fZwg=Cw<_ zP_LJKk1TC>pBSWPq1EZ?TZ$2?UQ99l4Xlx`T(p!RYhdUM@%_yK#IFi;*atup z{UzlkqPW&BD=g|_?7|Zyb`ZL50}9-=M6A$R;#n+X&-JJt`WP&xn>J_spbG?u|9r{h zOKb^Z|NPmk4&Rg~tbnwT7`^*BAHRj%SJ8BYH|t&-FB&aGW={T-uIaF=YyiF4>-BTs zR<~;Xl#1SB#w5y4)H^Cp6viRDH>pnT5hM~3AH#3lp6?qb4 zsYbP|T|fxAW#`k7kyc=0nu03&a_>4K@$@b1qhGM(A14tfaG9u7?W|r2C?$WI#$-#! z-|Xnp$k}e_ALcLhvw51cl^uDV7R!z9+gGL8-PWaK zf010B=LVvjs6R3QRBtW@{cum_HeV2-4+2A!7mdMkpPFozCg(>3q!{$sD`j+uaY>_t zU%Gp0TiGMIlK6@svM=DZzT|pq(NDtb;5h+6VfG3ABZNr@h^DtG#TMPj4>+>EM{pm6{3|M=i$JC!`=Bs=`>=Cwr0;;kfUa(W0bSmBN1 zSsjG?mPTxO_$X$3!HUD8vvXZ{6>WaY zScpHsafKU9(o-F-$;zD+k2|M@eS9VwB|N*JB0=8t()9L!QEEG<8WSCd`T5S1|5I9z zL;lNozIS{67c}}bZ#I;*?!|BO4IUQh43ak`|0rKj=}_gleGeYX`8e>xWI(Cym41oy zEj3=d1aE|n8$Ac3PIjrWIO3lIp(>^C+x5<^S;c2jjcY~+J_?IhZjorgOE-U*3i8I+ zrsNn${qskzf@&c`aL7GbVugQ94D6MXP;MCCbK_}5*!i|GS|AWHZjk>g{m0Anfj(sy zqx+P{i%0%HPXg2b>3{|T7X6Cx44wBUOkIw&2A9Hm^(*eVyd?zWC#r~|q6Y0B`HTo? zR}^f?;7--d;eiS!C`soKlzgmQmN+VeI91BbQ<4@CH_(1@ZgG_ zVqGk2j^7X4CqIZe8wnmao#@{CK(nWQgHo=-%W$97xQ)F{rV}rRx?*g6I?c1^JX06RsMP-Mj@)+A9KPW}D~9#+`Znjb`x$?DV9~CuMP_s(T5q zCNRi-SqI!ewX^@>rW&_zNBlTbd=Cm6TyuZ~BpX-fmWJs)!AI2bydvrd?wUJW8~5A} zN1N}q_CyKu?-yD6pS96DBs5L(^^fH-$+0~?(kcqJi9u5*s4!Yu#ed>2G)MCNM#QvY zekN1Ucm6ASmABgc^);)@xOQjgy7YoW%wJDCBAM%BzRu9i9R}s}_k1tF1$t5@W(o<3 z!mWv`M04=ph=y>BXH@l{^>*wOT!wB2-z@*ylEruub}pUo^VoF_zx00EU|g8me1Mjn zR)e7JM0qXSFUkAs${m)1cQ>YvW<#yz4D{)8`ShjX_1YMs zSl1OGD5rWW@WG(O;9hFX6`krUK>r1S-z!Ou9CLzcxtJP+NNTFIU9Eo^j``QsntRU7 zn>CMyiz+KjaC={lsW2-+cXu$+!wUJ`gwWBp69D}sORsz%nAi88nS#YY;DQxS_+%Yd z;ygQL(7mx$P;40!|L}=S86-B^x-ZdsBaTl7@nDepA-VGgDDB3Tvk;C^)UfEI?g#Pn z)21K`j305qfkiCnnyBi}ydIRPUV1VK4_X99r#W3*1Ncp_)>E~l$w9#H&C<{w; zv(zwt<3rRi){Q_8r1B`dr3G@{3jV)0NcXJ&_XZhlSrzS87S;0%9`=mmv$iKW-*oQ* z$R~gD^I`5m%{3dz?~qO5zDF?ZdY)FEWaiif86ZgyJt03mP*Q*_(74oF6v-lm>Z=ur zv)00l9TXrGd-cGLP(10^cjSN%lI)rDwWm~svh-gwQ=op!>Co(Kw-%Z%-;{q4#5mCT z-}|M3u6pO|e!By`6U7nTaR9_lV?c7&tajCE;|$N$YsHorsgG96a;WK=^}sW79o~07 zF-ZQZe^*5m-%ENO?MRWv{7JzjCeg^afRKhuX>Jwq!fRMlnaw(!(Cu|6u+j|Rl4ZDF zb>91_%NxaN2uPYmSK3aL*uA<*r5K_NJ5Y zXt%!CW1_;x;mv;A#e;<~ci{Ns~*dW^t87y+gEQi3y-30wGDZIutm0wpW_b3$!RB_B3q z+|?8C7rcT2*~k+8jTbQ~cL0U+t^=R$XMV6xiwf}1Srg#~Dt`tM zHI9DZ(|$m1@ zTiSxI#7aJZ2Us_LZNiUqGt%od*mK6lchE;w!$!tulKgouS>i5WAu^Xt_dzch^?p`c zn+_vbR@$#pm8Xt|K!x;M^*{KEuglvNzm^iI>L~J^d>#Fy#N=te^&AK7Pj!Hk@X94= zJ^H(SE&otAJ}Wkb#ZLUre&PeixM%4bsfg8y6dlXzad3VE%qJX=iL0StKRk@<1*DOH zuj=^_^*(v?xl=REqDlg4>yFF^RRcoxU=V8)cPL)Xd_FXz_uk`O9uE8=5^)hw@1tt) zzm+M%db=oyN>KSjKWoHfQ&m4il;Zv=c#z5=U zmY)1CWUIX~+LisboxLjhBB>oc=k}LsDdw{AU^$7!EB_Rdn)`v$&o>;~u!!f+>u#Zf zZU^UzJ}_xjO?!OZr3gr6sa%d7@w>CSOj)iM_fAvB(3M~Db|%_JsdZxZq{xD#)7R`k zD#UB}_Z*D46i)vuSf1jq&8v3%k%Ddm$I9=|S0ZvSJ_E9Eo7L6p)r>a(eONqnGbdFA z0L(b6^!fkt|3(Oy)oDFaF-)=QcG))A5vE~_lwGw69QpjF_{5=;cyYF1g4p}cU}s%_ z(sJMq;%skvOZ12AS>mN{!~3k6v_!EscU3C4f|2p>?#(}=Lo9DPCspa6y$LxfNuIfU zs*QJnDo3>=Z%sCF6HzTDlew+xJrvNA=`pQwJ^PK{^mp&fMF0taR_MiPKJXlUb#tDi zWA08nFDSHQ)G3FLYQb8&EJdUjyAhr}0XPFrSZC_DJ*_NZ{z&1}Unjw}a7E~6v%V3K ztyI&Fp+aV|hB$J$O*t~|eiiWx1@Bk^?djtiLh3^m&$Eu_ZC8O#7Ti z{Dbt}?;q!JPSTIx9C>ggJ6x4(oY`&!e98@iK)(?$NtFDArAb#zl;u`?O119@4zD#7 z7E_|$RzGamOXBrnI+}m>1{B((a9mVYV19thgyXBK>Es?TBl< z);o$G4M;wz?!1EdP1o0u7pkhxJ=q0+1y(w!q0qqgm{HX(emrOxmYlD@sDq0ucz+ja z|4chk`F&dV&YlqP7z?*&RJbCgN6Fn#;-$5k)`MXBFmtLd?jPAhr&_{R^Y;{3fW^MTV%KRtk_g%un`N>^%KX|9gto{y*n{iD527ylRV+ zWv>3xLbkUo(gH@TlsNvvT&LRMqd3=+Ap25z;RBT7 zm|IP-L2b$%|4M;he*SY7)8p8=&;X;=p2(g>Ro&gcT;G6k0@SJxgJoi9V}hF?z0W)F zsNVCW9UB7G>AQK@ZtPJEb__3q=P;KVkfX(M_yDHCCJty+aWmZky1eCzhG-;GOt$YeZddWGe=@_7Z-`)>dvhK_|& zb}T8`lvK)ZcAeJKx#^$-JyFp=uv7yGc5YAyf~F7t{i=;Je=OyHQn_vvyod|h%!|u^ zPFzJ06o#Qo!QeDx2l~MOpdE=(f{<+>r+ehrGz+%5R_m+s++DhzyKi6|go>r^wKrRL9e0iA&BXQA6_;C01+_eIo%EiKq8USeEu+LKpv(TqqF%f1Ou%-;CgW@U zJ*tH?ahH;NSiq!!Ro^-sC7)vlDX4nlCD0g1;dJ>R(hf}hPn2>EJpQs$I0B#sY? z?MIA2HlgdB2!gwN>|e1thn_kJfquq|GMTQxK!LT=fm16>r$r2pH;aypNny9DLu8&@ z@_k@}7?#xcLT&u_v9X@#_Y0dD>o>h~Y@;gf++eRPaE{@!;b@Zy$;>`$t)+wkK~lZ@ zutVS`;&lkdFKDM-h;jw^xCPm@rt3{Y6LKRy@oT9p)PhGqTrztP&RE=At3p)zz2~L` zE*(d#lNWj!AD=ygUMD>%_KiT>S@0Xl#$6A;NY3u!kMuJog+G69{5w^1elp|hGCeRl zb{td8p6FG%n1^@Gq`UNqfzoaVEQsKt6%i5AkHBN$gzZH~=;}LE$ijYoT+p(T!D1^h z3Oo%ZokLWI1G@B<0LWl48HAU*SbuBKKD}(tSH%nLcYk6*O?>^m%J!ye$-}$Mzf0cT z)@mxGDQq3yANNTy6SS;tM1g<-K8w=^OuvKfCf206y4By`d zK|b)VMG)k#khbp&jpDe$*UmBwlpV1`HD@^w^4S5URG#SF?c0iB~dO6FB zvKqf#^f_0jzIo$W^aQR|Vx{!&f)Gj9-#+d+X1;n{L;ueE)jCH)xV~ue>t#Vtd{V57 z0Cd`hK15kc=SI}Bw6Ah-yRwDtRl>^Upl$g_;NMPjez&gATJ*%pI{2sP`ju0}w%XrN zP!tLXL1v>Y!tr9##=+2QhXhc_Ndhk=E@XF^2||99nbZd1db2SOJ3jxO?k(dW82Dkj z80o1RJV+m_vn;G7X98P0w)`IE5zkz`7mBwk+u4gTWaFiLzDK)=uLC_;y~$_+NOvrH zAVd8FJa0=_o(uUIK2?$NByULG+x<0fD9Cipx_5n%u$&dR^Fc3wLYBz=9vCJtcsdgV z#EYDBA4e*Vdpv&0PX6t*G;Jcs!~1(RsJO?<01;d|sl*XuegN&)eu%F#onE{<A^c8Rh3HYOgg5R6bRJ>TVuF z9{G+-s5*2CXMj5q`#XrO6*cZgqLX_tS|<^0%k-VHDTG+3;AGnH3V=)~XWNcD^c>Ku zwnf=I2*Pd9K#s(gPS5QNjwidLS4a;nx+y;O5Ew+_v;-bR_fFC~t8p$ma>zb^hV^?` zRCzX!#`6J`?RbG$%^X_Ibjs20Shy4*P?#{~$UACvc&boF%AAGzB-Sde_q~a+$x#n_ z`?l-0YHl9%$|Q6jL$;%Cf7gzYO5f}7)ce4QXo|^Ilsw+b%;)H9&0+#tTsjHj zO2$K9+co6i_)#M{6c&dQvuJs9l9d|N+uw^vr$aZHAUk@HUg*jyahP1Ab9N3DcQYZc zTb?w!lS3{2*Diqq0G`Y1m^371GeHQLTMGy$PTXAsOHWYO@@9&Ut`j|iCQf?41}M~y z3V`EbR~r=+xB;0-V}2iCe%oi>ZBj{W?$s$nA&QV31H>WesbR-QR19YiooH za&!5mCQCA%CtoO4Cv+RsFC6?D>-b*lQzu(mPcNy_AS{X$c4s_ItyypW*aHk>pfW4W z13$_2lvwBO)fN`4a|?f=IjNC(^i|K&7N)rpa@1QO{#Bb`qoz!#c=wi~5v4se8N+*f zC9!a+T1Mzt;B*a1Im`q5!U}r}HYiaRC&roGNc2)TWfe}Thm-rnzybF2*qtW-?M{J- z7T3n&t7a^B3XIFO!K~wg6Lm_{rAztE5Y^9M$jqM>gL-yyk1PfbhlhvZwG&g1XJVX>bH+#}%7Q8V<3s%V`oyz(Eb) z#xI~pZtHI}_##lNl;qfcm7jbvH<~bNgZ68k7L5v@{iMGwJzKgKchEj~7zMgct!Q}^ zi4)$qa^dex7ecc3v|6o6t!|x>@?Mjns30oR)lkb)jBqbWEYejWzR0MI_Mw_Y{}o{F z+{mfsiSs){$^uQX0BKe6 z@-(KHyMCHqqd}|jMoDs62~Q1MZ~ue-(^H8JY|9VCuTDk=hzk#ZYS6uH-g3+DGPoEi zvWWDJ0cBHz%_;3j5}hT+7l|$g1(s2;YL<8rup3fynJ|nvGPS*b3I%}p^9A9Qdg!9j ze+ZddS^@~IVqh@#syiMOJS`JExZmGKs0STGt)C#7)=S5f)$d;}3(j$_Y0c+FlDR;> zrrlYE)ynW!0*sUggQx`R70>bw44@5*}InB3fDYCFtQmB(%|)Y52C~pR z=hi9>juO+D&y+P*M_|^Ur?tVclSx|%&#!TCMEfl|XD~i@(fKF{)8bD z=72REy$eZjNHF(f_eMVsML$J;$!4Aj`Uz;4X5E1GQbMOmi;HSO{LqOS_f!b&X>C0T z*&IiVF`}$V!pKQ^7Qz2R1eR74-UeKBLJZ)MrLF7FJ-#P(SB|*lANW zxxReV;tFVrjuCV#yxU@&TMY*aXN_O9yjk#j!q6C5=?agD3HnFptGrI8U+X~}2#^=7 z{sl??Xl7jR{MSxWsn+M<)B#DQ+W0)&LPW~gRU6kR5kjT zZqGUgT4fR$klc?NEiAA+y~^Yy4*H3EnK&o$|)Zupc`->`BmU8RD47VpWs65(++m}-N*R3lX)(T<7-eCbMhaZ5NfZDNty4lh1@72yt z3dkC(hE|=Zd_g82PIv%{J~q6rmbZ{U)*7@FmpNak=WUd)m{(lHY{}~1w|Dl#{Uh8L zWdS6^K!umt=*7xO3u)!a>=7C!NmwiVc6q3JYb+$Fp+(sWH(&DkfMeb;MxWbUYyE#` zg#{eb6;+cVdGh9VzFk?nZ&ak^?4gdmiC!tns4rOS5ICQ!9tg-0q29`so3+lZTD9m8#Oj%lg%hwL2iv@hgp-iUL^x{pefT@x zQiBN;f!aW4wTS3u5>X>8oBhOb$Kc_oAn+uAdU9P630fM3{yuzF+uJ zLokqa`c~{tjo9G2vUZNfkltPIwv~w~fgopDM8m-JmPAEx$1}nZah&|5T<( zQrE0uj8wjrKzd-%+Y}Ej9C_XEhXXZxiRORU#Z1<+H z=L8ppmG0qbFhXK#w5B15(p2=;HAQK_KSAVjR4>rh`+vB4?|8QU_y1paRa-@CR8d>a zT8*7oi`G`FHnsO&wUSP%R_!fCQ53aFN{rg8wO7R65ky3gs-(4c|Gor60>ETom7}tZN1CKW0v&+hZ@W+dT59&a!;kW?>v>l&9d2g$-E063oQC9 zu2Iw&?qca+5k5*Al@rN*U)7Y2D4zeY>u{Qy3o$bCBVF-uQ%u7$-;nOXS>hi~Lx~w$ zCF&JpDftagxov;ZWcn50Xjg4AHnuXb{n|Rsd2%-)3rS=@@9p+W>9bR*TV|m4hE*Fg zx6UaoL;1L2ncST(8lxx6b0v-ehT9=uAV}7Do;*krt7?oqrB^vv_>;b98JzmYX?y)( z@8Ws4!0z_62F3;w{Z0fIImA**(V!yb_h;BfOGW0bb;*pco$fWN>@zmuuV|tQd5@HU z`W?W1PO8_6v!G+_q=&)vp6<1g$}4LI(u<$)XC8 z6hSqKHOo0}=YKn}#>Mt*6ckXY<~&_0z+jr-d0N|ORpLD40zST_vk( z%7L>Qv~HGOi0!6Z#K=X1Jb83r#@#ED5#xLI(+RA~80fu;Hf`(e@e#2&fJn2kCQA9; zP_ECX)xc-G0U-FjQ8D1`dw&J~+iCpbsO$N9cQb#-OcbLVF2r<%YcZ@F7$IG>3+4Np zZazyVXWt(KYAWaOSvp*ts>8v#cixtcS9A1A^Ktz71y)b+Z|V6Rc(H=|90fl$JL{<~ zwu7O2&1&-ml$KDmDr{qHR$=L^7%mgYn{N@(VIwXSor6SVAxNVanM_lwwzdk{EpB&J z^91*L)ZE)R+O*kAhO!lJX`Ip)3*#d%%X2W~r+14w9xuGk+G#jCwGM-Z>-Ie#h8oM| zs?@O@Ww6nnqh>`7edc+v=2tDNOj~{=VE5n7&+@;WU-r&pY5%gBPrhcf#jLu(u1~>Y zcG6>Xa}#bL{OU#Os3nA+6Yw0}UiNR^4I5*>$(zFhAKDv>g_z$d6)F*SjGRnGIGY@U4m-;4sa{_d4J;V}Z<@OucGU{)AoWU@=7Q zsJyURSbtmG%VS?6l5LC(iq<+f-@Z0&CsE@>Y;Qj9iKVZz0u%2#_V?L|N5f@Jq^^f-nL77tW z^Im{;`kH^OPkis-qH36*WuF9CVn1K2Ib52v2bYTSzW#+8CNp1y;-i|3rz z@*#Vcf(tC=f0)OFE98ZzgCQ^#3YF;?#ZX&k(IPNGV6n;lr;P!&d zl0ygJe~v6i&FMRfOvQ|xIhUbI{c*D$D&igVK;0RF9Rnf08@xah6+)Jeb}36qVA60w z)K@P?Z`wFLN!r?!C`DJURo_wo#PRz-u9rYK)}w7-M9{q|&`llJ8FHFkAsZ4a?}_!r zXiXZZJNPTWtfyKQYfs1J3|pR#s%;Hby1eI@#}U@kYnoyn^qHSqII$=%PTW3ii`cZ;l+7@~4k>M;q=$@B{hvN|ha26Xb1+CtAWGeN;EuZtdn=AF zy%w3f>CRW7M4Q~_-52a)2Y$_e13}_n;k7)$F5Se$T6Dxn2ED^TRpE zxGf@G35xS6tSSD(%RC7qw`Uy|n_8ZfZb{4W6O7j*Kg&YXCF6T(!@;pI~}dR-6AKmCsxg3lrl7elGFk^p2~tB@R95& zR=Up$Hx1MS=&}Aeg)R@&>Rr$648erDS{N@8~m{uQn%PJr#g3nyCixE`4s006fLy-mj$ZzJvclf`sc@m zd^nNTa*^-*F?6gFHX^nCZo*?WE}~YUO1U!ZDU_MoLE)Mna!_aJTt;c)W$7YQ`*7Q* zD=u);M*n3B%=axT>PYE>SGUO!)AXv|G;cp&D;}_$^B$G0D@~5I&xqNc7>F}IR`Z=H zX?c|2*k`Sc(T(H|cA*!l{kmJ5C1>K%GM={&jUqdF&z=IBBft#=Q>?%n{-@@l_;Db8 z=BR~(g|o1uUuj5xSba48xG-&g3BR?*cU=eKcn=?^a@X0@@sm56xh8{iGS?v~qY&=q z;HrMW6N77U@Z=%5KHN`~=61vR))Hn?RKB7aRE8<9wCD4WE38INVZT~TTe+TcZ-ZV$ zk3{Y&qbrTwI0_;Y&)k)=PPVc_>g1YCE-5X=CwtDcA!&yR^%&Kn1kRzceqJB(JLKA$ zDVHHy?-QVsea@o5OvIdFe_A2>R6|JKe#iM#gY-ZJ9=HJ>WzPNC6Z|zF)AsH|pYM^CGeL#N_W#vQT8dSKi#d<7{B6NZ zy98Sba>m8P!wJ(FHrG9pGXQhPYY`7QJTC*~_8?nplv zLYhLij<(9ZsHC6CVc$|+V`4mW_{u3!pG`R}8ayXI4X>_&imVL>OWACp5}(%(8gIiQ zF1EZ7)vkbt?1xn`+4x*|Eh!$yU#ad{`YCJz?0Tq{WLu1(6Ivtt_0?I*pA10kPaGw^ z-}`dnB-U-7J@WUctF?V}$3zY#Oe&Mf9CFH_xBzl;o?pbMg^fq&K}_e#4Q~G*p<_%?aId`V_O!)%{Oe)kSyE*!CeJGP;b06V9kH!S`qEo#BJ1=-2mSt+VYcvENzWO@$_@cI ziqhzpcdtBY(`IH832*tN(d@pR8SxRyIvc&zo+9^AEA21<#5X-of2{ZZ@3IxCH*Ulc znHn02z`EShM+>G6IQ7<6%dpbp0-d-<42|q3>grUIH&+Q<1%|&X%4je5y%%P@6s_J^ zG*<40Nqg2uDjF2~V3*j%V;e)0>NvZiot(;~7fKC~f63gQqnx;KZ0P6gH{NWCGUtD| z;m$GCc+W7Io%WTy?E?Rc!g8W15={0S#*u# zOSN+hr6sd)E`Kq*0j!<}`h)(sOKUC|mYi`vHuLWD&b)32s4tkYTRD|}i`$QH>g9Lc z)IZ+^21>0O7SC@7e(hQHViv_U^nL!w^%YPHGfA?`!@NPJ8J#vuq=gHo0>Br&ulvl! zB&9uZl`s$RmfWRb-ulS|l>J6L8begz zWoCs&ES`!cOx^83;RcmX7I)RcnBeS-ZEZJ_HuQP3lF8{Ua0*$=AZt&nCN#V^T|C+Rz#Y^~?w{?R~Q@HdQ9V!rxt1u2a z*Rv)E(?s%@*!tnP_I2mmo%Ll$p?yhGN$$meJ_@W==|(TI0~*o_?}YhcT!-}8!za48 zr}dJ!K_||+#KExv?cP&8)@RHGU9PKN!Bkg0Qb>BW)`;(axMg?mY#BE1T zyQZ=P{@kJKm=O5xN}9H4k}n_gKKd7M8dCrEHFVol7tKutN;7yDyHue3((*K!NklZK z<8G%Kv<mo64vUbv8|>(sX=ni( zik*IE4g)Hc)Jy-#v>I(Xb&0l)PYPXO4WE1zgYCB)mnz@dO1YUvi7(#Pa|i$BZwfc} zi>C6My-TksMci5+HTn4Piv28yzubT!spuc!c ze)5MJ$Cw|~mtSw!ZkB;gEaX-P_@A78@;fYeuH&V)6l9?ET8#07LJV#;#}Mq~FQxLe zJLM!HIV?tH;08vna9~4MwWG(L5jX~*^j3#G`)ree zPn%4Nd{1rY`iXaDO)kvE&L1v}IGMNXEUyoX{E0jm$f%&{C6t5+*j8uvKUiO-Wr>wm zo>D{fgUSsEuF$)!)tyfwAY2~O>AqsuVfuktoB1wHw>p|h??{3N>Ns2mn92e|VwZFa} z|Bobettng^dC|4MZ?kV?>=l&RY4t;g=ttFYC}%lr~A{L{A48kbeH-v}?x^=Eo>h&W0D48@@Tp zQ&cwdu*Z1~u2J(D&CfN=-A*0t@FYV)coRK0z`yuSQpu+S=BV{NusvPR^pDlYW!1sTu&YOlH{SvqX2z&*Dy|Geh1MkR(|)A!FvC&e>2DY%#v|nU zANvGM7doK^(yb{Oj8AwqG?nmP{-hgOOX8c;9nVv}L!(_eQwP?0*&CKxT|n~U`2m>g z#@^LNOT$My6&CGLZgTy&w)$jZ z9(_{DtQXnBZHP}z=+V#5Tx~1T0Q0^ur%=qZ-Y14JW=5V|(zL3#`fF(?{oXVDml|i8L>UErlO-jq~{o5UdbxM!6t73)FGBaeO&lly9Wx?8rc_IDbI z-SxPOCGc}WUL*dK1O@~7&Ml`cE7Zz&x$ zFBRY$qWNgH-s1}Lf|5@99|4QabqQU)`D;`l+f0WBOI5D6ln#tw>=0+0kXE!p7%i%%U{M{xn=fQ@2Vxs{K; zD81I>2*jO#)r!H7Feg@FUZ&nV~7{oK4t^kqR@B?tJ0E zke%4PevZYOoG3$;l~A>?bFDX6Nl(U1k#eiSf}2Iw^FNvuvDwtJ;XsjPXRmGUCt(_) zky5{WVYNE;B$`X0yhEk$c7|IH=95z2{r)UcKM`NwU&Y`)ywu)iI6f#H{mi9u>dn-F zL;;mqNrruZX;BH7LIO~dP4|50Vm%OM?BC6n+nY@_SVS0W-rvM;EqpmZEI#}+EEO;n zyPok67YCJ&d3I_jPD{qf*fQO1IE)^$g8&?#kJ9>$3fzB5(0Q(wm1uy!s}%@Kz-ouj zsLxU75Yr`7-*flpe|b?3sIAx|w&|MNe<*--CXaLKE-qO7>t5=a2m;rhcuUTK(}1NN zr&=ZKRI)i?gbvhmFA$)wYQIhxD=mr5NefQpp;PAtpt;}mOmojzrWOJ#i{-m;88kc zwyhiz_(3liZZ+P)O!hI+FJflAw*If#b)z~^4{UwVdT+ATtKu^p9W!p{63kg;X(Stx z+!1eLCae#;3Td|9<0l{a<15b-=GL3m`;T zzYQU0Y0)}5b>(6*C-hCNW?BT>#jjJ%eW@bI21DU8Qsa<*`%K3rl>*(-M=4z7D-K-6 z0&^2)ZuHehPvzl?+*3`nUWQKXK83Ldox*d69Io2VEtbRnl^)FKwC++Dv+;2uHc<)( z2m8Ye?uj>kv`|3Nz2FFd6cyork7%2Q1+UI2=-@+uC)hN+N}vfN17}67atf<+~Ue80ds?l^`@`n_lZXuA7q24vu8aEvt5qT z6mbbi@bk|JEYI#X75(AX*4PI#|1TFHxhqMk7I0Yn&cc0r_kzWFj$>fdO5Q6X_=Hl{ zMzrm&_K$Q7hrR$3!GMkR`Y0j9ezSH)Me0G{FIo8w9XGqn9Ainx2TiXQ+x0d$hk%df zO^+JSvbN;VCS9P`#DpvCOlQ=Wb57;8Y0 z-I9cD4i7XjRQjullM+=nuhVv2wNJHLoG~kC>qXM{bW85*4ROC;eR{^# z2ZWoBBGivt;t$;QQ2XVzqBon`jtyU~9?aIMS#+SWUHO2%Soup-ub$;qvQ zD}>)ubQfBu?~cPW4>0^@i_a#m&y?yp8fTp@#tff%nSEj>4;^JqQPS8kx66+G-UXBk zYp&HKv*qxsJOQ+@@icxxK$i_P6Z1-PDN0`nfPu2a5Wwrbs#(+MHQtD0Xk)1g4_~Tc zI9$LH4@b@lYTzzXQOsEoiMt*j2bflM08b=c=D%7s?|KM10q>Gupc9er9Y=J& ziYUhd{9jH$O`SRx(9aVkX#g$v!Y*Bvu$VxCdgCiG)6w)cr=xfXJfjBSvBf!E0%v?_ z@Q}Zi*;C;B3p_2??vTruZS!29^}&B__Kl?r1imf0R{*HxTP=Immy$4P$z4N-Wxtid zx>H3ctBqD`{kqaJagn~24LEsfqK{r_wiz#Wp!oIRoDS=GGGf||jD?aw)};6#4x)ke z2|sy=5Y7NFIZOf3e481#__kQ+%fEtlPewW>1J^9qX?@ew48O%VrT$I@Gh+|D$?#XL zC;G@Tc}{8W~rkw7QB7-ylG+Nb=z>G&hJ+bGA&r{~D-GzU>9^ zRxdh)JgF)N5F@jIan+#MfPt&gsE~u&uMI<@_3ohLZp_veoWnGgM_noDqYBl~J#r@M zgVM=H8#J5{8vY6zEJ4{O7lSuBV0VZJ^69&aR0}acvEsc6+<(pCd9Oj6z@0fjIPxuy z_}JI6CPMD_^};UA&%rK#Ry*ENTDtW*iwgQ@_la(J-+V(j2}ZD%@}Q(4Psf$W=rB?- zWrVUjdP+{9?CTf0rzHpwAhr(f7hO??LjE0^Av*YX z(HT>Z7A0Moql6_is1{P6v_e~se?VWXa1b{DIggAT1z&)YpGO{90|wTA(Mr3nI+d); zCW#!3dw>_sk2G-}+&NEa|4nd^WAH(3u@w;SI=Ls!Q}RRmbs-uWKo^QKM*Z~WPP)2x z&J%R?80*V%Mv4!cVS)_qa&r(4Lt7TbNG$)oqPO!Tq42LtGW&v|S~B*+T*R$C^eW&) zu6v5-IIb^Na)<{yQ3bh&*bWM>MQIBB{k&7XHox?Doz8C2Rz$`h!4enWT?YQUFwv^C zBidj-LXm}$&tPW>*xs7=z*U7I%;>}4d<)h9ga>Fw)!&5_iUZbq!CiCfWC1ZzIt$05 z)(5UjUYD3Ny!g|mRZXSfvJ~@&bd|*$;wM|t!F$y6uhnkDhG_&i*kr?=EzBJ2|Fjj5dpHzi=}u4=J6P2P$9vSR9Ay5X0E*s_EuX!fu|^ zw-Reo8988pC_;iB_rs3+L2$6x@f!4OTKBXFe8z$0qM}M0&BA7*jgDY`5+M_If7SMY z{Ga+fMS6wBntYpy3_Y8m92i4G`GKk9{^*qW7XdgKyI@by68w%$=^k%T#d7r7hoZBHOVPcI7#|NS)! z?Z5Xzg`(%g1cp5 z8cjNY$t`O(kVm`_>uC-jL`YQLvS*c{TR~y@1H2@7_k93p0^Hw0rUR;=xZDprh(d-f z3(k9iDZ0pAAruanR|l^;u5=%e?f5_r*}%0_twtXt|1OO#QX$9kl?W1d^ezZV{$m|| z4d{OW6c8aon#@L?%*sRY4dmCr&0W13?bb%fNfprv09^-o-3u4V%bTl}WL?oID4`#^ zMN8>M3>}XY@1mObBa(oh)IUYZpFzm${|5qDeBBDwZX~oci;*+E5co96tYXXhya6p@ z@gmUTU&&i7Yl9pIZz$6+Szh4&RNhy=xS*@>7&NIAp%j3o;ETY4@ko5raHiIQHG~9( z9(PnAPYnprj!AMjFzD4uyKIt#{cU#n;PzfX$O60t=j&^fDm)FCSPeZ1uqJAP@$W=2 z(CIXV;6z^Ju>s}C2uu%pmP_QTiV%DO&dy{&t*c`G#l!Dlm^+H zgktw$!Tnd14x>svfsAhT?+0K4 znm2)$ML>?ztSF~ml+hsQP7=)Q1x5%-k)QMZ$4DAzV0z-L!PX5sDA}n1{BN(>ye$gv zo(O7Q$T|=v%|Q2Rox+F)7Sog?d8HFC>%+laqEyuUX$vi!|L=qBA%b?A;;qRnM0EHo zV08f|`tN@}P%;<#$VhxNcuNW1ZG94iT*wX81;P?d`#Km!R^~s@Nza#dsDen@k?HWM z72#!o2)ZjR><n}b7!(in?K~^>L}EfAV~Y2Io3^onWhze=H{*Ne z{vtboE3XUw9rSPJKOQInf3|W){DllKEn#2+l*5W^7=SeajBF9$9jF>_dHu8##{T^f z0T{q+jHH22U+kCJDG}#cElnh z01Dapm;WO3y<)r-T{iJP42)s098UZ6L#CfAP}mll`xHspt_9^d zKtBWcG4X^sb0ofi=Kp?aCC+6bNY;8hniv-J2$tqiK>MCh;i=8+WJ{?tONs8>b$?VT zmC$Q%cKhwkwQnzoUcj0-N$#LjnIuz)fExp$By{ildN}sqmFvV33%I^RunS?*DjLX^Sp*UI{mjeZm9Jn41(&l6yCz#6O ziP!PMS)3wZ=K?ePo`mc#^s!bi_;EFG_nHWZ6_i`TcVB5 zD%bp^V>+Q3@ENF#5~A7a)^kQ?kJU9cfc7)na7KtHPn;4UOF|s`Z-)_ae{bB%8FF1WdmXi=0T8Ap`tJzto@83Q1xrVhGjckx~M{|)~H z?+qt+^Ha>b&(s;(+~&iA<4J09V$53TveNC~>^lk38^TK!U1%4Ab@}FvRax}Uq(|rM zJT32EKd+7)+t*AMfcQi4f~~N>Mk* zW~k=hWvznKSbA^PXNxtPTL!RrRbutspHhp``DRn}by2{Ds(SnnR*I9kK$q~b^&jf=_fop`Tx9P(4BGpX9@y2VGHhQWL%^#RnJX?5w2#S#bWfvMX`gSJ(CRUVg^~aUHZz)qqcbLU!?T_vGF2IUZ;}zB~ z&%SVJn7mbt+&ZP)IVa<8F@&9gWAG16SP#Z-I23n;8aMF8M3bT)m%lK=Fbc)u%d&fU z9P3LokRqE`k7Ef~Ox+p`IyB^@1K=0`_9xf3-KHE1&lgQkQVWxvB`+pZv-JOCl#(#2 zuHtVno=P*@fNG7loqO-4U6WnM_v6>)e6^kGt={8Uy)UVXFr6jwF7su^OBdyXzGC}O zzMqqp&JZVyBM9u+PLtSK-n!yC3!411(ho*%uS9N2g9#_&X}JePAVx6~Q(tz*XCknQ zcQp6mFmfJ0WTF6shRj}3I(r8`!hs1`s}Pd9#mS|}bmXwIbk0_IH(lDisj!_-*KQcp zRb3KPbZJ}ktK-fcdj5UAnQkOD8j2x7{h+u|%5jx-fF`iT24a(sja+xg6{D#K5AT_z z7nNK;?fgC>{2;wT2;}rABK`5+=ff5rj!ojv3A;bhg-I3>Z!oVkRdRcOb6ng*oFG~s zS%QzBn69jiuAhljx%LxYOG6r0=8q?W8hMb!!=ZS{L8$fKoYAp$N#;>!Wf;a)b-@FA zu*=kZ#%~4P7OGz+4T7xFc<9c_ybl}lvP`g|T`o3cOnTKU-`jbb5ml{VyKS7RDgEA1 zj1U;^rO!8F%XI|e!c;ObXJYLm_e+x{&(<)Zq8KoVj%7p%c%jxmz9nm!6;r#Ff0Ar* zzlts(OU&3l%}q9Km43e+tK9bl3aKNcRDJC+P7yCqTPAb+`#ICS|C&2IC-?Y1HMNQo zU0HdJ_OhVsy9e^fGBEwwn~-NwGP}1c#u0BV!pUM@2moO^&*T9nPMLeolMlH$kfC~y zh9PUCsO4hFA_Ke6C?1L<(}s7B=4w&h6dRqi8)_)iR7&Eae~icu+O5IgvX}FSc&LDi zK^pFMdfqxTClI`@vFJ*bPtu&x|9)MVS;f zc#%u{^G^Xw4H(}B&P^SBX~q4q@z0*{ye$Gzj3p?aJ_e z5Cmh6CJzlt2BG}WLF86sP`np>aiug7iY0}{L+7}Sc}Y@n?2u)A5aci^s}k>KHJ_9gy#&0!|EgfqhPis_H zLlWDYet=sB%*)r&>8(VdHX9B$C`_O^XqjIPu!|-+TfQ%jiAe2I&GpSMUESSv|8rPz z@x{(gcKVtr&zzL60-bl4^zRJFN{M>Fxdfh5}=y;77WsBr8_aKyIGx%6Ju@Z zb($1}uqESiaWS~&g=xSqDc@b`U>`9&wFte;bj)#li7G8RKo)5^#DoZ~F`dr*?QmA2 zNrZ1t{2QKhhP5~k9?M3*lG*L$hXb+6J~@KR?eOF?l=B- z6;nR2ZQGwig8ti=-+&L1B#7t89PKYfe#-!ud4v8BPd~P639I7Z<~qg-QR7I;Dmn~@ zm=8TYdT|zXMzpR7Ie?Ku8l)ClI>TM+)+rg*M`Po-hVX?BD0!ElNMUUW!S%sC(;Nai zdatBNIpQvzYjiGqcTB$4tly-i6O}nQe&Y6qwZvk&C9{MytZaD#-8-*wc#uuG2nTJH zO`nB3!|r5^+NKi?FxkwpK9iU=5dN;+r->@-|A&r zjCtK$S?y_ydctwFiSbDn)O1namV2E;V%D6Hlh%CVWSK&qg%JWohtWZ<^>P)IOc*pg zp)>v@CTotPL2hq|@DnSPdt^^YhyiqR5SrIwkOKzM<3=UNS9_mhQ3q~?{ymq#3` z>`pu=$1-aq`E<9iu3k0gurOnt({Ly>wX*+iy_*uzsqmNOSQZC)()H(s{GWZuZ)Y=} zyoqXa+Eb~og8}qfIwLQJDn7LPNO!xOM=ULDq*IOFI5lwO*L!Axf~m&%0tp9g)vPu zluX@g;M+uc#oj;(ble!cbC?8y*x$R;2}GsFl?w5mO$}qqcewRJ6`A!ohwwHVvMYG~?``?XBl5t7mRUP~n^>!iZB zWz(o^W~gDOc=6?1=P)RcL1{xnirv*BIKO6dXrbyY2QnX`S=M_*Gt%tq%Ft4{5Bci1 z{aXS)0wu5Vm&%aPF8~b^9H( z)>VzWTT5WcaLe*|>gS6SF#a>O@fNCuTU%w#tFLaOgD!c@JdG^*&G)k8dZy#m33M`w#%Zj4^Zj1)9W{{17~OwEDqFleeubL@W%a^U4Y%$c=WxS+>$9Ghs==fuO=;EG)Sd0Vt9saK|)JoT?pxA%ng&|hXgS?&?K9) zWEtv{pSZeuQ^Uqd?nmud*ay$>m)=4HR zso8lvV7x-TvEM3K@ReUZwJTc+r|RLLcgrZHVs3Rp_=@pe8g+DlN_C)k<@J4^Y+m^c zf1#WlXKLN<%=$l`JZ|!Cv!3py!*g%fWXq1r>cePFmchOdOgLh98F`$Y^Gx@*=$(a6 zIQit6ke>~&epaOyW(dW{bTT7@k=K&K+=Z5Icue2bZ~=+>pCF!afln}4RWp=o{yX7r z8+BmJ-Yz@2A3vx6!`rB|r2%d|5MF{VzvEQaT)Es7o~qrwz5j^+tUNpJQgs!4l^&YV zb&3@*`DTbxc`%MSiJ{V7(vIK0-xtIsEP0{zL)C=#TNcIcxjMIGo8BlxfcKgDX;tBi z)W+OdW00NM%G^$|BSSVO;8JGo7B>G`4w2+OM~k1tuH6gFinuN{!XVb8Kvs zeO%UI>vF@3{`Md=AVX%Ek6}Pcu{Fg$V0Ns}`nCk4#VbB8B|}7=dCwd;dJJJi#Ra;M zSiux4HoTGRo#9yZ@>CYd8YH<{Re^0mvMwDn-!K3;k_+Ot?^=hmgIj8rVYiZ!rZ>gR zjYMxJ1ozbnf*hcN%de1&LWFUV@yu5Ss3pC2!)f6)yI~{`3jW&l(%(IIas`l+%H6&0 zIv!SebHt@B1>BjbX?x~hYbG-byBa-D|D6OuhBhHvws`3@#={}7UZ&`%q;Ebj~1 zymq|XtLBR-byDfOfMtg_1&lU{$Iv^tSZPg%D31ES*)lK4D9!Tm63O$i;^~HOk9Vh{ zwz~quf%LzHM_YVXM#%``#f)0Is?~IKvDeafJPTXbK3zHMQa;%XdaqbVsc9D@r#qif#%L`0VXEPoM zNrzlq#;91cEH{;RuLohaA>HKZATC-@WBCK28XzRBJuB;!eXda96(nbBCFqxxP=A`}R;3OWOrhq# zN@WoO&lX7mHX6eDd6@)5IQ}VAPGaMcTY^;X&c}KSsd1~yXs*R4Kj1F%ON>{F<|35Q z^`)4ukQOyvdq_=E^7rp`^(#BASYS*0&RW*!QJh{3a0s<_>{5w6w|x;_UUx^2JqlC) zQtQB**qWx(YbywZKgy39OXU=|O@6Ws{3BrL6qeSa{-bVX<4R#g5YE!v&3GQ&vi~j~ z=JM1WQ)(ZexNCUriRhC3R-*j=Y}%GOZP$YEO77bFz*cx5RVq_SN1EOoTr&1m%#whyFskN|;7s1~?K zHsFE{g8uLvWPQ%859}~2tL5BY?HLt0>3Ll1IXq?2A_ zLCq}@X=1T;rw#jgKWV)m@4UL{E6HODt%vBHvMGBWFYPxbPGyxImJ{Z_jIlPXm;$jY z!)6d3_Q&S^(!(L$A$wklFh5y|&vfOQg<5KN2}7iG9BHucv^?$dCZqA+ zqsWTK11a?@!SzcBuB<<$E}`0CZmxfi120LyF5|0R%lZbPBuhh^p5Wx(mhT{bv%2Av zm4CV)@LlrpvlATk1LfTvCc5#x*Ym9RxJ;?=k?5UdGG$d(M}Qj~&$A}~v~Knw)Su24 z&!t0_mxHcSDcHM;8`xOckCi{HuiH9ot+x0fGyK7HXy$Y5W6NViY~N~Y;eZ4aSvo%7 z$C&bJU|yrD<$RMDd}7=zOcCb0_!M45lf(t4c=KN54Nx?XON)tVNV@ltz}YEv69A2` z4DS(QN9=+z*Na5gn_&;SgH!Jnn->E?)*ip6r7U{T`2zi2!I7U+*=e+YV#8(*^TYb1?VK)6fvV_n}> z7=_f8SzoQ2Dm#5?LDEXHMTv~TrGM9let9h9{m$AT$zG!EE@h0%MP*lXu|R*18_#$04C+>_e}5Xl zv+(xFvQjwe0wLdbR~LoosR)lI4}QLrUN4F|3<(H@W$_|F8gpiayMk!?Sq|zi5*pFA zlYLH_*!) z74^gFn_lO{%h6?C5pV~IK6=-b%Jz#~y(L*$ADpcDmgtdpmclxW1*)?@d|L)ALmm%U zpVDVmlxzcqLCn$R+*VfsZgd;m^@SOTd%oh)v}4t5x_3aeztH;RX(43klSNFfQYF~G zi(XV;+}|_8oqJxCsju2SGjeb~-#||L5gXw_;a5<|c$U4wI(mR`SN_Fpb=1P7Rs$(= z*Vs#bRSAM)&{ey4aOwE)>N<8z&xn!uSN4QnXY zpdnY79$mrVr%2WKklZ4V_D0tl4KIECV52s$=GLNKm#4~=Zf+WrsCKLm4frw!`x@T- z{Bf!W+W_sd)Xk{-1J%Gcan=34aPCSA?kdxpk#fH2&88~6C1o;gR~#A&OOQ{x$`qmW zgF;^HI&BY_jDi zMGWS@1W%`Kc=`2hGF?ptQ~jV#&c%#1^LH@ZOe@B~h<)kujn^hw zmxo#%G361C3j?)B4cxE~^aj`(C+}EEg4;oOY|t1OB=~+KDpYyQ5%_j;wjSQ368%)s zpURu@d2YNU*`bI=r3KnIwvqd(R=@KYv0>lz!G|9KM5P zyrRN2Sy<6()UZ{$?Oxjysmr4$@5NM{45R4tB^@sKvm`BDX-gqMDayDk39<()6mT=X zVKgMjsv8|p`P{az`9msEY9zKuBJG!m)J^4=r=9IL{1jMOmrsxKJruPU1L32!hsM@cv;GbHoo}#e_?T^T85)go3R#Y)%9einM@9rlsI)4-0}k7nc(1Bk z4?4knWOD)p{Z&hgat1r3cqdZ6R{JY}R{Hj0#mx&#F8GYY_VCmdd5f&qxzp%t?6pS06myvWLDy}H+-tWS^H&xEFLvB9f@b(@0U_fEx>yPN zYIV5*#!!U4LbLVC+e>z0Bh^;$^DUtgi58QmOwe4$la^3Rr@6l3YALZI_i)8Tb6%rx zHz|XF(e1Vyky1m^7b(%ewpsHWMd{pYT|4Bw|8C`o!0h7F**q`xmv@=)mV<)oTt)qD z+V-On>XQeP%z-fiPZZP|E*j)71agN#bM< zpoIIMvZCAi)&sjtZ~eZ1{cJOY@WoA|*Ek$M@TI%eOS||?HTWHrP@>GI4qj`_QO%x@b%q1HS?SX`7yfYU}6l^UjN1$NDfoLzH7 z+|;TWADAfnu@x1Q3MpQ(L@v!1W`mOf+C%$fQpoWH0eqekSe_e zqzgy~=_);;NNY~D~K3`R{7!I8$NBgcR z1aMw6{0-38VojHlBg)?%EtEtI1(rLKR>x!@Q$hVA8A@Fzt)n`1bLnPp`9=G`NIz_U z!^RYQ*IQdC@$s(Ip-w#}Ape^@kQ8fxlWoOe^>4!GU0DOUcCA;{^2tk93rtm#?9Lai;YU`E#o|y z&bjyX)gr4fL6`V6_c~pTK?nZnRSiYJzAFgo*`t`@mrmYltt(2jwKUOzyQ%*kc9CFr z%RWc^ZWXJjAsD~rBh5KwpvR~KE30F)Vhd_b`GG~VhpSx;N)}jeH`e#bm_Hm@F{*y; zGJ*-b<8Tb9bfZ^wGBeLD{ivu2zc3U322#jq|Q_>tqA8EObK@9S?b7oCij?SaC!}q2H%%UytFJ zc zqTz`z#;4>-7&--d5WvYoGY4Ota{Kki4V$$!Z;-%}q$oKH+|^;Qc7ix$nfB5}901&C zLZNi3D-3>XzRpwn_7nW4r{4Qx>#)cY$u04nobgk@hFqAF-+gY;Nm}V?9`=c z$u4U&#q!K63t=as?WX(R>VVlX7#Nj~PF!i~U3^1&frIt0cVIA|< z5y=5i|9*qlvl|`wOF0Hb&;v_-8jboH&XQ)_;W+UYgH>UYZM22m-1?Wp*EEH1FFg!^ z*7?6^jH^>2R#lX8BD2o3p`PIA&aiYk$CN)?ok>I0 z$mIrYTi6u8WH+F`&S%T(Tx}>lHo6I#Jj^jQ zo;R8zj_#9(Ub5bf&bq#iON7z+!Mn*)8DFJX?xhN0{w@>Qtx~kmLCIF5=|qwAImN4) zTMxL)oL4*=&!Iy~Ho2{RGG!2<4ChB4uTOieXU^H*aLn;uT~_0t`yt|F$wW?RH8b#R zhNh<7S!;3E?a7jTZPB^*|JnkQw#-Fh!i2nC8rCXz9<6@b+`)<|?cI83RT_7#(qN=J zHvLbKnbtTq@d$TaMHLmQJaKvM0Ka``KjAB0K zy@Ohb#+ezUJ$``43wsntDTRf zI;+ngRl$~2qE%uye#>NUu01BLz4Cq9aUsV$Ed1dMMVQy~R^o;A#h=2`nPw)43G?h9 zHC8x>qsU3Dfd|O~XfZ9Drq)D$sC+9ya{jv%D>hsui$R8VmRqL4a`9Ik-5gk`bO|#laRgb&q^3+Wxegq>Hte06TGrI zVJ^3!OE`SUI*ie6vXrm24F&YF#?o8D?y6re392b|qdj z;BKJ3&-`kL>-KztesWsxVKp`r?qL?G$l>ZU8TXMSLm9KF>?spy7siZ_1J=TarZoDQ ziH9T83E`W`D@hm9ujVnM$GpJ;>mPU}u%QFkV%itiW#)mJ{Wm#*o8Qtn(5(OuN$1euNYsq(`Ww}1?BO#%t?abF4^3C8gdBDzAl|b9o zVl0v$c6Sv@Zf-&n>Qmn4Y3X)ad4A=yMb{pSg0bK;7oll74Vh{*b}YA&&G7iMQzp-! z&p6NxHlOF*o~BZU9nab*Ocdj(p19;gEzNetKBy9#61#a_4nA+u-xa&1!? zT%gP_XU^R50pDlED1kVqQ@U`9WfutH9&eTVzRg{>MP2$aw%~(q`Vt;Z$LH9+Ke)p= z?Sny?lU$oo1$rTV9D z+e8jFyeSe1oO=a8UJRJY%S!!mpDVYafOV0VRJ21HA(%VaXch3}a8M zTJH7Rs50%8!(MlB^d$rBIsoYLB>CI8L9$W8&F)rR(6H-b*~mzd<=r@WZgT$5N(z6@ znH1A09uJpJqnR!n1>;`U#N||_LP|FCHVbxs=4*GpR%Kon+as;>qPJ^qDpC{|0*w%Yu1y2=WEBS3Bt2Z1I{ju|#nsT{hBk9B@D>cO;sIJb(!Z#aVmGzM-5>XgI%ahe zYBz;55w&Z^lECKbJjeU*=6^rD*!k|9)U~2`Yn!Wg6z|uVnXTG0M|z~yn0MWOSUiCK zihfVGsn0_Dto}7)N<=DEyD4StTd_uff8%F!of6bo*$RDge12?cP3C?%-xE(x4bZ_B zUiPsDX(sW+So(}kL=%f;O4*~wuXXA}?nQl3tf(^uA2bXGTwamLz18xLHs*a}?410^ ziL%13V2s&kjW<~9Q08ix9i_hxuLad{ zf-nEwLyZM{0$Zr@x&xG%Vy4CeWm|7g9GLs0`a;NOEt32-9F$-5y<*Q=+s{ed>s#)x zoV5yOz0okOmz3?7`I+C^)VY?b-Tm(5k{o*J9{8@5!sj+X())pFSOAB&>7r(q@uNhn z@os#`=1j3;O_{QWV8VMx;h6U*w#=EfTmj=-Z^y1x-}>&()vxZbqG?YThcDs$Yoczm zegXfiahN+&8_oRXF`2lr{fA_-tLz3ZDDdC}qa9mIbpds6rum%`fEV5=T|+LP#{>Or zp>0Gy#o_}WF41oaxnY-bhFtet5?NxMkspn)d6_(N`c)Rvv<|r1r#!k>Z*Ky?c>{6a zKI}I?gMiytj~wEs59zQ+IY5$?9bRrqhl8`~OLIOlnF3vXZ*8VLDNH*nLJQQx$EQCU zX>EB7^RsbcKZQ8}1OW%Wvq+h0;Ce0IMH~nCa3vTUS@;HBDX-~aDdxz4(g9hpSn$P+ z*U2gp3Vjl`5BY&9IpT^_|>x_4?w~F6F zm$HVMag%Yn2JeBJ1I5d+f)|L5O}9%UWb-7k!_vDQ1NpF1*l~q==6=?AcBnub5s)Z; zFftf!hSqCbYRj{~;Xusy@NbR}mTyS*#?>=9H6}ohW~}9AfQ;l&-(8_Cf)Hks&~x+n zi%>%{P!*tG0;d**15d-j?Ql-_4#Tac2gGTW%$O`zK=%Z=XLRI`uN=3Qd5ur{Oh8sO zI1dk^Nq)vkes+5a2_Y7siH*}P!d{DL zFY$lR=uh8UaKn6S*ac%;>5Yza#C*06g#X9W+w)Pfbthk|eS2iwo0bi+y$F`n>yYI>sl&gfd2>1$F5Rl~yX}D zia&i@`UAOTA%FWxNJ5DZwqdJDh|r=B$EgDeuYuxz4-jD#m$S&w85HD%4m*>F*nI@w zDF=KZKxve_LQY_9=8OG04#K5Np#nHPa4m?`C6f3+@#kZaZLNjOfJRIRNbRp-Uy_l-fvIL?!LF^kXt=IsF`xe}&&*oI*r35nhG zG26-_mUBEhhCsGDAxA5p$sGU$2zl)!_1yHbW;wvXygugx+Zqr*EaWk}vpwx)leA|z zQG)ZowRSoiTz=%LXNhamK=yJY;^509d;FNw!Ns4a`}PJC`D^s!q`Exc;q>xqpTd)H zFfx^w@qpaB88zVQOyT~ExXjy)#?PG4%a$F@WK2jO@23uz)a4vOUoL{-TwLV(DMHSX z8{mPGSf6%-)@~A)eDWr$A-{i@48oRmU%}U6+JMmntqZqh@y4FMa6^{%#NnV}0|~;n zSO18c_p#9c<&kC=T3kYKF=*iT&j*xrTGKe^$)4&s% zg;(v(z&9_A+TH!HEr7EQKdmuYVozIaTi6~YK zH~kttx{pO}Wx=aQiX#w{DUaahyg$L>jF3K;T{_-*-n57eAQ{8IE;8nC8|#h~l}68Z zm>*Tc3F#Od!Pwbj`VQ&8Aa{cgh`lTzc^RuTmJHTR)zMbL&*{JqJ^DR@y`1m~sjO4p z^Dc@^jD7)KcKHWtuDK&4K83g+YdV}oUTTK{Lsjf2FUdR^Yo1m)6hW zn`91l%-x_P*lL_+7PvA1?+zJ88`pO%{UvrDhqpc#N$6qOM0Lao*URRP@^0PsdfQb3 zKALx3xc#Zsi#$-`vJ6KhJQ@#}e>tZg8lIF~&EbmY)x96p>-dg!hP8V)I8Lhg8)Q@l zTXcAgc5dm^xw7QFN;Sghr~UPB1h53gJ3&K1b&T^)Q@oQDu>(d*;(4-LvGK0 zl{qMfc%Y>)#iXXJ-6YwA_od+zcv*Eph2#yMR_3b zZ1LsH^OC+7AE}}`;)573$X}}?aVfI>d3Xg+KlMmMF^_RFhB*1}q!6X@C!Jr@vdr&k zB`*8(=N8&@m1ST>=M_EoO-Z(#N891XI}@b65aPl8AyO9@?hRzfJi(3!A@T;dz>yn`b(4~^LHv}X#0S4oc{H; zs>m{a#VVzU#4%)nuM(M-Q}im_;0E&D{2Kz~Bmpg9`HV;ge5aCDz#stf&FR(MOCNoV zO6n7*q*xSN^F;L<{@h(_ace9EHw-)wrpi)zj9ZAoi9ul6 zeA#LM2pIqcqnotqW|wiC%y}%Ev|tP@JNSA-bv-!qKU^Y5EgwKb7xE?ooLH8~HSP2h z?HnR2e4_)E3VWfY57<9<8AfTw8ClgQx6nD{*AV zZqAMm+o=ND2%tNXj!Q5}@qO{fB;Qq)SErO=3LPUdqtidcWCf~#tWD#jF3#Y*!)W;) zF;*0u|E>7)ioR$jk|zT&eh>+Er8)=jBcWk4!$Gu>&^2_(IKX-hD{1R9gUwT<8u@Gu zi@_If!aD3`DUuEi1+ZchmUypJAkdK<5kLo8{+`K=0Bz>(E7|pB9Bwb{*}v*LTBA9f zkg`Ov8gS0vKb1OuFiL+?)Ajyk_N5^it`}POqf5ttgeL;nM7f3CI`E0L2efK6JM^&o zAVBy@_Tz2)EIp*FX&*fwtNL$}?7UPf?+D#Hchk zGq_F`H?=;`Ysl&|*b@5^%yX(Q__dtZ$8kpY9~WQ7^e^LY^y#*q{ZXt24z>_}Bm!Ps ztAH~|=i}@`=LZtjTpEWy*nEOtz?-qGdL`{8hn7i8?tMc5h}L?G(Acb680Xi-`mX6V zJUv;GbtTM!YDRtBi~HOoX#;?2AzPP9N$%f|jy+}>`B;J6YhA{0uMlcMhx_LkX5RVxq5Dcn1{?@fCkehkEddLtJ$8#8hm&lW+S>;Ju=AZl2 z^a}YvskqaS;Bfrcv&OWV(3pXn$-p%#qh_BIjr0#&t_x*7+x}MIzM)xs{wUMS@MN6V zVVi@zmSHCo7e!tt@Sl`)8omsqdgBr)zu!Epbj^z1l!j1`DlNwo# zaIlq|G2Y8@uY8S?2462IxZ*qP!?W_+P*4&^W6UV3FY3!Qkp1n8r>@?*5#OB$FuT%? zh{JSzOLRDYn8XFKPg`oQ^hVQ_PE2}^4N=9cXT7lq{)DRJs8UXd&dkNF%zUp0KK7eb zCx%+2PIEEe4IR$@ulwv#J#EY--3Hl^9(ma=A7?tqeYanaNMnG1z$ng4Qn!S&?meH` z6(C|7P(~ANg!J^pcJ4$JQAOSC87NRF(#EHHJV_3HcnM$6u8Tybi36TXt1A6yC~}s(rIwOglQjYi;5p(xIe@rWYQjN z4PU9e)LM7Nn2$Nfqfb#rzu3k!?Ga29>^)blja3<5@!dY~er+C`D_8%47ToH=``7sEs9q zn*1m)%*-v+J-IAr5T-tc7yaH)OB?B}tpT8cH(tOhSk|&rE5-2a72D2_Wm$^wLa!*Bky=(jpzUW9XtxKi3 zy09RD&CD6DivO`t$feA^$qA?w&c_7Ja#ajIssmJ1(6<)prYd{^{9?nbS@p&2eI%Np zoc+zLtPzF-4@#TGofB`d9#=o>$YD>vSXGo@t}EZ~E=>1<;hI#wQ?Yf7>LdU60?#QjS^TqNb`z8NU{qJ`DX7lh-s~k@R|r3Bkr);MIK=R$o`3 zIEo*}+b!Nwz0g_U#elP__>;@~x!hF=uZpi+`*AF#R?(TY)J4p**`F*pV;_z`rQb?WUA!ihX zJH;v6!+oILOMb1LUS+=X)_WA_ODg2^N8=~Ozm5Mm5GINp!zm}IeQ&=>S&n5yX}b6+ zyd5s*Z8x>0?|%9@DXo7VbTpExvBdC%Hw8Vj+RUsO`PBJykG8taV8qg2tr zUH-)iD?M&AgVyY1EjjT-yzMJoRhhKR^4Bq>u3z6BU*`#sK?Z3l>NjCtX}xQ=$fH+B zcJ6GZ8*0rXX$@p_$eHfume8Poxd!$(lOJDyl39G>+;&`$P0tS7k!`_GZ3Q$a?ecnO zFT;3@zsqnK+$RT5s3W8axhKk}g;-t`t+SHkp2|noYoc8z1U>|l!y9afT`f&~q3h3h zo;*=(4&GFV&8dn}mWu2Gz2={9sjW-5gG#amSc@k>M}#A8l>?`#!2Y$i-xu=3_uv24 zI1)Hcln-DTzc$9LE`X}8wAesm;4$gT?J%S+Mbgn7CerNAFb0m5!H(qVmE-okh)2x! zBzF%m67r!~Rx7>wx>57zkmb4Dco4s1LB{k9NF;N6_<+NUaSkJF;A`6Fmi5=-C0%%4 zoI9c4$aqsgQes?jM6R}2$(+*WsuxQ9&7C;;GC~??1m`muqjq(eT1g$~2t@~a@bbw> zzPWiU_xQ=^_UMu@~)CyeU2@T2$}7vJdG>MvukUU9>@p@^h+$aQ`X2p5367~a~Ydy z#M-MBFjG;DxvF`)PKV;}%Q#;!X@m%A3c?q|tEml7m5;B8+t-dZudQ{+dNjR@*qY2J zOpTu`*3%AnV3hL=&3-knLdP6-66BF!{`@L4LICY-s3DXzG4@baIPAz((ybETC~*1h z-1!f7)-pCKuWDhj3RM|eu9Yx|Phb_hJX1OWf1$P&=^4@!R~(0_&-8&BvF;iEA;I&e zw(0FUIjfmxUwDce6td6MS$t1sH~5CAd9))za<*5;DxzF(GWt#pz1A0-`xyMA(H=#g z561bHI+c^qMHJi0?dwKAPy-2DFOSSs$nzmS{ncn@)TMUiNIpW#N3f=U8Ez}Pf1<9-BVM_*UBu`qezes7)z>4z9R3Eem8b~BunjXqW5(X z&XWb$%s0iqNC=-M7wVaZV_VgjAxWh#Qwg*6$A#MK-0<+D#}xYUJQD zXovQx!iUc!1^(9-FhAT9&-PX%5l<-1&ERQUn5vJIZ-trXeZ2Ah8ri4<%)!ES;^z9c z_$m5Q(U?!k+^J4C<5k&I*>_`CDuLXy#;b3ouE9Q)3*0u&F}AQ zi~88O?;3Jf-UA^(0Ml2gYYio0EB--GrlU*+GF@roP2t+xTrs;R^)6d_K(BX}ljz}G7_6(I{(5uto_Kl<+Vu`% z)^wnH*M90qWQK`%XKkkA=Uup5(7Jq|9YJyUFhl!72rr|#t{F^s9dRA7iU9)kt(3Aq z+SNrD`>Z>zFnV?X8)@Bv-#h8_6w5idK4mRtDe76@_Be`KH-Cg7F=u)0D<<5~_7SzN z2$su5f&7sZ2pPJcm-|a`Lzu?X)dRX*<1Qcjp-Rqn>zal?0Eu zjjmTBlu$Q5RK1j|zB1#r+x3y?m`r-Ev6PGDi z!K2-^VXA7Am9|9&E;440iRKEg3%Uu9suxyXe%InNO1>u`vgLL_&$TDVyc~a|LP2bo zSr@vx({V`1U-?=8hiMQQo}nNN!nm`%R!x0DuO18}ng_~gaSP*-4nS4JE+41TQaK#JMI~iRbRGp35*U+K1(YKBJ7+ZYb zU~74k)7u4hJ|e`k5lFpP^UhTqb>3`YGCal8ZL0(h-YpoDgg$niz|?bnm8R8=v3Sa5g(|lPxYYdajF< zhzB_~fL$=fo1-SIiw48rcOrUk$lu1T_YzEj%^+Kq$; z>bhv@`+`$OZQZH1cRt*6hbB%+p1=ksuzU%F|(XjY2TC*z$rvu7Y%gm}kuo z!Pk^3?s~M9`SDw48Rvg4)XlDpSs^r@Fx7EReKy@3k%E2K-$Yiwu<&RvI7p?O3ZFlb zzmcZ<)6(wD?0#hS@|D)Muy5q?ZLHk*a@H5NR%a^s*WUiwW*1cWaaXwa&EF`dr+J4; z1Y$PqK}t-~H=D`=)wrmjdR+CZ z_rI9|w0gO0<#1`W@}M7ZSU!7|vhiqu@htw?2CiX52c5WB&2eOv^sD47N9YHE;+uEntKyn(vy+N+)HPmfRm{=y?sG-)xyW2^!=Izf3w+x7;a`B)99o z!*7`Ayjm_+MY;u~*6xmJA$1lHqhA#FwG|XBf08+pJ>k|jyzH|5^`4<1vN5(9{Vi|Q z9MU(;&x{{^)A9LG&=7vJbwg*b|iF1i^l^5|0g|xG8L232Jk9n+bQT2f(!-PkB zh7AVR2!+fVCisK(`o$g#BxiOdp75-2%UWwh$@GMUhmUpg=HUmP6=KkLx$Z*@rUO+p8Ym(c7?)bVX(-R9H=!tqCr{v;O`AK8a`*@ZUkFZZ4}u-#m0 zG5cV%uK%{yB*|#&xX&jc(KkspC;l5%$cCXnk(SD6eKP_x*8kz%D-ph*dxi;O(;}Pa ztzl2du9$C#w?bpiO<12DY=6)C3#;x!*w*~J$2FR&@j`fZCMT{rZg#JLuanfFcN*~b zE>Hhho*wk+_-GLjoflwCx)IW(cYKZqdf;`)+ji(ezBvO9nclP1M5D^~wxdsOU&^fE zIyR71!)tFLdT3X}P3w2fxYX@$N+&APx|?#94R_%%W1XbRA-lSD#DlJ^(jfTeRj&l{ z&Cb4x{m-k*i9ff2h#f&LS=}Sk++6Nz){DE|#xB8KCd1(P7gkNQ>=WkTpXup5Z#Ole ztdYh|&W=X%+!y6+Xq1`{r1a3A5qoHUUIiv+fZ#fuNX_*rz~<^KH`(P)QA5q4IU@$O z3spXQ;P&i-&d!>%<)4wWULz%x_a2me>o$2w{p>re?XzR97dJDIkdLSHaZ;6j->a9u1G}{o(hNfv$NNijmVYsGQ81Q>ThR%*|Di)U8-O2(zVe#h6Rfu zf0j!NesN6o<2n-=y+>XEGfZ9&{n5yrV7TFic6^={7l80As8pIV?X%a1VB$;4X|kgv z+^jNJ>NZ{(m{m+a2yu9G#Y`*ItsGSWV96wAx9H$055u#?M~l667;YOPd|m-wyEhM^ z1?x}?kq1nwRUN|3a>+&KcuXVMYXEX4VW8hf=#3UOFegm>r3hydUoXR*)HJl`{(ArT?9N1EZI#8nY-jl0ie0BL(}FwR;|J>}WPRr+hd#ZLckz!n zmgwIGQUP3@f9VuSdC0~KYpThjdhFR6wNuBVV7>4*y>)3mO(M8#4;$jt zY4k@;0Q>q;1UOJ#yH%fE&1bVa)80Iu*Xp(T2X>^@Fs3R|?M3AEio4AO>7@}GK#clG zlsu}|bZF-oY0THY^dod=rLg1-g~3IseV?p${9b#SkO(B1K%6tZ^|oZw9TK_~dBA(* zqa4){pa1|&(cyn(#0MNIV298qB!_$9BW8PbWbiv(Y=29Vjf7w(R@Q z&#Kf1g!zN|-g<_ZLgk34j9MOmA8nRFD>LVV=Wk*a#{?2nz65lrbd(bsluqa_1-rua zk8z*`kEOifx-_BZ?T6@+;lPfeB3k}s>)+1z1)fwZ<1fI}M``>nEP&@|o^!lys31b6 z#Rd*c`z%HJ-qdF9`QW8lJ6YZ<#IUsCRHm%&%<4+VN4^P&XnrQZ+BGD8dGbYdaCT}> z-*cU69Z#3{p=hLW?0~?v3gp_ir>`WU2tGbsi9)BV_q=JVtCkHA;m`CZ6bfa9x;AB~ zw+Cf@KS#t_z0OfKfuptU2hIq$%)l$t9weF%idS;zy(OM&sr`hVMr%oBu>t7#PH9s^d$ZCJX51@0q9q2T|&pE z+fJ{1(3L7%Yh>~-<9N6*B<7c@7}DDO6Je+nL!9~9u-#AFq^O1I^^pMaiA+JsM>2&D zb+I5TFZ5e< z(N%^bI#Fw3n^E+Y$KgSVe3nu*174Co1Fa^CG( zT^udc`H%ZMFD={Gguh8Rh3{8$&QD#dN;pDAKe_pwNl$SdI?Ub8n;2lK*R&YZ0s)|ehC+Oo|D9$zZC!o8#HCP<6JnEj>WK@!A^=_foTXbHTQ#;`*Jb9u z5wlfYU7@Gxo%x6-uMc2FMf@38cHBAMO~2((v~yYR!rNW8+;~m4UHi#}BtM)EtA0cn5Un)%xE7UvZdM{H z{c_9Gl_lu?`>~zYzU)qH_sS8K$kFMw#pjF}7PSr~i7}8j?TNtM=Zax}qMUSZwms{F z8`U5cw)a50Md?-6Smuz}f%lfsi363kNII@$8wim>5F9z{*1Hh6?xb7PP5cpU%8Nig zpyYcyTrtTS*u}G%sI|U!1kY3Cx~95(3O<-^EsI$1qb-%dyf#dSYbSgO-V=>bA^cO#q)G(V!b*>YC@2dMV zkE$OQ^bKD{>kYd#=-+y1ZB$f^RZ{K$E%?~EUo`TKei$hJSpMH0Z}~b{mE!i1J66Tl zQrelN9IAOT6@xxv&;7Qb5011npRC(dc?$4sC;Zy1t_pum)S__UQr6*Pzq31~Gj{fA zQ}z0PZ2|F?#}(_76UGT*6_qR^=`{|;NnY?z#yL5lI56KGn*K5SiTI1{6VbTaByF>} zh)hh$?a&~l6CcYvU%AOUwsEle8#=h8-v49OO58(d`p5!Sq_rvOnI2yfHm>*Ys7gsv zy1mt=Q2qT~GmXByG$6+61yfHX8|!@eCs#x{`RoU+1^OQ>uh@EYl-Lq6SvdhxFOtwJmMSFL$V~S zTALz3HDL1|=kjkckHOS3GQBr7H-Qs%afvU{B8(?(J`u=xFa82~X@@EXts`VWjd5Nc zVFe3G=^@U4H&BpWDjQ>b#;{^t`YvrX<4>S9>#CwiZ_Z|7xuPR2H(U_lm?~nZ? z8khWdu0ku_6_&Y-?>=vy_-|rvheWz=xtY|D{uPZ-E2)M)<{e*Va{BRZHWG%x0SH24{E;mV6Mpah{z$kDHW!ck*Ut7 zqReZ~PkSCROeTD4E8}MyrEM=K_+ZwLxjO?d9EX2ZLVx`0>LT__GmYrz-!m83R;sOn z%x^l4jqhheV{>WN>UXh6kdp|@RV{CdngwMIn`VPF)+YJZTn#~g7}RDHx6Yre8oS@P z^ivqCk2cH<3DCd&;lIZazVAh>h-!s?`Q!iX7|PiGSn0+0P9*scU^)Vdfzr2B8cTgK zo%h2)Op$YPhIL2<30?Hcbu~s7ZYQhhYeiness7>R?HP_!w7T+~|Ie{P|Hq?d({f7S+1@ss3HkP$Z3hH((Rf%%({VppH<7X}S^L+U>tnyw_*PCsN3Mu-p+<^-x{g`ipDXq6uYC7%-u5VMGfs~=e^hYq*jVu&maZ^ zyO1c~GvUJ@%QUiY9RKtDQdG>-_;t6lArBMp#u>aZeGVhEVN=yZ)T`(6@z%v-@)?y! z`3X)Qpz*Zk(e8#E^koKyF0&ZkR6j6%;i*DQ(Z~iM%nY8Ki43=@SUbBm*8p<27eG~< zyP0Xx^SAqKXE;?dM6I$LFP)THC!Uh+t79SLJts4E57d1K5<4F^0OS-!UprhaDMy zaswP@q{=W&M7UX(0G(RT>BnoX0q8pig^LZPJZ7dg1U0j;lz!!VvBQ_Jl=p{~w;-SY z2@8jqU#3?nim4}EQq-!9OmArF+B6Seu{n)qO_6lLVv@q)cpUywxiOZYaeQV`MD_Ci z0{Qp_(2`^rsvrdZh%v%IP_0 zDdV|^o0Q$2}ny&lS{N@1gUXz)=3-fM5T}uEEtj_D?uaI~1ZM!<6 z{WOW|6mSXL6WH#bIMmjd5CL=+HXXE$LCvQE7%b=l+KV(j&x!q`r3i}53PHOQ(m4qW zI?|h+FndR1!aV7i73?umZ9BcNVN3c~FPXW}vN*SUQgX7;trG>A9Yybx;g0}Hv$YLR zb95Dp+$4J2b0cJ|2Ht{=?}JV{b;7wnfU*U9ou_1eOQ9V za{#>?{oPME5#j;9^6>dgNO#+!N79&1$AR(QUWriIk$R?M9Dc7GalGUPU-mKHso<@T zGW&?C_S}g=;cSdg7I+P|9esMXPa8o|#kJjHe%cvBOan^hzu?nWtpn725`6m@eezT1 zF;w4WS3dz~d{oBiW{hjX;1W0OjYYRR1pc%4SZ|SIOj8(W33(m#*G2sgwD|R(`6#|gdooHfnXuRPQy8C_TD;n` z(?uc&kp;~@AlBmd6pZ(Z$kA0{ycj7_Jk;KE@H#kS4?wn(L+6Gy1~|kZw)Y5zetWfl zjE|NQwz9mGXNGH!xPsnkdfXG-W!>`agz=&>A;+ka!W7`fLeUt?D85x_jrYrCG=vo6 zbFG~9g<~wjzMqj;n*vP5_K@XzUlQxExYMVm|H5ozc|8BK59Uu{w!EnD{^Kq($PMI( z^#LHQo|N>>3dH9AJnFvrIT9VDw;$nqpyWFagN(@dBC(_gl*?{FTYEu0_TKAK zTX5_ZfAI1gWR@J|7>)nDT&F|Uam8s_h^GC2y8@-doaZC_r|?{T$U|i6IDz8XuJ3;0MMBZ1MWOyxVC5lLB^Rj_tO4@++wE@ z*rN^^Cl;rvje#H!9ZJdN2XqF3;U_`!m}WVb7=(k)O&=U9r0Kp;Q-I@pghO@qu4y%K z0^~7*?k^8)lyf|TaKKKwcE3d*Q;|4Aw1GzS1vf%kb%&8iZ+pz&X_LVezn5WS#4^5h z*(+8|#YWJsHj`1E1D9K|oqc^_R*ohqxr(iwjx(>Vg?!s=AY?RRWy{_(cx+=(-5+Cd zqM)=U>&XSTOy9v#Z&Jl}DFLT_@Q?U^4nzl@KplSTk8lJQg~ zIj*{p@1jj<$XOsq1eN7c6pv0eCZ%fCa~`%IU%St7;VJ`m^)T66L#Jz3`Lc^{LEptQ zKa_Jl1jmWtg@Xa1JQC-8$#RMlvgr0-ocZJH)qoxZcW-|%+ib8PbOXZ50S!M6s;7bM z&>$*sLx>Z=r4E37zyBdw8Ey-m0CCRkbR1lDe;THA02ZGc2yku!rYGkVtqR~lL5sTR zs^fNYfMk=HMgR8~0S%=_`Bx4pf2F&j0p+2KrHU+D1!g7Pgh|~*vJ&l7g7H$){f!8I z^g$*%x~O_+WWlx7pj;x4c&IqTwR@14!J8wUai}Q zmVJ4_Q^g%1b=}V2=41=7OC8DVcauOf0YMFbK>b!r7mz??^e&%!Lp8=#;f8m@6`KQY zU9GUf^>q!@sBuPGk%RG8fBD1BOw<>*Wr<6c#-eRj(LX+k`ttnqQTWYM`;#6zFgA#d zR6yy6O}IY{B-NXjQ1KN$*kvAmAQvmVL&Fd7jw`<*!;=$rGZa+`B4_yKq%rkQr7IDb z)|YZzQ)T{W0{C|35gD)OhS42%iF~uwaha$w%)LX^*v1}lcXnJq3=kU>Gtj3qh%X~K zN5U=|8Fz=yev@F#aOqCaQ_O(g8h%)V$ zQb0IR%&Y;matFK04iBo{4Im8Ro*E8lr_?_oQ0MfSyYt?cb) z&#qBq?{!6H)+Ot5Z$@QgM!K$bk&!Mg3Eiygd-Qqye*eLFywCfb_w)UFF0zXMYFN&N zNh1M^?3Jj(h^k>pfaFS}!Mc203W|IS3-0o&eqbvJditMmQsff+^wpRpW~|G~q|fwM zUaIfqc8-Yj_UH4a7*m`D;mWD`E3m31!pC?SIak-r6xZ;ft)@$guOeU!3PE+;q_HVk zQ`D1G#fD8Xtth%Kl%|EI@$NX}+m2qO$a(3SB>=nPNyDChP2rv4kYfj;W~`U2_?-=Y zw$4cI^JLH{;M=A*?yAIE;^mTlyyLPOn0F+?y`BX3pE5^*SAmKUVR_RKx^O>MgqeSf zocO@v`T?8>5c>GvDp&|GiCPMKrfa4(BfAdQ|1LFfpmLsRlCoQK#wMUyvB1Myp%IGZ zU~%?1Dh~(C=^Rn1OOFBhe!Tb(S=?uj0KPzZ%8x@K*~GuuZ*BZi{T!^=-14UJv;Eg> zQ&STAtr@dj(X7rYB|z#CphMd_ZU^*&5Mkqa^NAbhO!R-p(M-pu8Ut% z!7JHThO@BB10!RVe=@$EP6IVOhrQ?}t8>+O4i)Y@zHK3OZV>Rc96Zt$5GGPDE95c* z(XPPzXHZ-0`i9o0<-5^*F-Ss>jgYeoW6mp}#kfTR$+S5M$uB0^vOdSP-GLCDKJLE{ zyt*uynJB!f<2(^H;T2ph8(km)ku&yMcS;Qo@Ja4yeZcr!9|*9EKggV)tezk%U6Om$ z8{5SZb0Irs_GO%|alnf^Re-!^mUBb+(5iOphDFDqr6*mAgxcAq&B_okD!3RwQ(h*t z66ryeLP9y%u*z@k709a-Zl+T45+sf|LQ z>=2cz6Kou;QRg2qxXuK$;tqAdH~Kq4MaoB(VwTx!+LpTg+ryQeE7*(BX@3oLKhH9< z%&bnwEyC+Y--PxaA%r-7UnD*C3h;1}%?ZKfC%m_>4)C#v-Uv;|Mq?fPRTd7zPmcEt z!@%zYsUunUGJ?4FPF|N0PfjISTkk?z+|2&nR=^AZY%1T-l-HOTegb26hCg_C!e70S zbR8-9Wm&Phdexd((ZvG@p)u2vJI*#x&8}N>!#T7{`voiAT%j6T`h)vCVbCm)dhBqc z3!wLFI5Kv@R!=s(j{|sb9?cnm^l5YxpUJ&9V$3qg=gi~ir7~M9#qc58NJKrC)7fJp z@A+fr(HG#-B-H5_T9>}n(J^w`M~;7_{4JmQr4>29%+zQj`TU4 zt)4exKf>>wD}}SWD2k_q)M z3q{QJ4OYH30H0HO?JYTCZ^${gO7474MLFP#^((wiiTOvHBd?t&(+*wWb0|n1<-ZLo z`g?T-nP?;ZLBBi2P2%20$;1AEyT=OaAhYn{lLrKN%RF?#fH9zw!%XKu?6%vy@zds5yi7^{tvIOs#R#N+aFCmiKt=+@Fg5 zpK@q}<8AmdxD3T|k|4Bk3EDmEgt;h{{4&ikxz&=5;gB^l+4Rj3F19R8|G%W7bo}cskoj!u4>v~FY@|V9X6XY_HX@nb>+;@_rOs;{$ zjs@+{X!EfOAyUX-%y0!eW4!o`+)$&`r1L@QPb4RAq`UuuY&f?Rsi_aOgEPBxLmn9X zT+Z1I$DII2X0`+J+Cqw+YTZJuN!Bjjb`EmV+$>3~U@TgQ@9%tdw!oUcc@?h~L&qdAyBhP;p*;umf3M zH;-6w_gh>Kbw8m8-y*1kH(}RLEY>LB$0c|SA57vpj)^8t2xspflY&9#0I-6tCI~sU zas-Y;BKfU3*6u8E(;co_S3S5g;4fqy3p3KvLHAmh`>VuUJVuf`IhUqxDH{1t>_@-r z+!HU6PHMNTIt^2yK(l{Z#zWdyCXwVYDB!-XF?IH<3A{cO7*%+ z_?$nO6C^uM5r%cM`wzcHTi(t5LZA)ozA`JyqL+&pUac1Kmuj$2zZbb-+Tk&WhA#kz zy~#?{Ws-KBB`~MvMs5BKU95Y2Sz$^AQ?5}u)L1DgR+(`cFb5#9y&Cm?Za z8A(2CndsF4|Ja`4(bt8_31n)c@pm(mXY)tV4h{tn+eIonp8xul?0n{^B5l45@=Oo3 z%Hc5_QzfuxlRIo~>8wZn2L1dL*thye>1NV}Jsa~z(M8`Ir5yw2{}Lp(YZ|3Zezdzd z(N=cBLz^n3LXJn0pREVTZ`5&VEs}Ph$htG!JPYi;kJ>b!K)i(3naPEGj&TPqUlsCY zOc|2&i8gl`W;S?W{X-s*7G^Oet+P8f6InoVmUX1{#~H3_RPMx}e(T&PfurPjvf5X- zIZB`TSyfkr^S>De)61uve{mC&zN{Vi5VK2EjB{n#k2KS^Zap*IH>%|L7@Y4c%Dt9Lra^8xnRQJY0B}cDdVpWE10Z{OHu`uab61fiimw`l zF8NKk++<{LC>D&WHXOoFZVSC)U|p@-a$9Knk~#F+Xn=Qs5<4v@ew_Xx%&Zh$zb3UDwR(jD{~6GU&n%Ns*^~M?XZ)C<%M&1-XhP3iQ-?Xa{lVE3BOf2pz>K@6;P?Yab=zbXODnVhz_8$h} zJG$-v9|p01>qdMez;4ifHQN-IO%`TGeb!RT)1TAfW1nMiW^3S^d1is#gfhAk_-4VuHAc1LRSid6h(VSL=PLwBr>u`+p4smbAMRDCy2Lnm)5 zMEQ%q%t;~d&hCWQxLFPUk4dd$dt582oJr>hZ3-M07uivy$B@Ef#dVQGVhH;EQbm_$ zsYy5Q0K3isg^#aahu}+>2eLPJsDsKOdW~3vx?_$qAL__13vD{&kR#R=C92(?I{jcR z(7!`8bXmMFBSPvFzWhh+o>5CDw&+NEq~xpDz2VyuK!YLe=|hLP+Oqu72E`|%N;S6( zHh-Kk4flnUA1_`iwO1RmoaWBByMtm}s7AlB%j}KbN!k*D${zNu+v#98N4j0r_of}?usQE9O>GO1 zNhHEX_qa7|B2cfz3N0aOwLqnl-@CcU&s!6i7_@4pd2!qk^s3PQw8ralvsXUMdOyTx zs4#QL-2N;?73i8%5Qf|2G?lY-TKbQQ&wj|M*aIT6+azRC34B*X`Ouckq%dQWl|CSu|<%@+o~ z;dc9HwWG%B?l?>bXDgheD66qoqoAPk)7DTm0Ur6YyfD0o9*j^vJ^2#tmJfgAdikv; z_A1_t(X@TrUU9|fMKyBWCI8U7#fh!!Q)VdRYDuJ^Mz%mfLIqv}GdrUa$|OB_$1rGK zp$Z_Hqu4j$(A~R50Ah02o$~Wa6#q0oLP<9TQF3;6H z{QK7>*Q?+7Ymr`A2H2Z*doy^y-;F|{GP=cA@FN#7GW(@lO?GPM48M%ed;RMT19;ykDmURr$$~g(}sh zY~Erm$j{d%xEissnad7m<6gj4(L&WVwEQ8s1_Y#9UUq+IP=c9s4l@=DvFXuyrIpyP zi|O?$R{*D8!c@yDPN%)GGFK>?@-0EYp~qkVUv2}F0ZPicOSjcqdM)8P?yU1TTG=?9jbN8 zuQg5te{v>#^M{}>0}$oRIv^C*1uy<>w~%_W6)yPWjIXl-A)OY%LmfuOX%%_*0}}-0 zAf|P0Cz>WtxrRp)U16||3mXxDWRJ*tFq(`Fhsx&X79-VpzVg+spMYN=XnVp3#4hjY z_Gt?;7lcqMdUK{1Fv92-B$|^iAC;Edd>7R3Ae=C1GV_tI8@)aH#IC-kYuaCUXed9 z+kEM5@oWoqGWvIR4!@>+5V!t^PXsmj{vV$VQ9(geBqu%Rz58*r0Hh@#>tD2za0zI; zjDuDR52^nWc-m;7E!_(kf>2rpuia#`sVNR*dLXF;)r)t{><0#qtvM8LAvb-lTGdor zc*YedSEdz=!bY_wFo#*!dg;FpT4QEf9n0C93OQUF2anVtfK)=*imNVHt1D3D;)S)n zbBjy0xLfLSgUn6)&Ex7otsW4S_|>=AAE=Oqlt-v0ac1!bhumP$?9t;^QyQxvW^xW@ zuDZTHXf6NeEk|ulG0t6*s8Lk}wsnOorwH#t-+9#f*{XN{6sC@Vg7Mu;@7P$z1Vwl^ zB!h5%g_E70uM4_pKIFYT5@WxEf+KV-AlX=Zvt5TfYad7aFr(BFr%r~JF=$+Py_?O$ zru}(qu||itdfZJTj-lsPFRugVoSg>>(NZgDzb?m;_RjG0I%9=#%g|ouPNk1~w&E{b zJd^qcV1np;c(=qC)CGL0Tso-ZHvL~-^2Ip#XJh59gID3Dx=Qkw>mo})JO0GUd*MqY z$RAEr41wj5oVw)=P@U%Mdk+72v#B-?_(DFcN|#Nqbi&wJ!O#D3x@hF{lA|ewA|#IP zcf53UQ^cCm)1E(;SKl380fwv3*Xck4UXnz!E1R}%;J-RRI#nB6w8XjcbB=Ee2iv;q zsoIPFBv}qWh-8R=;S~cimRpK(l^narr>Ijt8#*etRBr&qy;puaglA_7^wQrL1?Dj28@(mY z8QQR|Wli#*qi)$<i9bP5#hntbOgpzw61O+Q}KY ldwS}~EO|zv(VXEADhlVV?ceffe$TVD)7I42K&shB{SW1P@sI!j diff --git a/metric-vertical-button.png b/metric-vertical-button.png deleted file mode 100644 index 3688c1eac5e3e31a5465064650eb3568d6d50b38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75755 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

f~J*9?>-?yT*!5Jz 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 JLgT;4{{vEdW`_U( diff --git a/src/App.tsx b/src/App.tsx index acd0196..f21cb5a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -31,8 +31,93 @@ const metricOptions = [ { key: 'usableArea', label: '使用面积指标(元/m²)' }, ] as const; +const contentOptions = [ + { key: 'geoLocation', label: '自然地理区位' }, + { key: 'facilityType', label: '设施类别' }, + { key: 'constructionStage', label: '建设阶段' }, + { key: 'planningForm', label: '规划形式' }, +] as const; + +const browserTreeDefaults = { + treetype: '256', + checkStrictly: 'true', + requestid: '-1', + workflowid: '181028', + wfid: '181028', + billid: '-1812', + isbill: '1', + f_weaver_belongto_userid: '267', + f_weaver_belongto_usertype: '0', + wf_isagent: '0', + wf_beagenter: '0', + wfTestStr: '', + viewtype: '1', + fromModule: 'workflow', + wfCreater: '267', + disabledConditionCache: 'true', + companyId: '1', +}; + +const contentTreeConfigs = { + geoLocation: { + endpoint: '/api/public/browser/data/256', + treeid: '94004', + fieldid: '305425', + defaultExpandedLevel: 1, + }, + facilityType: { + endpoint: '/api/public/browser/data/256', + treeid: '94005', + fieldid: '305426', + defaultExpandedLevel: 3, + }, + constructionStage: { + endpoint: '/api/public/browser/data/256', + treeid: '94007', + fieldid: '305428', + defaultExpandedLevel: 1, + }, + planningForm: { + endpoint: '/api/public/browser/data/256', + treeid: '94006', + fieldid: '305427', + defaultExpandedLevel: 1, + }, +} as const; + +const chartLineColors = ['#0078a8', '#d14d72', '#1f8f4d', '#d96f23', '#6b5cc8', '#0d7680', '#9a6b12', '#b24b38']; + +// const mockGeoLocationPayload = { +// checkStrictly: true, +// type: 3, +// datas: [ +// { +// allVersionIds: '', +// canClick: false, +// checkStrictly: true, +// dsporder: 0, +// icon: '', +// id: '95005_22', +// isImgIcon: false, +// isParent: true, +// linkUrl: '/formmode/search/CustomSearchOpenTree.jsp?pid=95005_22', +// name: '中国', +// pid: '0_0', +// selected: false, +// title: '中国', +// type: '2', +// }, +// ], +// iconSetting: { +// bgColor: '#96358a', +// icon: 'icon-coms-ModelingEngine', +// fontColor: '#fff', +// }, +// }; + type StatisticKey = (typeof statisticOptions)[number]['key']; type MetricKey = (typeof metricOptions)[number]['key']; +type ContentKey = (typeof contentOptions)[number]['key']; type GroupKey = 'year'; type ApiBuildingFunctionStat = { group_key?: string | number | null; @@ -51,9 +136,30 @@ type ChartDatum = { medianValue: number | null; dataCount: number | null; }; +type TreeNode = { + id: string; + label: string; + children: TreeNode[]; + hasChildren: boolean; + canClick: boolean; + expanded: boolean; + loading: boolean; + loaded: boolean; +}; +type SelectedContentNode = { + id: string; + contentKey: ContentKey; + label: string; + color: string; +}; function formatWan(value: number) { - return `${Math.round(value / 10000).toLocaleString('zh-CN')}万`; + const wanValue = value / 10000; + const fractionDigits = Math.abs(wanValue) < 1 ? 4 : 2; + return `${wanValue.toLocaleString('zh-CN', { + minimumFractionDigits: 0, + maximumFractionDigits: fractionDigits, + })}万`; } function normalizeStat(row: ApiBuildingFunctionStat): ChartDatum { @@ -67,44 +173,422 @@ function normalizeStat(row: ApiBuildingFunctionStat): ChartDatum { }; } +function buildQuery(params: Record) { + const search = new URLSearchParams(); + Object.entries(params).forEach(([key, value]) => { + if (value == null) return; + search.set(key, String(value)); + }); + search.set('currenttime', String(Date.now())); + search.set('__random__', String(Date.now())); + return search.toString(); +} + +function pickArray(payload: unknown): unknown[] { + if (Array.isArray(payload)) return payload; + if (!payload || typeof payload !== 'object') return []; + + const source = payload as Record; + const candidates = [ + source.datas, + source.data, + source.data && typeof source.data === 'object' ? (source.data as Record).datas : null, + source.data && typeof source.data === 'object' ? (source.data as Record).list : null, + source.data && typeof source.data === 'object' ? (source.data as Record).treeDatas : null, + source.result, + source.rows, + source.list, + source.treeDatas, + source.children, + ]; + + for (const candidate of candidates) { + if (Array.isArray(candidate)) return candidate; + } + return []; +} + +function readText(row: Record, keys: string[]) { + for (const key of keys) { + const value = row[key]; + if (value !== null && value !== undefined && String(value).trim()) { + return String(value); + } + } + return ''; +} + +function normalizeTreeRows(rows: unknown[]): TreeNode[] { + return rows + .filter((row): row is Record => !!row && typeof row === 'object') + .map((row, index) => { + const children = normalizeTreeRows(pickArray(row.children ?? row.childs ?? row.subs)); + const id = readText(row, ['id', 'key', 'value', 'nodeid', 'treeid', 'browserid']) || `node-${index}`; + const label = readText(row, ['name', 'label', 'title', 'text', 'showname', 'showName', 'browsername', 'displayName']) || id; + const hasChildren = + children.length > 0 || + row.hasChild === true || + row.haschild === true || + row.isParent === true || + row.isparent === true || + row.children === true || + row.child === true; + const canClick = row.canClick === true || row.canClick === 'true' || row.canclick === true || row.canclick === 'true'; + + return { + id, + label, + children, + hasChildren, + canClick, + expanded: children.length > 0, + loading: false, + loaded: children.length > 0, + }; + }); +} + +function updateNode(nodes: TreeNode[], nodeId: string, updater: (node: TreeNode) => TreeNode): TreeNode[] { + return nodes.map((node) => { + if (node.id === nodeId) return updater(node); + return { + ...node, + children: updateNode(node.children, nodeId, updater), + }; + }); +} + +function getSelectionKey(contentKey: ContentKey, nodeId: string) { + return `${contentKey}:${nodeId}`; +} + +function getSeriesValueKey(index: number) { + return `amount${index}`; +} + +function renderTreeNodes( + nodes: TreeNode[], + contentKey: ContentKey, + selectedNodeKeys: Set, + getNodeColor: (contentKey: ContentKey, nodeId: string) => string, + onToggle: (nodeId: string) => void, + onSelect: (node: TreeNode) => void, + depth = 0, +) { + return ( +

    + {nodes.map((node) => { + const selected = selectedNodeKeys.has(getSelectionKey(contentKey, node.id)); + const color = node.canClick ? getNodeColor(contentKey, node.id) : undefined; + + return ( +
  • +
    + {node.hasChildren ? ( + + ) : ( + + )} + + {node.loading ? 加载中 : null} +
    + {node.expanded && node.children.length > 0 + ? renderTreeNodes(node.children, contentKey, selectedNodeKeys, getNodeColor, onToggle, onSelect, depth + 1) + : null} +
  • + ); + })} +
+ ); +} + function App() { const workspaceRef = useRef(null); const chartFrameRef = useRef(null); + const treeInitialLoadStartedRef = useRef>({ + geoLocation: false, + facilityType: false, + constructionStage: false, + planningForm: false, + }); const [statisticKey, setStatisticKey] = useState('avgValue'); const [metricKey, setMetricKey] = useState('cost'); const [groupKey, setGroupKey] = useState('year'); const [statisticMenuOpen, setStatisticMenuOpen] = useState(false); const [metricMenuOpen, setMetricMenuOpen] = useState(false); - const [chartData, setChartData] = useState([]); - const [loading, setLoading] = useState(true); + const [activeContentKey, setActiveContentKey] = useState('geoLocation'); + const [treeByContent, setTreeByContent] = useState>({ + geoLocation: [], + facilityType: [], + constructionStage: [], + planningForm: [], + }); + const [treeLoadingByContent, setTreeLoadingByContent] = useState>({ + geoLocation: false, + facilityType: false, + constructionStage: false, + planningForm: false, + }); + const [treeErrorByContent, setTreeErrorByContent] = useState>({ + geoLocation: null, + facilityType: null, + constructionStage: null, + planningForm: null, + }); + const [selectedContentNodes, setSelectedContentNodes] = useState([]); + const [chartDataBySelection, setChartDataBySelection] = useState>({}); + const [chartQueryVersion, setChartQueryVersion] = useState(0); + const [loading, setLoading] = useState(false); const [loadError, setLoadError] = useState(null); const selectedStatistic = statisticOptions.find((option) => option.key === statisticKey) ?? statisticOptions[0]; const selectedMetric = metricOptions.find((option) => option.key === metricKey) ?? metricOptions[0]; + const activeContent = contentOptions.find((option) => option.key === activeContentKey) ?? contentOptions[0]; + const activeTree = treeByContent[activeContentKey]; + const selectedNodeKeys = useMemo( + () => new Set(selectedContentNodes.map((node) => getSelectionKey(node.contentKey, node.id))), + [selectedContentNodes], + ); + + const getNodeColor = (contentKey: ContentKey, nodeId: string) => { + const selectedIndex = selectedContentNodes.findIndex((node) => node.contentKey === contentKey && node.id === nodeId); + if (selectedIndex >= 0) return selectedContentNodes[selectedIndex].color; + + let hash = 0; + const key = getSelectionKey(contentKey, nodeId); + for (let index = 0; index < key.length; index += 1) { + hash = (hash * 31 + key.charCodeAt(index)) % chartLineColors.length; + } + return chartLineColors[hash]; + }; + + const fetchContentTree = async (contentKey: ContentKey, nodeId?: string) => { + const config = contentTreeConfigs[contentKey]; + if (!config) { + throw new Error('接口待接入'); + } + const treeParams = { + ...browserTreeDefaults, + treeid: config.treeid, + cube_treeid: config.treeid, + fieldid: config.fieldid, + }; + const params = nodeId + ? { + ...treeParams, + type: '2', + id: nodeId, + isVirtual: '', + } + : { + ...treeParams, + pageSize: '10', + current: '1', + min: '1', + max: '10', + }; + const response = await fetch(`${config.endpoint}?${buildQuery(params)}`, { + credentials: 'include', + headers: { + 'X-Requested-With': 'XMLHttpRequest', + }, + }); + if (!response.ok) { + throw new Error(`HTTP ${response.status}`); + } + return normalizeTreeRows(pickArray(await response.json())); + }; + + const loadContentTreeWithDefaultExpansion = async (contentKey: ContentKey) => { + const defaultExpandedLevel = contentTreeConfigs[contentKey]?.defaultExpandedLevel ?? 0; + const loadChildren = async (nodes: TreeNode[], level: number): Promise => { + if (level > defaultExpandedLevel) return nodes; + + return Promise.all( + nodes.map(async (node) => { + if (!node.hasChildren) return node; + + const children = node.loaded ? node.children : await fetchContentTree(contentKey, node.id); + return { + ...node, + children: await loadChildren(children, level + 1), + expanded: true, + loading: false, + loaded: true, + hasChildren: node.hasChildren || children.length > 0, + }; + }), + ); + }; + + return loadChildren(await fetchContentTree(contentKey), 1); + }; + + const toggleContentNode = (nodeId: string) => { + if (!contentTreeConfigs[activeContentKey]) return; + const target = activeTree.find((node) => node.id === nodeId); + const visit = (nodes: TreeNode[]): TreeNode | null => { + for (const node of nodes) { + if (node.id === nodeId) return node; + const matched = visit(node.children); + if (matched) return matched; + } + return null; + }; + const node = target ?? visit(activeTree); + if (!node?.hasChildren) return; + + setTreeByContent((current) => ({ + ...current, + [activeContentKey]: updateNode(current[activeContentKey], nodeId, (node) => ({ + ...node, + expanded: node.loaded ? !node.expanded : node.expanded, + loading: node.loaded ? node.loading : true, + })), + })); + + if (node.loaded) return; + + const currentContentKey = activeContentKey; + fetchContentTree(currentContentKey, nodeId) + .then((children) => { + setTreeByContent((current) => ({ + ...current, + [currentContentKey]: updateNode(current[currentContentKey], nodeId, (currentNode) => ({ + ...currentNode, + children, + expanded: true, + loading: false, + loaded: true, + hasChildren: currentNode.hasChildren || children.length > 0, + })), + })); + }) + .catch((error) => { + setTreeByContent((current) => ({ + ...current, + [currentContentKey]: updateNode(current[currentContentKey], nodeId, (currentNode) => ({ + ...currentNode, + loading: false, + })), + })); + setTreeErrorByContent((current) => ({ + ...current, + [currentContentKey]: error instanceof Error ? error.message : '加载失败', + })); + }); + }; + + const toggleSelectedContentNode = (node: TreeNode) => { + const contentKey = activeContentKey; + setSelectedContentNodes((current) => { + const selectionKey = getSelectionKey(contentKey, node.id); + const existingIndex = current.findIndex((item) => getSelectionKey(item.contentKey, item.id) === selectionKey); + if (existingIndex >= 0) { + setChartDataBySelection((data) => { + const { [selectionKey]: _removed, ...rest } = data; + return rest; + }); + return current.filter((_, index) => index !== existingIndex); + } + + const usedColors = new Set(current.map((item) => item.color)); + const color = chartLineColors.find((item) => !usedColors.has(item)) ?? chartLineColors[current.length % chartLineColors.length]; + return [...current, { id: node.id, contentKey, label: node.label, color }]; + }); + }; + + const updateMetricKey = (nextMetricKey: MetricKey) => { + setMetricKey(nextMetricKey); + setChartDataBySelection({}); + setChartQueryVersion((version) => version + 1); + }; + + useEffect(() => { + if (!contentTreeConfigs[activeContentKey]) return; + if (treeByContent[activeContentKey].length > 0 || treeInitialLoadStartedRef.current[activeContentKey]) return; + + const currentContentKey = activeContentKey; + treeInitialLoadStartedRef.current[currentContentKey] = true; + setTreeLoadingByContent((current) => ({ ...current, [currentContentKey]: true })); + setTreeErrorByContent((current) => ({ ...current, [currentContentKey]: null })); + + loadContentTreeWithDefaultExpansion(currentContentKey) + .then((nodes) => { + setTreeByContent((current) => ({ ...current, [currentContentKey]: nodes })); + }) + .catch((error) => { + treeInitialLoadStartedRef.current[currentContentKey] = false; + setTreeErrorByContent((current) => ({ + ...current, + [currentContentKey]: error instanceof Error ? error.message : '加载失败', + })); + }) + .finally(() => { + setTreeLoadingByContent((current) => ({ ...current, [currentContentKey]: false })); + }); + }, [activeContentKey, treeByContent]); useEffect(() => { const controller = new AbortController(); async function loadStats() { + if (selectedContentNodes.length === 0) { + setChartDataBySelection({}); + setLoading(false); + setLoadError(null); + return; + } + setLoading(true); setLoadError(null); try { - const search = new URLSearchParams({ - groupBy: groupKey, - metric: metricKey, - }); - const response = await fetch(`${API_BASE_URL}/zw/getBuildingFunctionCostStats?${search.toString()}`, { - signal: controller.signal, - }); - if (!response.ok) { - throw new Error(`HTTP ${response.status}`); + const missingNodes = selectedContentNodes.filter((node) => !chartDataBySelection[getSelectionKey(node.contentKey, node.id)]); + if (missingNodes.length === 0) { + setLoading(false); + return; } - const payload = (await response.json()) as { data?: ApiBuildingFunctionStat[] }; - setChartData((payload.data ?? []).map(normalizeStat).slice(0, 36)); + + const results = await Promise.all( + missingNodes.map(async (node) => { + const search = new URLSearchParams({ + groupBy: groupKey, + metric: metricKey, + contentKey: node.contentKey, + nodeId: node.id, + }); + const response = await fetch(`${API_BASE_URL}/zw/getBuildingFunctionCostStats?${search.toString()}`, { + signal: controller.signal, + }); + if (!response.ok) { + throw new Error(`HTTP ${response.status}`); + } + const payload = (await response.json()) as { data?: ApiBuildingFunctionStat[] }; + return [getSelectionKey(node.contentKey, node.id), (payload.data ?? []).map(normalizeStat).slice(0, 36)] as const; + }), + ); + setChartDataBySelection((current) => ({ + ...current, + ...Object.fromEntries(results), + })); } catch (error) { if (controller.signal.aborted) return; setLoadError(error instanceof Error ? error.message : '接口请求失败'); - setChartData([]); + setChartDataBySelection({}); } finally { if (!controller.signal.aborted) { setLoading(false); @@ -117,7 +601,7 @@ function App() { return () => { controller.abort(); }; - }, [groupKey, metricKey]); + }, [chartDataBySelection, chartQueryVersion, groupKey, metricKey, selectedContentNodes]); useEffect(() => { const frame = chartFrameRef.current; @@ -126,7 +610,6 @@ function App() { const getFullscreenButton = () => frame.querySelector('.chart-fullscreen-button'); const getStatisticButton = () => frame.querySelector('.ag-charts-myButton-statistic')?.closest('.ag-charts-toolbar__button'); - const syncToolbarButtons = () => { const button = getFullscreenButton(); if (button) { @@ -145,6 +628,7 @@ function App() { const statisticButton = getStatisticButton(); if (statisticButton) { statisticButton.classList.add('chart-statistic-button'); + statisticButton.setAttribute('aria-expanded', String(statisticMenuOpen)); } }; @@ -177,6 +661,7 @@ function App() { event.preventDefault(); event.stopPropagation(); + event.stopImmediatePropagation(); if (button.classList.contains('chart-statistic-button')) { setMetricMenuOpen(false); setStatisticMenuOpen((open) => !open); @@ -196,6 +681,7 @@ function App() { event.preventDefault(); event.stopPropagation(); + event.stopImmediatePropagation(); if (button.classList.contains('chart-statistic-button')) { setMetricMenuOpen(false); setStatisticMenuOpen((open) => !open); @@ -227,14 +713,28 @@ function App() { frame.removeEventListener('keydown', handleToolbarKeyDown, true); observer.disconnect(); }; - }, []); + }, [statisticMenuOpen]); const chartOptions = useMemo(() => { const isCount = statisticKey === 'dataCount'; - const visibleData = chartData.map((datum) => ({ - groupName: datum.groupName, - amount: datum[statisticKey], - })); + const groupNames: string[] = []; + const groupNameSeen = new Set(); + selectedContentNodes.forEach((node) => { + const rows = chartDataBySelection[getSelectionKey(node.contentKey, node.id)] ?? []; + rows.forEach((datum) => { + if (groupNameSeen.has(datum.groupName)) return; + groupNameSeen.add(datum.groupName); + groupNames.push(datum.groupName); + }); + }); + const visibleData = groupNames.map((groupName) => { + const row: Record = { groupName }; + selectedContentNodes.forEach((node, index) => { + const datum = chartDataBySelection[getSelectionKey(node.contentKey, node.id)]?.find((item) => item.groupName === groupName); + row[getSeriesValueKey(index)] = datum?.[statisticKey] ?? null; + }); + return row; + }); return { theme: { @@ -290,7 +790,7 @@ function App() { toolbar: { buttons: ([ { - value: 'statistic-select', + value: 'note', tooltip: '切换统计指标', label: `${selectedStatistic.shortLabel}`, }, @@ -322,25 +822,23 @@ function App() { ] as unknown as NonNullable['toolbar']>['buttons']), }, }, - series: [ - { - type: 'line', - xKey: 'groupName', - yKey: 'amount', - yName: `${selectedMetric.label} ${selectedStatistic.label}`, - stroke: '#0078a8', - strokeWidth: 2, - marker: { - enabled: true, - fill: '#0078a8', - stroke: '#0078a8', - size: 5, - }, - interpolation: { - type: 'smooth', - }, + series: selectedContentNodes.map((node, index) => ({ + type: 'line', + xKey: 'groupName', + yKey: getSeriesValueKey(index), + yName: `${node.label} ${selectedStatistic.label}`, + stroke: node.color, + strokeWidth: 2, + marker: { + enabled: true, + fill: node.color, + stroke: node.color, + size: 5, }, - ], + interpolation: { + type: 'smooth', + }, + })), axes: { x: { type: 'category', @@ -398,13 +896,13 @@ function App() { }, }, legend: { - enabled: false, + enabled: selectedContentNodes.length > 1, }, tooltip: { enabled: true, }, }; - }, [chartData, selectedMetric.label, selectedStatistic.label, statisticKey]); + }, [chartDataBySelection, selectedContentNodes, selectedMetric.label, selectedStatistic.label, statisticKey]); return (
@@ -461,7 +959,7 @@ function App() { key={option.key} aria-current={option.key === metricKey} onClick={() => { - setMetricKey(option.key); + updateMetricKey(option.key); setMetricMenuOpen(false); }} > @@ -471,7 +969,9 @@ function App() { ) : null} - {loading || loadError ?
{loading ? '加载中' : loadError}
: null} + {loading || loadError || selectedContentNodes.length === 0 ? ( +
{loading ? '加载中' : loadError || '请选择右侧分类项'}
+ ) : null} @@ -479,7 +979,34 @@ function App() { -
); diff --git a/src/main.tsx b/src/main.tsx index 84bd146..9810412 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -6,8 +6,34 @@ import './styles.css'; ModuleRegistry.registerModules([AllCommunityModule]); -createRoot(document.getElementById('root')!).render( - - - , -); +declare global { + interface Window { + __zbChartRoot?: ReturnType; + } +} + +const mount = () => { + const container = document.getElementById('zbChart'); + if (!container) return false; + + window.__zbChartRoot ??= createRoot(container); + window.__zbChartRoot.render( + + + , + ); + return true; +}; + +if (!mount()) { + let retryCount = 0; + const timer = window.setInterval(() => { + retryCount += 1; + if (mount() || retryCount >= 40) { + window.clearInterval(timer); + if (retryCount >= 40) { + console.warn('zbChart container was not found.'); + } + } + }, 50); +} diff --git a/src/styles.css b/src/styles.css index b084daf..f3e67f7 100644 --- a/src/styles.css +++ b/src/styles.css @@ -176,7 +176,7 @@ button { height: calc(100vh - 26px); } -.workspace:fullscreen .right-placeholder { +.workspace:fullscreen .right-panel { display: block; min-width: 0; height: 100%; @@ -252,6 +252,17 @@ button { background: rgba(255, 252, 248, 0.94); } +.chart-frame .chart-statistic-button { + color: #46413b; +} + +.chart-frame .chart-statistic-button[aria-expanded="true"] { + color: #0078a8; + border-color: rgba(0, 120, 168, 0.36); + background: rgba(255, 252, 248, 0.94); + box-shadow: 0 1px 5px rgba(69, 54, 36, 0.12); +} + .metric-switcher { position: absolute; left: 74px; @@ -481,9 +492,177 @@ button { opacity: 0.38; } -.right-placeholder { +.right-panel { + display: grid; + grid-template-rows: auto minmax(0, 1fr); min-width: 0; height: 100%; + max-height: 100%; + padding-top: 24px; + overflow: hidden; +} + +.content-tabs { + display: flex; + align-items: center; + gap: 6px; + min-width: 0; + padding-bottom: 12px; +} + +.content-tab { + height: 32px; + padding: 0 12px; + border: 1px solid rgba(90, 82, 72, 0.18); + border-radius: 3px; + color: #46413b; + background: rgba(255, 249, 241, 0.62); + font-size: 14px; + line-height: 30px; + white-space: nowrap; + cursor: pointer; +} + +.content-tab:hover, +.content-tab[aria-selected="true"] { + color: #0078a8; + border-color: rgba(0, 120, 168, 0.36); + background: rgba(255, 252, 248, 0.94); + box-shadow: 0 1px 5px rgba(69, 54, 36, 0.12); +} + +.content-tree-panel { + min-width: 0; + min-height: 0; + max-height: 100%; + overflow-y: auto; + overflow-x: hidden; + padding: 14px 6px 14px 0; + border-top: 1px solid rgba(90, 82, 72, 0.14); +} + +.content-tree-title { + margin-bottom: 12px; + color: #262a33; + font-size: 18px; + font-weight: 600; + line-height: 24px; +} + +.content-tree-list { + margin: 0; + padding: 0; + list-style: none; +} + +.content-tree-node { + margin: 0; + padding: 0; +} + +.content-tree-row { + display: flex; + align-items: center; + width: 100%; + min-height: 42px; + border-radius: 3px; + color: #262a33; + background: transparent; + font-size: 17px; + line-height: 42px; + text-align: left; +} + +.content-tree-row:hover { + color: #0078a8; + background: rgba(255, 252, 248, 0.74); +} + +.content-tree-caret { + display: inline-grid; + width: 24px; + height: 24px; + place-items: center; + flex: 0 0 24px; + padding: 0; + border: 0; + color: #6f665e; + background: transparent; + font-size: 15px; + line-height: 24px; + cursor: pointer; +} + +.content-tree-caret.is-leaf { + color: transparent; + cursor: default; +} + +.content-tree-select { + display: flex; + align-items: center; + min-width: 0; + flex: 1 1 auto; + gap: 10px; + height: 38px; + padding: 0 6px 0 2px; + border: 0; + border-radius: 3px; + color: inherit; + background: transparent; + text-align: left; + cursor: pointer; +} + +.content-tree-select:disabled { + cursor: default; +} + +.content-tree-select:hover, +.content-tree-select[aria-pressed="true"] { + color: #0078a8; + background: rgba(255, 252, 248, 0.78); +} + +.content-tree-select:disabled:hover { + color: inherit; + background: transparent; +} + +.content-tree-select[aria-pressed="true"] { + font-weight: 600; +} + +.content-tree-series-mark { + width: 24px; + height: 4px; + flex: 0 0 24px; + border-radius: 2px; + opacity: 0.55; +} + +.content-tree-select[aria-pressed="true"] .content-tree-series-mark { + opacity: 1; +} + +.content-tree-label { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.content-tree-loading { + margin-left: 8px; + color: #7a7067; + font-size: 14px; +} + +.content-tree-empty { + padding: 16px 0; + color: #7a7067; + font-size: 17px; + line-height: 24px; } @media (max-width: 900px) { @@ -502,7 +681,11 @@ button { min-height: 520px; } - .right-placeholder { + .right-panel { min-height: 280px; } + + .content-tabs { + flex-wrap: wrap; + } } diff --git a/vite-dev.log b/vite-dev.log index 8a61b15..5c73de4 100644 --- a/vite-dev.log +++ b/vite-dev.log @@ -64,3 +64,37 @@ Port 5173 is in use, trying another one... 09:35:53 [vite] (client) hmr update /src/App.tsx 09:35:53 [vite] (client) hmr update /src/styles.css 09:36:43 [vite] (client) hmr update /src/App.tsx +09:40:50 [vite] (client) hmr update /src/App.tsx +09:41:06 [vite] (client) hmr update /src/styles.css +09:42:18 [vite] (client) hmr update /src/styles.css +09:55:02 [vite] (client) hmr update /src/App.tsx +09:55:36 [vite] (client) hmr update /src/App.tsx +09:55:49 [vite] (client) hmr update /src/styles.css +10:07:23 [vite] (client) hmr update /src/App.tsx +10:26:33 [vite] (client) hmr update /src/App.tsx +10:27:25 [vite] (client) hmr update /src/App.tsx +10:27:56 [vite] (client) hmr update /src/styles.css +11:14:09 [vite] (client) hmr update /src/App.tsx +11:16:09 [vite] (client) page reload zbChart/index.html +11:17:29 [vite] (client) page reload index.html +11:17:43 [vite] (client) page reload src/main.tsx +11:32:17 [vite] (client) page reload src/main.tsx +11:35:33 [vite] (client) hmr update /src/App.tsx +11:35:45 [vite] (client) hmr update /src/styles.css +11:49:29 [vite] (client) hmr update /src/App.tsx +11:52:03 [vite] (client) hmr update /src/styles.css +11:53:37 [vite] (client) hmr update /src/App.tsx +11:57:22 [vite] (client) hmr update /src/App.tsx +11:59:02 [vite] (client) hmr update /src/App.tsx +15:00:25 [vite] (client) hmr update /src/App.tsx +15:14:46 [vite] (client) hmr update /src/App.tsx +15:14:56 [vite] (client) hmr update /src/App.tsx +15:15:05 [vite] (client) hmr update /src/App.tsx +15:15:18 [vite] (client) hmr update /src/App.tsx +15:15:29 [vite] (client) hmr update /src/App.tsx +15:15:39 [vite] (client) hmr update /src/App.tsx +15:15:49 [vite] (client) hmr update /src/styles.css +15:54:06 [vite] (client) hmr update /src/App.tsx +15:54:29 [vite] (client) hmr update /src/styles.css +16:29:28 [vite] (client) hmr update /src/App.tsx +16:29:37 [vite] (client) hmr update /src/App.tsx diff --git a/zbChart/assets/index-BBo2g0gG.js b/zbChart/assets/index-BBo2g0gG.js new file mode 100644 index 0000000..fe32727 --- /dev/null +++ b/zbChart/assets/index-BBo2g0gG.js @@ -0,0 +1,42 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function i(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(s){if(s.ep)return;s.ep=!0;const a=i(s);fetch(s.href,a)}})();var sC={exports:{}},wy={};var oz;function W6(){if(oz)return wy;oz=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function i(n,s,a){var o=null;if(a!==void 0&&(o=""+a),s.key!==void 0&&(o=""+s.key),"key"in s){a={};for(var r in s)r!=="key"&&(a[r]=s[r])}else a=s;return s=a.ref,{$$typeof:t,type:n,key:o,ref:s!==void 0?s:null,props:a}}return wy.Fragment=e,wy.jsx=i,wy.jsxs=i,wy}var rz;function K6(){return rz||(rz=1,sC.exports=W6()),sC.exports}var si=K6(),aC={exports:{}},re={};var lz;function Y6(){if(lz)return re;lz=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),o=Symbol.for("react.context"),r=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),d=Symbol.for("react.activity"),g=Symbol.iterator;function f(G){return G===null||typeof G!="object"?null:(G=g&&G[g]||G["@@iterator"],typeof G=="function"?G:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,S={};function D(G,et,st){this.props=G,this.context=et,this.refs=S,this.updater=st||y}D.prototype.isReactComponent={},D.prototype.setState=function(G,et){if(typeof G!="object"&&typeof G!="function"&&G!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,G,et,"setState")},D.prototype.forceUpdate=function(G){this.updater.enqueueForceUpdate(this,G,"forceUpdate")};function A(){}A.prototype=D.prototype;function I(G,et,st){this.props=G,this.context=et,this.refs=S,this.updater=st||y}var w=I.prototype=new A;w.constructor=I,x(w,D.prototype),w.isPureReactComponent=!0;var N=Array.isArray;function O(){}var L={H:null,A:null,T:null,S:null},R=Object.prototype.hasOwnProperty;function P(G,et,st){var lt=st.ref;return{$$typeof:t,type:G,key:et,ref:lt!==void 0?lt:null,props:st}}function B(G,et){return P(G.type,et,G.props)}function F(G){return typeof G=="object"&&G!==null&&G.$$typeof===t}function H(G){var et={"=":"=0",":":"=2"};return"$"+G.replace(/[=:]/g,function(st){return et[st]})}var $=/\/+/g;function Y(G,et){return typeof G=="object"&&G!==null&&G.key!=null?H(""+G.key):et.toString(36)}function U(G){switch(G.status){case"fulfilled":return G.value;case"rejected":throw G.reason;default:switch(typeof G.status=="string"?G.then(O,O):(G.status="pending",G.then(function(et){G.status==="pending"&&(G.status="fulfilled",G.value=et)},function(et){G.status==="pending"&&(G.status="rejected",G.reason=et)})),G.status){case"fulfilled":return G.value;case"rejected":throw G.reason}}throw G}function V(G,et,st,lt,mt){var Dt=typeof G;(Dt==="undefined"||Dt==="boolean")&&(G=null);var kt=!1;if(G===null)kt=!0;else switch(Dt){case"bigint":case"string":case"number":kt=!0;break;case"object":switch(G.$$typeof){case t:case e:kt=!0;break;case u:return kt=G._init,V(kt(G._payload),et,st,lt,mt)}}if(kt)return mt=mt(G),kt=lt===""?"."+Y(G,0):lt,N(mt)?(st="",kt!=null&&(st=kt.replace($,"$&/")+"/"),V(mt,et,st,"",function(ae){return ae})):mt!=null&&(F(mt)&&(mt=B(mt,st+(mt.key==null||G&&G.key===mt.key?"":(""+mt.key).replace($,"$&/")+"/")+kt)),et.push(mt)),1;kt=0;var Vt=lt===""?".":lt+":";if(N(G))for(var Kt=0;Kt>>1,nt=V[q];if(0>>1;qs(st,W))lts(mt,st)?(V[q]=mt,V[lt]=W,q=lt):(V[q]=st,V[et]=W,q=et);else if(lts(mt,W))V[q]=mt,V[lt]=W,q=lt;else break t}}return Z}function s(V,Z){var W=V.sortIndex-Z.sortIndex;return W!==0?W:V.id-Z.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var o=Date,r=o.now();t.unstable_now=function(){return o.now()-r}}var l=[],c=[],u=1,d=null,g=3,f=!1,y=!1,x=!1,S=!1,D=typeof setTimeout=="function"?setTimeout:null,A=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;function w(V){for(var Z=i(c);Z!==null;){if(Z.callback===null)n(c);else if(Z.startTime<=V)n(c),Z.sortIndex=Z.expirationTime,e(l,Z);else break;Z=i(c)}}function N(V){if(x=!1,w(V),!y)if(i(l)!==null)y=!0,O||(O=!0,H());else{var Z=i(c);Z!==null&&U(N,Z.startTime-V)}}var O=!1,L=-1,R=5,P=-1;function B(){return S?!0:!(t.unstable_now()-PV&&B());){var q=d.callback;if(typeof q=="function"){d.callback=null,g=d.priorityLevel;var nt=q(d.expirationTime<=V);if(V=t.unstable_now(),typeof nt=="function"){d.callback=nt,w(V),Z=!0;break e}d===i(l)&&n(l),w(V)}else n(l);d=i(l)}if(d!==null)Z=!0;else{var G=i(c);G!==null&&U(N,G.startTime-V),Z=!1}}break t}finally{d=null,g=W,f=!1}Z=void 0}}finally{Z?H():O=!1}}}var H;if(typeof I=="function")H=function(){I(F)};else if(typeof MessageChannel<"u"){var $=new MessageChannel,Y=$.port2;$.port1.onmessage=F,H=function(){Y.postMessage(null)}}else H=function(){D(F,0)};function U(V,Z){L=D(function(){V(t.unstable_now())},Z)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125q?(V.sortIndex=W,e(c,V),i(l)===null&&V===i(c)&&(x?(A(L),L=-1):x=!0,U(N,W-q))):(V.sortIndex=nt,e(l,V),y||f||(y=!0,O||(O=!0,H()))),V},t.unstable_shouldYield=B,t.unstable_wrapCallback=function(V){var Z=g;return function(){var W=g;g=Z;try{return V.apply(this,arguments)}finally{g=W}}}})(lC)),lC}var uz;function X6(){return uz||(uz=1,rC.exports=$6()),rC.exports}var cC={exports:{}},Os={};var dz;function Z6(){if(dz)return Os;dz=1;var t=g1();function e(l){var c="https://react.dev/errors/"+l;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),cC.exports=Z6(),cC.exports}var gz;function Q6(){if(gz)return Ny;gz=1;var t=X6(),e=g1(),i=q6();function n(h){var p="https://react.dev/errors/"+h;if(1nt||(h.current=q[nt],q[nt]=null,nt--)}function st(h,p){nt++,q[nt]=h.current,h.current=p}var lt=G(null),mt=G(null),Dt=G(null),kt=G(null);function Vt(h,p){switch(st(Dt,p),st(mt,h),st(lt,null),p.nodeType){case 9:case 11:h=(h=p.documentElement)&&(h=h.namespaceURI)?N2(h):0;break;default:if(h=p.tagName,p=p.namespaceURI)p=N2(p),h=T2(p,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}et(lt),st(lt,h)}function Kt(){et(lt),et(mt),et(Dt)}function ae(h){h.memoizedState!==null&&st(kt,h);var p=lt.current,m=T2(p,h.type);p!==m&&(st(mt,h),st(lt,m))}function ne(h){mt.current===h&&(et(lt),et(mt)),kt.current===h&&(et(kt),Ay._currentValue=W)}var Qt,zt;function Pt(h){if(Qt===void 0)try{throw Error()}catch(m){var p=m.stack.trim().match(/\n( *(at )?)/);Qt=p&&p[1]||"",zt=-1)":-1k||Q[v]!==rt[k]){var yt=` +`+Q[v].replace(" at new "," at ");return h.displayName&&yt.includes("")&&(yt=yt.replace("",h.displayName)),yt}while(1<=v&&0<=k);break}}}finally{ue=!1,Error.prepareStackTrace=m}return(m=h?h.displayName||h.name:"")?Pt(m):""}function ke(h,p){switch(h.tag){case 26:case 27:case 5:return Pt(h.type);case 16:return Pt("Lazy");case 13:return h.child!==p&&p!==null?Pt("Suspense Fallback"):Pt("Suspense");case 19:return Pt("SuspenseList");case 0:case 15:return oe(h.type,!1);case 11:return oe(h.type.render,!1);case 1:return oe(h.type,!0);case 31:return Pt("Activity");default:return""}}function Ye(h){try{var p="",m=null;do p+=ke(h,m),m=h,h=h.return;while(h);return p}catch(v){return` +Error generating stack: `+v.message+` +`+v.stack}}var Ce=Object.prototype.hasOwnProperty,Di=t.unstable_scheduleCallback,zn=t.unstable_cancelCallback,Kn=t.unstable_shouldYield,ln=t.unstable_requestPaint,mi=t.unstable_now,Ya=t.unstable_getCurrentPriorityLevel,Lo=t.unstable_ImmediatePriority,mr=t.unstable_UserBlockingPriority,nh=t.unstable_NormalPriority,fv=t.unstable_LowPriority,cE=t.unstable_IdlePriority,CY=t.log,wY=t.unstable_setDisableYieldValue,zm=null,$a=null;function sh(h){if(typeof CY=="function"&&wY(h),$a&&typeof $a.setStrictMode=="function")try{$a.setStrictMode(zm,h)}catch{}}var Xa=Math.clz32?Math.clz32:LY,NY=Math.log,TY=Math.LN2;function LY(h){return h>>>=0,h===0?32:31-(NY(h)/TY|0)|0}var mv=256,yv=262144,bv=4194304;function Ju(h){var p=h&42;if(p!==0)return p;switch(h&-h){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function xv(h,p,m){var v=h.pendingLanes;if(v===0)return 0;var k=0,C=h.suspendedLanes,E=h.pingedLanes;h=h.warmLanes;var _=v&134217727;return _!==0?(v=_&~C,v!==0?k=Ju(v):(E&=_,E!==0?k=Ju(E):m||(m=_&~h,m!==0&&(k=Ju(m))))):(_=v&~C,_!==0?k=Ju(_):E!==0?k=Ju(E):m||(m=v&~h,m!==0&&(k=Ju(m)))),k===0?0:p!==0&&p!==k&&(p&C)===0&&(C=k&-k,m=p&-p,C>=m||C===32&&(m&4194048)!==0)?p:k}function Bm(h,p){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&p)===0}function OY(h,p){switch(h){case 1:case 2:case 4:case 8:case 64:return p+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return p+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function hE(){var h=bv;return bv<<=1,(bv&62914560)===0&&(bv=4194304),h}function KA(h){for(var p=[],m=0;31>m;m++)p.push(h);return p}function Vm(h,p){h.pendingLanes|=p,p!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function EY(h,p,m,v,k,C){var E=h.pendingLanes;h.pendingLanes=m,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=m,h.entangledLanes&=m,h.errorRecoveryDisabledLanes&=m,h.shellSuspendCounter=0;var _=h.entanglements,Q=h.expirationTimes,rt=h.hiddenUpdates;for(m=E&~m;0"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var _Y=/[\n"\\]/g;function Eo(h){return h.replace(_Y,function(p){return"\\"+p.charCodeAt(0).toString(16)+" "})}function QA(h,p,m,v,k,C,E,_){h.name="",E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"?h.type=E:h.removeAttribute("type"),p!=null?E==="number"?(p===0&&h.value===""||h.value!=p)&&(h.value=""+Oo(p)):h.value!==""+Oo(p)&&(h.value=""+Oo(p)):E!=="submit"&&E!=="reset"||h.removeAttribute("value"),p!=null?JA(h,E,Oo(p)):m!=null?JA(h,E,Oo(m)):v!=null&&h.removeAttribute("value"),k==null&&C!=null&&(h.defaultChecked=!!C),k!=null&&(h.checked=k&&typeof k!="function"&&typeof k!="symbol"),_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"?h.name=""+Oo(_):h.removeAttribute("name")}function DE(h,p,m,v,k,C,E,_){if(C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"&&(h.type=C),p!=null||m!=null){if(!(C!=="submit"&&C!=="reset"||p!=null)){qA(h);return}m=m!=null?""+Oo(m):"",p=p!=null?""+Oo(p):m,_||p===h.value||(h.value=p),h.defaultValue=p}v=v??k,v=typeof v!="function"&&typeof v!="symbol"&&!!v,h.checked=_?h.checked:!!v,h.defaultChecked=!!v,E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(h.name=E),qA(h)}function JA(h,p,m){p==="number"&&Mv(h.ownerDocument)===h||h.defaultValue===""+m||(h.defaultValue=""+m)}function qp(h,p,m,v){if(h=h.options,p){p={};for(var k=0;k"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),sI=!1;if($l)try{var jm={};Object.defineProperty(jm,"passive",{get:function(){sI=!0}}),window.addEventListener("test",jm,jm),window.removeEventListener("test",jm,jm)}catch{sI=!1}var oh=null,aI=null,Av=null;function TE(){if(Av)return Av;var h,p=aI,m=p.length,v,k="value"in oh?oh.value:oh.textContent,C=k.length;for(h=0;h=Wm),zE=" ",BE=!1;function VE(h,p){switch(h){case"keyup":return p$.indexOf(p.keyCode)!==-1;case"keydown":return p.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _E(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var eg=!1;function f$(h,p){switch(h){case"compositionend":return _E(p);case"keypress":return p.which!==32?null:(BE=!0,zE);case"textInput":return h=p.data,h===zE&&BE?null:h;default:return null}}function m$(h,p){if(eg)return h==="compositionend"||!hI&&VE(h,p)?(h=TE(),Av=aI=oh=null,eg=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(p.ctrlKey||p.altKey||p.metaKey)||p.ctrlKey&&p.altKey){if(p.char&&1=p)return{node:m,offset:p-h};h=v}t:{for(;m;){if(m.nextSibling){m=m.nextSibling;break t}m=m.parentNode}m=void 0}m=YE(m)}}function XE(h,p){return h&&p?h===p?!0:h&&h.nodeType===3?!1:p&&p.nodeType===3?XE(h,p.parentNode):"contains"in h?h.contains(p):h.compareDocumentPosition?!!(h.compareDocumentPosition(p)&16):!1:!1}function ZE(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var p=Mv(h.document);p instanceof h.HTMLIFrameElement;){try{var m=typeof p.contentWindow.location.href=="string"}catch{m=!1}if(m)h=p.contentWindow;else break;p=Mv(h.document)}return p}function pI(h){var p=h&&h.nodeName&&h.nodeName.toLowerCase();return p&&(p==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||p==="textarea"||h.contentEditable==="true")}var A$=$l&&"documentMode"in document&&11>=document.documentMode,ig=null,gI=null,Xm=null,fI=!1;function qE(h,p,m){var v=m.window===m?m.document:m.nodeType===9?m:m.ownerDocument;fI||ig==null||ig!==Mv(v)||(v=ig,"selectionStart"in v&&pI(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),Xm&&$m(Xm,v)||(Xm=v,v=y0(gI,"onSelect"),0>=E,k-=E,Yr=1<<32-Xa(p)+k|m<ge?(Ne=Ht,Ht=null):Ne=Ht.sibling;var Ue=ct(it,Ht,ot[ge],vt);if(Ue===null){Ht===null&&(Ht=Ne);break}h&&Ht&&Ue.alternate===null&&p(it,Ht),tt=C(Ue,tt,ge),Ge===null?Yt=Ue:Ge.sibling=Ue,Ge=Ue,Ht=Ne}if(ge===ot.length)return m(it,Ht),Te&&Zl(it,ge),Yt;if(Ht===null){for(;gege?(Ne=Ht,Ht=null):Ne=Ht.sibling;var wh=ct(it,Ht,Ue.value,vt);if(wh===null){Ht===null&&(Ht=Ne);break}h&&Ht&&wh.alternate===null&&p(it,Ht),tt=C(wh,tt,ge),Ge===null?Yt=wh:Ge.sibling=wh,Ge=wh,Ht=Ne}if(Ue.done)return m(it,Ht),Te&&Zl(it,ge),Yt;if(Ht===null){for(;!Ue.done;ge++,Ue=ot.next())Ue=St(it,Ue.value,vt),Ue!==null&&(tt=C(Ue,tt,ge),Ge===null?Yt=Ue:Ge.sibling=Ue,Ge=Ue);return Te&&Zl(it,ge),Yt}for(Ht=v(Ht);!Ue.done;ge++,Ue=ot.next())Ue=ft(Ht,it,ge,Ue.value,vt),Ue!==null&&(h&&Ue.alternate!==null&&Ht.delete(Ue.key===null?ge:Ue.key),tt=C(Ue,tt,ge),Ge===null?Yt=Ue:Ge.sibling=Ue,Ge=Ue);return h&&Ht.forEach(function(U6){return p(it,U6)}),Te&&Zl(it,ge),Yt}function ci(it,tt,ot,vt){if(typeof ot=="object"&&ot!==null&&ot.type===x&&ot.key===null&&(ot=ot.props.children),typeof ot=="object"&&ot!==null){switch(ot.$$typeof){case f:t:{for(var Yt=ot.key;tt!==null;){if(tt.key===Yt){if(Yt=ot.type,Yt===x){if(tt.tag===7){m(it,tt.sibling),vt=k(tt,ot.props.children),vt.return=it,it=vt;break t}}else if(tt.elementType===Yt||typeof Yt=="object"&&Yt!==null&&Yt.$$typeof===R&&hd(Yt)===tt.type){m(it,tt.sibling),vt=k(tt,ot.props),ey(vt,ot),vt.return=it,it=vt;break t}m(it,tt);break}else p(it,tt);tt=tt.sibling}ot.type===x?(vt=ad(ot.props.children,it.mode,vt,ot.key),vt.return=it,it=vt):(vt=Rv(ot.type,ot.key,ot.props,null,it.mode,vt),ey(vt,ot),vt.return=it,it=vt)}return E(it);case y:t:{for(Yt=ot.key;tt!==null;){if(tt.key===Yt)if(tt.tag===4&&tt.stateNode.containerInfo===ot.containerInfo&&tt.stateNode.implementation===ot.implementation){m(it,tt.sibling),vt=k(tt,ot.children||[]),vt.return=it,it=vt;break t}else{m(it,tt);break}else p(it,tt);tt=tt.sibling}vt=MI(ot,it.mode,vt),vt.return=it,it=vt}return E(it);case R:return ot=hd(ot),ci(it,tt,ot,vt)}if(U(ot))return _t(it,tt,ot,vt);if(H(ot)){if(Yt=H(ot),typeof Yt!="function")throw Error(n(150));return ot=Yt.call(ot),te(it,tt,ot,vt)}if(typeof ot.then=="function")return ci(it,tt,Hv(ot),vt);if(ot.$$typeof===I)return ci(it,tt,Bv(it,ot),vt);jv(it,ot)}return typeof ot=="string"&&ot!==""||typeof ot=="number"||typeof ot=="bigint"?(ot=""+ot,tt!==null&&tt.tag===6?(m(it,tt.sibling),vt=k(tt,ot),vt.return=it,it=vt):(m(it,tt),vt=SI(ot,it.mode,vt),vt.return=it,it=vt),E(it)):m(it,tt)}return function(it,tt,ot,vt){try{ty=0;var Yt=ci(it,tt,ot,vt);return pg=null,Yt}catch(Ht){if(Ht===dg||Ht===_v)throw Ht;var Ge=qa(29,Ht,null,it.mode);return Ge.lanes=vt,Ge.return=it,Ge}}}var dd=vR(!0),SR=vR(!1),uh=!1;function RI(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function PI(h,p){h=h.updateQueue,p.updateQueue===h&&(p.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function dh(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function ph(h,p,m){var v=h.updateQueue;if(v===null)return null;if(v=v.shared,($e&2)!==0){var k=v.pending;return k===null?p.next=p:(p.next=k.next,k.next=p),v.pending=p,p=Ev(h),sR(h,null,m),p}return Ov(h,v,p,m),Ev(h)}function iy(h,p,m){if(p=p.updateQueue,p!==null&&(p=p.shared,(m&4194048)!==0)){var v=p.lanes;v&=h.pendingLanes,m|=v,p.lanes=m,dE(h,m)}}function zI(h,p){var m=h.updateQueue,v=h.alternate;if(v!==null&&(v=v.updateQueue,m===v)){var k=null,C=null;if(m=m.firstBaseUpdate,m!==null){do{var E={lane:m.lane,tag:m.tag,payload:m.payload,callback:null,next:null};C===null?k=C=E:C=C.next=E,m=m.next}while(m!==null);C===null?k=C=p:C=C.next=p}else k=C=p;m={baseState:v.baseState,firstBaseUpdate:k,lastBaseUpdate:C,shared:v.shared,callbacks:v.callbacks},h.updateQueue=m;return}h=m.lastBaseUpdate,h===null?m.firstBaseUpdate=p:h.next=p,m.lastBaseUpdate=p}var BI=!1;function ny(){if(BI){var h=ug;if(h!==null)throw h}}function sy(h,p,m,v){BI=!1;var k=h.updateQueue;uh=!1;var C=k.firstBaseUpdate,E=k.lastBaseUpdate,_=k.shared.pending;if(_!==null){k.shared.pending=null;var Q=_,rt=Q.next;Q.next=null,E===null?C=rt:E.next=rt,E=Q;var yt=h.alternate;yt!==null&&(yt=yt.updateQueue,_=yt.lastBaseUpdate,_!==E&&(_===null?yt.firstBaseUpdate=rt:_.next=rt,yt.lastBaseUpdate=Q))}if(C!==null){var St=k.baseState;E=0,yt=rt=Q=null,_=C;do{var ct=_.lane&-536870913,ft=ct!==_.lane;if(ft?(we&ct)===ct:(v&ct)===ct){ct!==0&&ct===hg&&(BI=!0),yt!==null&&(yt=yt.next={lane:0,tag:_.tag,payload:_.payload,callback:null,next:null});t:{var _t=h,te=_;ct=p;var ci=m;switch(te.tag){case 1:if(_t=te.payload,typeof _t=="function"){St=_t.call(ci,St,ct);break t}St=_t;break t;case 3:_t.flags=_t.flags&-65537|128;case 0:if(_t=te.payload,ct=typeof _t=="function"?_t.call(ci,St,ct):_t,ct==null)break t;St=d({},St,ct);break t;case 2:uh=!0}}ct=_.callback,ct!==null&&(h.flags|=64,ft&&(h.flags|=8192),ft=k.callbacks,ft===null?k.callbacks=[ct]:ft.push(ct))}else ft={lane:ct,tag:_.tag,payload:_.payload,callback:_.callback,next:null},yt===null?(rt=yt=ft,Q=St):yt=yt.next=ft,E|=ct;if(_=_.next,_===null){if(_=k.shared.pending,_===null)break;ft=_,_=ft.next,ft.next=null,k.lastBaseUpdate=ft,k.shared.pending=null}}while(!0);yt===null&&(Q=St),k.baseState=Q,k.firstBaseUpdate=rt,k.lastBaseUpdate=yt,C===null&&(k.shared.lanes=0),bh|=E,h.lanes=E,h.memoizedState=St}}function MR(h,p){if(typeof h!="function")throw Error(n(191,h));h.call(p)}function DR(h,p){var m=h.callbacks;if(m!==null)for(h.callbacks=null,h=0;hC?C:8;var E=V.T,_={};V.T=_,ik(h,!1,p,m);try{var Q=k(),rt=V.S;if(rt!==null&&rt(_,Q),Q!==null&&typeof Q=="object"&&typeof Q.then=="function"){var yt=E$(Q,v);ry(h,p,yt,io(h))}else ry(h,p,v,io(h))}catch(St){ry(h,p,{then:function(){},status:"rejected",reason:St},io())}finally{Z.p=C,E!==null&&_.types!==null&&(E.types=_.types),V.T=E}}function _$(){}function tk(h,p,m,v){if(h.tag!==5)throw Error(n(476));var k=eP(h).queue;tP(h,k,p,W,m===null?_$:function(){return iP(h),m(v)})}function eP(h){var p=h.memoizedState;if(p!==null)return p;p={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:tc,lastRenderedState:W},next:null};var m={};return p.next={memoizedState:m,baseState:m,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:tc,lastRenderedState:m},next:null},h.memoizedState=p,h=h.alternate,h!==null&&(h.memoizedState=p),p}function iP(h){var p=eP(h);p.next===null&&(p=h.alternate.memoizedState),ry(h,p.next.queue,{},io())}function ek(){return ls(Ay)}function nP(){return hn().memoizedState}function sP(){return hn().memoizedState}function F$(h){for(var p=h.return;p!==null;){switch(p.tag){case 24:case 3:var m=io();h=dh(m);var v=ph(p,h,m);v!==null&&(xa(v,p,m),iy(v,p,m)),p={cache:TI()},h.payload=p;return}p=p.return}}function H$(h,p,m){var v=io();m={lane:v,revertLane:0,gesture:null,action:m,hasEagerState:!1,eagerState:null,next:null},Qv(h)?oP(p,m):(m=xI(h,p,m,v),m!==null&&(xa(m,h,v),rP(m,p,v)))}function aP(h,p,m){var v=io();ry(h,p,m,v)}function ry(h,p,m,v){var k={lane:v,revertLane:0,gesture:null,action:m,hasEagerState:!1,eagerState:null,next:null};if(Qv(h))oP(p,k);else{var C=h.alternate;if(h.lanes===0&&(C===null||C.lanes===0)&&(C=p.lastRenderedReducer,C!==null))try{var E=p.lastRenderedState,_=C(E,m);if(k.hasEagerState=!0,k.eagerState=_,Za(_,E))return Ov(h,p,k,0),ui===null&&Lv(),!1}catch{}if(m=xI(h,p,k,v),m!==null)return xa(m,h,v),rP(m,p,v),!0}return!1}function ik(h,p,m,v){if(v={lane:2,revertLane:Rk(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Qv(h)){if(p)throw Error(n(479))}else p=xI(h,m,v,2),p!==null&&xa(p,h,2)}function Qv(h){var p=h.alternate;return h===de||p!==null&&p===de}function oP(h,p){fg=Wv=!0;var m=h.pending;m===null?p.next=p:(p.next=m.next,m.next=p),h.pending=p}function rP(h,p,m){if((m&4194048)!==0){var v=p.lanes;v&=h.pendingLanes,m|=v,p.lanes=m,dE(h,m)}}var ly={readContext:ls,use:$v,useCallback:en,useContext:en,useEffect:en,useImperativeHandle:en,useLayoutEffect:en,useInsertionEffect:en,useMemo:en,useReducer:en,useRef:en,useState:en,useDebugValue:en,useDeferredValue:en,useTransition:en,useSyncExternalStore:en,useId:en,useHostTransitionStatus:en,useFormState:en,useActionState:en,useOptimistic:en,useMemoCache:en,useCacheRefresh:en};ly.useEffectEvent=en;var lP={readContext:ls,use:$v,useCallback:function(h,p){return ea().memoizedState=[h,p===void 0?null:p],h},useContext:ls,useEffect:WR,useImperativeHandle:function(h,p,m){m=m!=null?m.concat([h]):null,Zv(4194308,4,XR.bind(null,p,h),m)},useLayoutEffect:function(h,p){return Zv(4194308,4,h,p)},useInsertionEffect:function(h,p){Zv(4,2,h,p)},useMemo:function(h,p){var m=ea();p=p===void 0?null:p;var v=h();if(pd){sh(!0);try{h()}finally{sh(!1)}}return m.memoizedState=[v,p],v},useReducer:function(h,p,m){var v=ea();if(m!==void 0){var k=m(p);if(pd){sh(!0);try{m(p)}finally{sh(!1)}}}else k=p;return v.memoizedState=v.baseState=k,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:k},v.queue=h,h=h.dispatch=H$.bind(null,de,h),[v.memoizedState,h]},useRef:function(h){var p=ea();return h={current:h},p.memoizedState=h},useState:function(h){h=XI(h);var p=h.queue,m=aP.bind(null,de,p);return p.dispatch=m,[h.memoizedState,m]},useDebugValue:QI,useDeferredValue:function(h,p){var m=ea();return JI(m,h,p)},useTransition:function(){var h=XI(!1);return h=tP.bind(null,de,h.queue,!0,!1),ea().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,p,m){var v=de,k=ea();if(Te){if(m===void 0)throw Error(n(407));m=m()}else{if(m=p(),ui===null)throw Error(n(349));(we&127)!==0||NR(v,p,m)}k.memoizedState=m;var C={value:m,getSnapshot:p};return k.queue=C,WR(LR.bind(null,v,C,h),[h]),v.flags|=2048,yg(9,{destroy:void 0},TR.bind(null,v,C,m,p),null),m},useId:function(){var h=ea(),p=ui.identifierPrefix;if(Te){var m=$r,v=Yr;m=(v&~(1<<32-Xa(v)-1)).toString(32)+m,p="_"+p+"R_"+m,m=Kv++,0<\/script>",C=C.removeChild(C.firstChild);break;case"select":C=typeof v.is=="string"?E.createElement("select",{is:v.is}):E.createElement("select"),v.multiple?C.multiple=!0:v.size&&(C.size=v.size);break;default:C=typeof v.is=="string"?E.createElement(k,{is:v.is}):E.createElement(k)}}C[os]=p,C[pa]=v;t:for(E=p.child;E!==null;){if(E.tag===5||E.tag===6)C.appendChild(E.stateNode);else if(E.tag!==4&&E.tag!==27&&E.child!==null){E.child.return=E,E=E.child;continue}if(E===p)break t;for(;E.sibling===null;){if(E.return===null||E.return===p)break t;E=E.return}E.sibling.return=E.return,E=E.sibling}p.stateNode=C;t:switch(hs(C,k,v),k){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break t;case"img":v=!0;break t;default:v=!1}v&&ic(p)}}return Ii(p),mk(p,p.type,h===null?null:h.memoizedProps,p.pendingProps,m),null;case 6:if(h&&p.stateNode!=null)h.memoizedProps!==v&&ic(p);else{if(typeof v!="string"&&p.stateNode===null)throw Error(n(166));if(h=Dt.current,lg(p)){if(h=p.stateNode,m=p.memoizedProps,v=null,k=rs,k!==null)switch(k.tag){case 27:case 5:v=k.memoizedProps}h[os]=p,h=!!(h.nodeValue===m||v!==null&&v.suppressHydrationWarning===!0||C2(h.nodeValue,m)),h||ch(p,!0)}else h=b0(h).createTextNode(v),h[os]=p,p.stateNode=h}return Ii(p),null;case 31:if(m=p.memoizedState,h===null||h.memoizedState!==null){if(v=lg(p),m!==null){if(h===null){if(!v)throw Error(n(318));if(h=p.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(n(557));h[os]=p}else od(),(p.flags&128)===0&&(p.memoizedState=null),p.flags|=4;Ii(p),h=!1}else m=kI(),h!==null&&h.memoizedState!==null&&(h.memoizedState.hydrationErrors=m),h=!0;if(!h)return p.flags&256?(Ja(p),p):(Ja(p),null);if((p.flags&128)!==0)throw Error(n(558))}return Ii(p),null;case 13:if(v=p.memoizedState,h===null||h.memoizedState!==null&&h.memoizedState.dehydrated!==null){if(k=lg(p),v!==null&&v.dehydrated!==null){if(h===null){if(!k)throw Error(n(318));if(k=p.memoizedState,k=k!==null?k.dehydrated:null,!k)throw Error(n(317));k[os]=p}else od(),(p.flags&128)===0&&(p.memoizedState=null),p.flags|=4;Ii(p),k=!1}else k=kI(),h!==null&&h.memoizedState!==null&&(h.memoizedState.hydrationErrors=k),k=!0;if(!k)return p.flags&256?(Ja(p),p):(Ja(p),null)}return Ja(p),(p.flags&128)!==0?(p.lanes=m,p):(m=v!==null,h=h!==null&&h.memoizedState!==null,m&&(v=p.child,k=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(k=v.alternate.memoizedState.cachePool.pool),C=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(C=v.memoizedState.cachePool.pool),C!==k&&(v.flags|=2048)),m!==h&&m&&(p.child.flags|=8192),n0(p,p.updateQueue),Ii(p),null);case 4:return Kt(),h===null&&Vk(p.stateNode.containerInfo),Ii(p),null;case 10:return Ql(p.type),Ii(p),null;case 19:if(et(cn),v=p.memoizedState,v===null)return Ii(p),null;if(k=(p.flags&128)!==0,C=v.rendering,C===null)if(k)hy(v,!1);else{if(nn!==0||h!==null&&(h.flags&128)!==0)for(h=p.child;h!==null;){if(C=Uv(h),C!==null){for(p.flags|=128,hy(v,!1),h=C.updateQueue,p.updateQueue=h,n0(p,h),p.subtreeFlags=0,h=m,m=p.child;m!==null;)aR(m,h),m=m.sibling;return st(cn,cn.current&1|2),Te&&Zl(p,v.treeForkCount),p.child}h=h.sibling}v.tail!==null&&mi()>l0&&(p.flags|=128,k=!0,hy(v,!1),p.lanes=4194304)}else{if(!k)if(h=Uv(C),h!==null){if(p.flags|=128,k=!0,h=h.updateQueue,p.updateQueue=h,n0(p,h),hy(v,!0),v.tail===null&&v.tailMode==="hidden"&&!C.alternate&&!Te)return Ii(p),null}else 2*mi()-v.renderingStartTime>l0&&m!==536870912&&(p.flags|=128,k=!0,hy(v,!1),p.lanes=4194304);v.isBackwards?(C.sibling=p.child,p.child=C):(h=v.last,h!==null?h.sibling=C:p.child=C,v.last=C)}return v.tail!==null?(h=v.tail,v.rendering=h,v.tail=h.sibling,v.renderingStartTime=mi(),h.sibling=null,m=cn.current,st(cn,k?m&1|2:m&1),Te&&Zl(p,v.treeForkCount),h):(Ii(p),null);case 22:case 23:return Ja(p),_I(),v=p.memoizedState!==null,h!==null?h.memoizedState!==null!==v&&(p.flags|=8192):v&&(p.flags|=8192),v?(m&536870912)!==0&&(p.flags&128)===0&&(Ii(p),p.subtreeFlags&6&&(p.flags|=8192)):Ii(p),m=p.updateQueue,m!==null&&n0(p,m.retryQueue),m=null,h!==null&&h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(m=h.memoizedState.cachePool.pool),v=null,p.memoizedState!==null&&p.memoizedState.cachePool!==null&&(v=p.memoizedState.cachePool.pool),v!==m&&(p.flags|=2048),h!==null&&et(cd),null;case 24:return m=null,h!==null&&(m=h.memoizedState.cache),p.memoizedState.cache!==m&&(p.flags|=2048),Ql(Sn),Ii(p),null;case 25:return null;case 30:return null}throw Error(n(156,p.tag))}function K$(h,p){switch(AI(p),p.tag){case 1:return h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 3:return Ql(Sn),Kt(),h=p.flags,(h&65536)!==0&&(h&128)===0?(p.flags=h&-65537|128,p):null;case 26:case 27:case 5:return ne(p),null;case 31:if(p.memoizedState!==null){if(Ja(p),p.alternate===null)throw Error(n(340));od()}return h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 13:if(Ja(p),h=p.memoizedState,h!==null&&h.dehydrated!==null){if(p.alternate===null)throw Error(n(340));od()}return h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 19:return et(cn),null;case 4:return Kt(),null;case 10:return Ql(p.type),null;case 22:case 23:return Ja(p),_I(),h!==null&&et(cd),h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 24:return Ql(Sn),null;case 25:return null;default:return null}}function OP(h,p){switch(AI(p),p.tag){case 3:Ql(Sn),Kt();break;case 26:case 27:case 5:ne(p);break;case 4:Kt();break;case 31:p.memoizedState!==null&&Ja(p);break;case 13:Ja(p);break;case 19:et(cn);break;case 10:Ql(p.type);break;case 22:case 23:Ja(p),_I(),h!==null&&et(cd);break;case 24:Ql(Sn)}}function uy(h,p){try{var m=p.updateQueue,v=m!==null?m.lastEffect:null;if(v!==null){var k=v.next;m=k;do{if((m.tag&h)===h){v=void 0;var C=m.create,E=m.inst;v=C(),E.destroy=v}m=m.next}while(m!==k)}}catch(_){ni(p,p.return,_)}}function mh(h,p,m){try{var v=p.updateQueue,k=v!==null?v.lastEffect:null;if(k!==null){var C=k.next;v=C;do{if((v.tag&h)===h){var E=v.inst,_=E.destroy;if(_!==void 0){E.destroy=void 0,k=p;var Q=m,rt=_;try{rt()}catch(yt){ni(k,Q,yt)}}}v=v.next}while(v!==C)}}catch(yt){ni(p,p.return,yt)}}function EP(h){var p=h.updateQueue;if(p!==null){var m=h.stateNode;try{DR(p,m)}catch(v){ni(h,h.return,v)}}}function RP(h,p,m){m.props=gd(h.type,h.memoizedProps),m.state=h.memoizedState;try{m.componentWillUnmount()}catch(v){ni(h,p,v)}}function dy(h,p){try{var m=h.ref;if(m!==null){switch(h.tag){case 26:case 27:case 5:var v=h.stateNode;break;case 30:v=h.stateNode;break;default:v=h.stateNode}typeof m=="function"?h.refCleanup=m(v):m.current=v}}catch(k){ni(h,p,k)}}function Xr(h,p){var m=h.ref,v=h.refCleanup;if(m!==null)if(typeof v=="function")try{v()}catch(k){ni(h,p,k)}finally{h.refCleanup=null,h=h.alternate,h!=null&&(h.refCleanup=null)}else if(typeof m=="function")try{m(null)}catch(k){ni(h,p,k)}else m.current=null}function PP(h){var p=h.type,m=h.memoizedProps,v=h.stateNode;try{t:switch(p){case"button":case"input":case"select":case"textarea":m.autoFocus&&v.focus();break t;case"img":m.src?v.src=m.src:m.srcSet&&(v.srcset=m.srcSet)}}catch(k){ni(h,h.return,k)}}function yk(h,p,m){try{var v=h.stateNode;g6(v,h.type,m,p),v[pa]=p}catch(k){ni(h,h.return,k)}}function zP(h){return h.tag===5||h.tag===3||h.tag===26||h.tag===27&&Dh(h.type)||h.tag===4}function bk(h){t:for(;;){for(;h.sibling===null;){if(h.return===null||zP(h.return))return null;h=h.return}for(h.sibling.return=h.return,h=h.sibling;h.tag!==5&&h.tag!==6&&h.tag!==18;){if(h.tag===27&&Dh(h.type)||h.flags&2||h.child===null||h.tag===4)continue t;h.child.return=h,h=h.child}if(!(h.flags&2))return h.stateNode}}function xk(h,p,m){var v=h.tag;if(v===5||v===6)h=h.stateNode,p?(m.nodeType===9?m.body:m.nodeName==="HTML"?m.ownerDocument.body:m).insertBefore(h,p):(p=m.nodeType===9?m.body:m.nodeName==="HTML"?m.ownerDocument.body:m,p.appendChild(h),m=m._reactRootContainer,m!=null||p.onclick!==null||(p.onclick=Yl));else if(v!==4&&(v===27&&Dh(h.type)&&(m=h.stateNode,p=null),h=h.child,h!==null))for(xk(h,p,m),h=h.sibling;h!==null;)xk(h,p,m),h=h.sibling}function s0(h,p,m){var v=h.tag;if(v===5||v===6)h=h.stateNode,p?m.insertBefore(h,p):m.appendChild(h);else if(v!==4&&(v===27&&Dh(h.type)&&(m=h.stateNode),h=h.child,h!==null))for(s0(h,p,m),h=h.sibling;h!==null;)s0(h,p,m),h=h.sibling}function BP(h){var p=h.stateNode,m=h.memoizedProps;try{for(var v=h.type,k=p.attributes;k.length;)p.removeAttributeNode(k[0]);hs(p,v,m),p[os]=h,p[pa]=m}catch(C){ni(h,h.return,C)}}var nc=!1,An=!1,vk=!1,VP=typeof WeakSet=="function"?WeakSet:Set,$n=null;function Y$(h,p){if(h=h.containerInfo,Hk=I0,h=ZE(h),pI(h)){if("selectionStart"in h)var m={start:h.selectionStart,end:h.selectionEnd};else t:{m=(m=h.ownerDocument)&&m.defaultView||window;var v=m.getSelection&&m.getSelection();if(v&&v.rangeCount!==0){m=v.anchorNode;var k=v.anchorOffset,C=v.focusNode;v=v.focusOffset;try{m.nodeType,C.nodeType}catch{m=null;break t}var E=0,_=-1,Q=-1,rt=0,yt=0,St=h,ct=null;e:for(;;){for(var ft;St!==m||k!==0&&St.nodeType!==3||(_=E+k),St!==C||v!==0&&St.nodeType!==3||(Q=E+v),St.nodeType===3&&(E+=St.nodeValue.length),(ft=St.firstChild)!==null;)ct=St,St=ft;for(;;){if(St===h)break e;if(ct===m&&++rt===k&&(_=E),ct===C&&++yt===v&&(Q=E),(ft=St.nextSibling)!==null)break;St=ct,ct=St.parentNode}St=ft}m=_===-1||Q===-1?null:{start:_,end:Q}}else m=null}m=m||{start:0,end:0}}else m=null;for(jk={focusedElem:h,selectionRange:m},I0=!1,$n=p;$n!==null;)if(p=$n,h=p.child,(p.subtreeFlags&1028)!==0&&h!==null)h.return=p,$n=h;else for(;$n!==null;){switch(p=$n,C=p.alternate,h=p.flags,p.tag){case 0:if((h&4)!==0&&(h=p.updateQueue,h=h!==null?h.events:null,h!==null))for(m=0;m title"))),hs(C,v,m),C[os]=h,Yn(C),v=C;break t;case"link":var E=U2("link","href",k).get(v+(m.href||""));if(E){for(var _=0;_ci&&(E=ci,ci=te,te=E);var it=$E(_,te),tt=$E(_,ci);if(it&&tt&&(ft.rangeCount!==1||ft.anchorNode!==it.node||ft.anchorOffset!==it.offset||ft.focusNode!==tt.node||ft.focusOffset!==tt.offset)){var ot=St.createRange();ot.setStart(it.node,it.offset),ft.removeAllRanges(),te>ci?(ft.addRange(ot),ft.extend(tt.node,tt.offset)):(ot.setEnd(tt.node,tt.offset),ft.addRange(ot))}}}}for(St=[],ft=_;ft=ft.parentNode;)ft.nodeType===1&&St.push({element:ft,left:ft.scrollLeft,top:ft.scrollTop});for(typeof _.focus=="function"&&_.focus(),_=0;_m?32:m,V.T=null,m=Ck,Ck=null;var C=vh,E=lc;if(Bn=0,Mg=vh=null,lc=0,($e&6)!==0)throw Error(n(331));var _=$e;if($e|=4,XP(C.current),KP(C,C.current,E,m),$e=_,by(0,!1),$a&&typeof $a.onPostCommitFiberRoot=="function")try{$a.onPostCommitFiberRoot(zm,C)}catch{}return!0}finally{Z.p=k,V.T=v,p2(h,p)}}function f2(h,p,m){p=Po(m,p),p=ok(h.stateNode,p,2),h=ph(h,p,2),h!==null&&(Vm(h,2),Zr(h))}function ni(h,p,m){if(h.tag===3)f2(h,h,m);else for(;p!==null;){if(p.tag===3){f2(p,h,m);break}else if(p.tag===1){var v=p.stateNode;if(typeof p.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(xh===null||!xh.has(v))){h=Po(m,h),m=mP(2),v=ph(p,m,2),v!==null&&(yP(m,v,p,h),Vm(v,2),Zr(v));break}}p=p.return}}function Lk(h,p,m){var v=h.pingCache;if(v===null){v=h.pingCache=new Z$;var k=new Set;v.set(p,k)}else k=v.get(p),k===void 0&&(k=new Set,v.set(p,k));k.has(m)||(Dk=!0,k.add(m),h=e6.bind(null,h,p,m),p.then(h,h))}function e6(h,p,m){var v=h.pingCache;v!==null&&v.delete(p),h.pingedLanes|=h.suspendedLanes&m,h.warmLanes&=~m,ui===h&&(we&m)===m&&(nn===4||nn===3&&(we&62914560)===we&&300>mi()-r0?($e&2)===0&&Dg(h,0):Ak|=m,Sg===we&&(Sg=0)),Zr(h)}function m2(h,p){p===0&&(p=hE()),h=sd(h,p),h!==null&&(Vm(h,p),Zr(h))}function i6(h){var p=h.memoizedState,m=0;p!==null&&(m=p.retryLane),m2(h,m)}function n6(h,p){var m=0;switch(h.tag){case 31:case 13:var v=h.stateNode,k=h.memoizedState;k!==null&&(m=k.retryLane);break;case 19:v=h.stateNode;break;case 22:v=h.stateNode._retryCache;break;default:throw Error(n(314))}v!==null&&v.delete(p),m2(h,m)}function s6(h,p){return Di(h,p)}var g0=null,Ig=null,Ok=!1,f0=!1,Ek=!1,Mh=0;function Zr(h){h!==Ig&&h.next===null&&(Ig===null?g0=Ig=h:Ig=Ig.next=h),f0=!0,Ok||(Ok=!0,o6())}function by(h,p){if(!Ek&&f0){Ek=!0;do for(var m=!1,v=g0;v!==null;){if(h!==0){var k=v.pendingLanes;if(k===0)var C=0;else{var E=v.suspendedLanes,_=v.pingedLanes;C=(1<<31-Xa(42|h)+1)-1,C&=k&~(E&~_),C=C&201326741?C&201326741|1:C?C|2:0}C!==0&&(m=!0,v2(v,C))}else C=we,C=xv(v,v===ui?C:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(C&3)===0||Bm(v,C)||(m=!0,v2(v,C));v=v.next}while(m);Ek=!1}}function a6(){y2()}function y2(){f0=Ok=!1;var h=0;Mh!==0&&m6()&&(h=Mh);for(var p=mi(),m=null,v=g0;v!==null;){var k=v.next,C=b2(v,p);C===0?(v.next=null,m===null?g0=k:m.next=k,k===null&&(Ig=m)):(m=v,(h!==0||(C&3)!==0)&&(f0=!0)),v=k}Bn!==0&&Bn!==5||by(h),Mh!==0&&(Mh=0)}function b2(h,p){for(var m=h.suspendedLanes,v=h.pingedLanes,k=h.expirationTimes,C=h.pendingLanes&-62914561;0_)break;var yt=Q.transferSize,St=Q.initiatorType;yt&&w2(St)&&(Q=Q.responseEnd,E+=yt*(Q<_?1:(_-rt)/(Q-rt)))}if(--v,p+=8*(C+E)/(k.duration/1e3),h++,10"u"?null:document;function F2(h,p,m){var v=kg;if(v&&typeof p=="string"&&p){var k=Eo(p);k='link[rel="'+h+'"][href="'+k+'"]',typeof m=="string"&&(k+='[crossorigin="'+m+'"]'),_2.has(k)||(_2.add(k),h={rel:h,crossOrigin:m,href:p},v.querySelector(k)===null&&(p=v.createElement("link"),hs(p,"link",h),Yn(p),v.head.appendChild(p)))}}function I6(h){cc.D(h),F2("dns-prefetch",h,null)}function k6(h,p){cc.C(h,p),F2("preconnect",h,p)}function C6(h,p,m){cc.L(h,p,m);var v=kg;if(v&&h&&p){var k='link[rel="preload"][as="'+Eo(p)+'"]';p==="image"&&m&&m.imageSrcSet?(k+='[imagesrcset="'+Eo(m.imageSrcSet)+'"]',typeof m.imageSizes=="string"&&(k+='[imagesizes="'+Eo(m.imageSizes)+'"]')):k+='[href="'+Eo(h)+'"]';var C=k;switch(p){case"style":C=Cg(h);break;case"script":C=wg(h)}Ho.has(C)||(h=d({rel:"preload",href:p==="image"&&m&&m.imageSrcSet?void 0:h,as:p},m),Ho.set(C,h),v.querySelector(k)!==null||p==="style"&&v.querySelector(My(C))||p==="script"&&v.querySelector(Dy(C))||(p=v.createElement("link"),hs(p,"link",h),Yn(p),v.head.appendChild(p)))}}function w6(h,p){cc.m(h,p);var m=kg;if(m&&h){var v=p&&typeof p.as=="string"?p.as:"script",k='link[rel="modulepreload"][as="'+Eo(v)+'"][href="'+Eo(h)+'"]',C=k;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":C=wg(h)}if(!Ho.has(C)&&(h=d({rel:"modulepreload",href:h},p),Ho.set(C,h),m.querySelector(k)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(m.querySelector(Dy(C)))return}v=m.createElement("link"),hs(v,"link",h),Yn(v),m.head.appendChild(v)}}}function N6(h,p,m){cc.S(h,p,m);var v=kg;if(v&&h){var k=Xp(v).hoistableStyles,C=Cg(h);p=p||"default";var E=k.get(C);if(!E){var _={loading:0,preload:null};if(E=v.querySelector(My(C)))_.loading=5;else{h=d({rel:"stylesheet",href:h,"data-precedence":p},m),(m=Ho.get(C))&&Xk(h,m);var Q=E=v.createElement("link");Yn(Q),hs(Q,"link",h),Q._p=new Promise(function(rt,yt){Q.onload=rt,Q.onerror=yt}),Q.addEventListener("load",function(){_.loading|=1}),Q.addEventListener("error",function(){_.loading|=2}),_.loading|=4,v0(E,p,v)}E={type:"stylesheet",instance:E,count:1,state:_},k.set(C,E)}}}function T6(h,p){cc.X(h,p);var m=kg;if(m&&h){var v=Xp(m).hoistableScripts,k=wg(h),C=v.get(k);C||(C=m.querySelector(Dy(k)),C||(h=d({src:h,async:!0},p),(p=Ho.get(k))&&Zk(h,p),C=m.createElement("script"),Yn(C),hs(C,"link",h),m.head.appendChild(C)),C={type:"script",instance:C,count:1,state:null},v.set(k,C))}}function L6(h,p){cc.M(h,p);var m=kg;if(m&&h){var v=Xp(m).hoistableScripts,k=wg(h),C=v.get(k);C||(C=m.querySelector(Dy(k)),C||(h=d({src:h,async:!0,type:"module"},p),(p=Ho.get(k))&&Zk(h,p),C=m.createElement("script"),Yn(C),hs(C,"link",h),m.head.appendChild(C)),C={type:"script",instance:C,count:1,state:null},v.set(k,C))}}function H2(h,p,m,v){var k=(k=Dt.current)?x0(k):null;if(!k)throw Error(n(446));switch(h){case"meta":case"title":return null;case"style":return typeof m.precedence=="string"&&typeof m.href=="string"?(p=Cg(m.href),m=Xp(k).hoistableStyles,v=m.get(p),v||(v={type:"style",instance:null,count:0,state:null},m.set(p,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(m.rel==="stylesheet"&&typeof m.href=="string"&&typeof m.precedence=="string"){h=Cg(m.href);var C=Xp(k).hoistableStyles,E=C.get(h);if(E||(k=k.ownerDocument||k,E={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},C.set(h,E),(C=k.querySelector(My(h)))&&!C._p&&(E.instance=C,E.state.loading=5),Ho.has(h)||(m={rel:"preload",as:"style",href:m.href,crossOrigin:m.crossOrigin,integrity:m.integrity,media:m.media,hrefLang:m.hrefLang,referrerPolicy:m.referrerPolicy},Ho.set(h,m),C||O6(k,h,m,E.state))),p&&v===null)throw Error(n(528,""));return E}if(p&&v!==null)throw Error(n(529,""));return null;case"script":return p=m.async,m=m.src,typeof m=="string"&&p&&typeof p!="function"&&typeof p!="symbol"?(p=wg(m),m=Xp(k).hoistableScripts,v=m.get(p),v||(v={type:"script",instance:null,count:0,state:null},m.set(p,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(n(444,h))}}function Cg(h){return'href="'+Eo(h)+'"'}function My(h){return'link[rel="stylesheet"]['+h+"]"}function j2(h){return d({},h,{"data-precedence":h.precedence,precedence:null})}function O6(h,p,m,v){h.querySelector('link[rel="preload"][as="style"]['+p+"]")?v.loading=1:(p=h.createElement("link"),v.preload=p,p.addEventListener("load",function(){return v.loading|=1}),p.addEventListener("error",function(){return v.loading|=2}),hs(p,"link",m),Yn(p),h.head.appendChild(p))}function wg(h){return'[src="'+Eo(h)+'"]'}function Dy(h){return"script[async]"+h}function G2(h,p,m){if(p.count++,p.instance===null)switch(p.type){case"style":var v=h.querySelector('style[data-href~="'+Eo(m.href)+'"]');if(v)return p.instance=v,Yn(v),v;var k=d({},m,{"data-href":m.href,"data-precedence":m.precedence,href:null,precedence:null});return v=(h.ownerDocument||h).createElement("style"),Yn(v),hs(v,"style",k),v0(v,m.precedence,h),p.instance=v;case"stylesheet":k=Cg(m.href);var C=h.querySelector(My(k));if(C)return p.state.loading|=4,p.instance=C,Yn(C),C;v=j2(m),(k=Ho.get(k))&&Xk(v,k),C=(h.ownerDocument||h).createElement("link"),Yn(C);var E=C;return E._p=new Promise(function(_,Q){E.onload=_,E.onerror=Q}),hs(C,"link",v),p.state.loading|=4,v0(C,m.precedence,h),p.instance=C;case"script":return C=wg(m.src),(k=h.querySelector(Dy(C)))?(p.instance=k,Yn(k),k):(v=m,(k=Ho.get(C))&&(v=d({},m),Zk(v,k)),h=h.ownerDocument||h,k=h.createElement("script"),Yn(k),hs(k,"link",v),h.head.appendChild(k),p.instance=k);case"void":return null;default:throw Error(n(443,p.type))}else p.type==="stylesheet"&&(p.state.loading&4)===0&&(v=p.instance,p.state.loading|=4,v0(v,m.precedence,h));return p.instance}function v0(h,p,m){for(var v=m.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),k=v.length?v[v.length-1]:null,C=k,E=0;E title"):null)}function E6(h,p,m){if(m===1||p.itemProp!=null)return!1;switch(h){case"meta":case"title":return!0;case"style":if(typeof p.precedence!="string"||typeof p.href!="string"||p.href==="")break;return!0;case"link":if(typeof p.rel!="string"||typeof p.href!="string"||p.href===""||p.onLoad||p.onError)break;return p.rel==="stylesheet"?(h=p.disabled,typeof p.precedence=="string"&&h==null):!0;case"script":if(p.async&&typeof p.async!="function"&&typeof p.async!="symbol"&&!p.onLoad&&!p.onError&&p.src&&typeof p.src=="string")return!0}return!1}function K2(h){return!(h.type==="stylesheet"&&(h.state.loading&3)===0)}function R6(h,p,m,v){if(m.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(m.state.loading&4)===0){if(m.instance===null){var k=Cg(v.href),C=p.querySelector(My(k));if(C){p=C._p,p!==null&&typeof p=="object"&&typeof p.then=="function"&&(h.count++,h=M0.bind(h),p.then(h,h)),m.state.loading|=4,m.instance=C,Yn(C);return}C=p.ownerDocument||p,v=j2(v),(k=Ho.get(k))&&Xk(v,k),C=C.createElement("link"),Yn(C);var E=C;E._p=new Promise(function(_,Q){E.onload=_,E.onerror=Q}),hs(C,"link",v),m.instance=C}h.stylesheets===null&&(h.stylesheets=new Map),h.stylesheets.set(m,p),(p=m.state.preload)&&(m.state.loading&3)===0&&(h.count++,m=M0.bind(h),p.addEventListener("load",m),p.addEventListener("error",m))}}var qk=0;function P6(h,p){return h.stylesheets&&h.count===0&&A0(h,h.stylesheets),0qk?50:800)+p);return h.unsuspend=m,function(){h.unsuspend=null,clearTimeout(v),clearTimeout(k)}}:null}function M0(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)A0(this,this.stylesheets);else if(this.unsuspend){var h=this.unsuspend;this.unsuspend=null,h()}}}var D0=null;function A0(h,p){h.stylesheets=null,h.unsuspend!==null&&(h.count++,D0=new Map,p.forEach(z6,h),D0=null,M0.call(h))}function z6(h,p){if(!(p.state.loading&4)){var m=D0.get(h);if(m)var v=m.get(null);else{m=new Map,D0.set(h,m);for(var k=h.querySelectorAll("link[data-precedence],style[data-precedence]"),C=0;C"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),oC.exports=Q6(),oC.exports}var tX=J6(),BH=Object.defineProperty,Vf=(t,e)=>{for(var i in e)BH(t,i,{get:e[i],enumerable:!0})},Br=(t,e,i,n)=>{for(var s=void 0,a=t.length-1,o;a>=0;a--)(o=t[a])&&(s=o(e,i,s)||s);return s&&BH(e,i,s),s},Le=(t=>(t.Chart="chart",t.Axis="axis",t.Series="series",t.Plugin="plugin",t.AxisPlugin="axis:plugin",t.SeriesPlugin="series:plugin",t.Preset="preset",t))(Le||{});function Lb(t){return t.domain}var wi=(t=>(t[t.Leading=0]="Leading",t[t.Trailing=1]="Trailing",t[t.Interpolate=2]="Interpolate",t))(wi||{}),cr=class{constructor(){this.events=new Map}on(t,e){return this.events.has(t)||this.events.set(t,new Set),this.events.get(t)?.add(e),()=>this.off(t,e)}off(t,e){const i=this.events.get(t);i&&(i.delete(e),i.size===0&&this.events.delete(t))}emit(t,e){const i=this.events.get(t);if(i)for(const n of i)n(e)}clear(t){t?this.events.delete(t):this.events.clear()}},XM=class{constructor(t){if(this.maxCacheSize=t,this.store=new Map,t<=0)throw new Error("LRUCache size must be greater than 0")}get(t){if(!this.store.has(t))return;const e=this.store.get(t);return this.store.delete(t),this.store.set(t,e),e}has(t){return this.store.has(t)}set(t,e){return this.store.set(t,e),this.store.size>this.maxCacheSize&&this.store.delete(this.store.keys().next().value),e}clear(){this.store.clear()}},Gt={};Vf(Gt,{Time:()=>lX,check:()=>nf,create:()=>qH,inDevelopmentMode:()=>QH});function dx(t){return t===void 0?[]:Array.isArray(t)?t:[t]}function ZM(t){return Array.from(new Set(t))}function px(t,e){return t.reduce((i,n)=>{const s=e(n);return i[s]??(i[s]=[]),i[s].push(n),i},{})}function tr(t,e){if(t==null||e==null||t.length!==e.length)return!1;for(let i=0;i{const a=i.get(n)??1/0,o=i.get(s)??1/0;return a-o})}function _H(t,e){let i=0;for(;i=0&&e(t[i]);)i-=1;const n=t.length-1-i;n!==0&&t.splice(t.length-n,n)}function HH(t,e,i){const n=[t],s=Math.round((e-t)/(i-1));if(s>0)for(let a=t+s;a=i-1);a+=s);return n.push(e),n}var ja={};typeof globalThis.window<"u"&&(ja.window=globalThis.window);typeof document<"u"?ja.document=document:typeof globalThis.global<"u"&&(ja.document=globalThis.document);function bp(t){return t?ja.document?.[t]:ja.document}function Ml(t){return t?ja.window?.[t]:ja.window}function jH(t){ja.document=t}function GH(t){ja.window=t}function qM(){return ja.window?.OffscreenCanvas??globalThis.OffscreenCanvas}function Ob(){return ja.window?.Path2D??globalThis.Path2D}function f1(){return ja.window?.DOMMatrix??globalThis.DOMMatrix}function UH(){return ja.window?.Image??globalThis.Image}function WH(){return ja.window?.ResizeObserver??globalThis.ResizeObserver}var KH=1,eX=11;function JS(t){return t!=null&&typeof t.nodeType=="number"}function m1(t){return t!=null&&t.nodeType===KH}function YH(t){return t!=null&&t.nodeType===eX}function Eb(t){return t!=null&&t.nodeType===KH&&"style"in t}var pt={};Vf(pt,{error:()=>$H,errorOnce:()=>nX,log:()=>QM,logGroup:()=>ZH,reset:()=>sX,table:()=>iX,warn:()=>cl,warnOnce:()=>uo});var Xw=new Set;function QM(...t){console.log(...t)}function cl(t,...e){console.warn(`AG Charts - ${t}`,...e)}function $H(t,...e){typeof t=="object"?console.error("AG Charts error",t,...e):console.error(`AG Charts - ${t}`,...e)}function iX(...t){console.table(...t)}function XH(t,e,i){let n;t instanceof Error?n=t.message:typeof t=="string"?n=t:typeof t=="object"?n=JSON.stringify(t):n=String(t);const s=`${e}: ${n}`;Xw.has(s)||(i(t),Xw.add(s))}function uo(t,...e){XH(t,"Logger.warn",i=>cl(i,...e))}function nX(t,...e){XH(t,"Logger.error",i=>$H(i,...e))}function sX(){Xw.clear()}function aX(t){return typeof t=="object"&&t!==null&&"then"in t}function ZH(t,e){console.groupCollapsed(t);let i=!0;try{const n=e();return aX(n)?(i=!1,n.finally(()=>{console.groupEnd()})):n}finally{i&&console.groupEnd()}}var oX=2e3,mz=Date.now();function rX(){const t=Date.now()-mz;if(t>oX){const e=(Math.floor(t/100)/10).toFixed(1);QM(`**** ${e}s since last log message ****`)}mz=Date.now()}function qH(...t){return Object.assign((...i)=>{nf(...t)&&(typeof i[0]=="function"&&(i=dx(i[0]())),rX(),QM(...i))},{check:()=>nf(...t),group:(i,n)=>nf(...t)?ZH(i,n):n()})}function nf(...t){return t.length===0&&t.push(!0),dx(Ml("agChartsDebug")).some(i=>t.includes(i))}function QH(t){if(nf("dev"))return t()}function lX(t,e={}){const{logResult:i=!0,logStack:n=!1,logArgs:s=!1,logData:a}=e;return function(o,r,l){const c=l.value;l.value=function(...u){const d=performance.now(),g=c.apply(this,u),y={duration:performance.now()-d};return i&&(y.result=g),s&&(y.args=u),n&&(y.stack=new Error("Stack trace for timing debug").stack),a&&(y.logData=a(this)),QM(t,y),g}}}var Vr={};Vf(Vr,{flush:()=>t4,record:()=>JH});var Zw=new Map;function JH(t,e){nf("scene:stats:verbose")&&Zw.set(t,e)}function t4(){const t=Object.fromEntries(Zw);return Zw.clear(),t}var po={},Ut={};Vf(Ut,{RegistryMode:()=>e4,getAxisModule:()=>gX,getChartModule:()=>fX,getPresetModule:()=>mX,getSeriesModule:()=>yX,hasModule:()=>uX,isEnterprise:()=>xX,isIntegrated:()=>vX,isModuleType:()=>_f,isUmd:()=>SX,listModules:()=>dX,listModulesByType:()=>pX,register:()=>y1,registerModules:()=>cX,reset:()=>hX,setRegistryMode:()=>bX});var e4=(t=>(t.Enterprise="enterprise",t.Integrated="integrated",t.UMD="umd",t))(e4||{}),gx=new Set,kl=new Map;function yz(t){if(kl.set(t.name,t),t.dependencies)for(const e of t.dependencies)y1(e)}function y1(t){const e=kl.get(t.name);if(!e){yz(t);return}if(e.version===t.version){!e.enterprise&&t.enterprise&&yz(t);return}throw new Error([`AG Charts - Module '${t.name}' already registered with different version:`,`${e.version} vs ${t.version}`,"","Check your package.json for conflicting dependencies - depending on your package manager","one of these commands may help:","- npm ls ag-charts-community","- yarn why ag-charts-community"].join(` +`))}function cX(t){for(const e of t.flat())y1(e)}function hX(){gx.clear(),kl.clear()}function uX(t){return kl.has(t)}function*dX(){for(const t of kl.values())yield t}function*pX(t){for(const e of kl.values())_f(t,e)&&(yield e)}function gX(t){const e=kl.get(t);if(_f("axis",e))return e}function fX(t){const e=kl.get(t);if(_f("chart",e))return e;throw new Error("AG Charts - Unknown chart type; Check options are correctly structured and series types are specified")}function mX(t){const e=kl.get(t);if(_f("preset",e))return e}function yX(t){const e=kl.get(t);if(_f("series",e))return e}function bX(t){gx.add(t)}function xX(){return gx.has("enterprise")}function vX(){return gx.has("integrated")}function SX(){return gx.has("umd")}function _f(t,e){return e?.type===t}var qe=class{constructor(){this.callbacks=new Set}flush(){for(const t of this.callbacks)t();this.callbacks.clear()}merge(t){for(const e of t.callbacks)this.callbacks.add(e)}register(...t){for(const e of t)e&&this.callbacks.add(e)}},Ln=class{constructor(){this.cleanup=new qe}destroy(){this.cleanup.flush()}},Ff="…",au=/\r?\n/g,Rb="​",i4=/[\s.,;:-]{1,5}$/,Ty;function n4(t){if(Ty==null){const i=Ml("Option");Ty=new i().style}Ty.color=t;const e=Ty.color||null;return Ty.color="",e}function ff(t){return t?.ownerDocument.defaultView?.getComputedStyle(t).direction==="rtl"}function tM(t,e){if(!t)return;const{x:i,y:n,width:s,height:a}=MX(e);O0(t.style,"width",s),O0(t.style,"height",a),O0(t.style,"left",i),O0(t.style,"top",n)}function s4(t){const e=Number.parseFloat(t.style.width),i=Number.parseFloat(t.style.height),n=Number.parseFloat(t.style.left),s=Number.parseFloat(t.style.top),a=Number.isFinite(e)?e:t.offsetWidth,o=Number.isFinite(i)?i:t.offsetHeight,r=Number.isFinite(n)?n:t.offsetLeft,l=Number.isFinite(s)?s:t.offsetTop;return{x:r,y:l,width:a,height:o}}function b1(t){if(t.focus({preventScroll:!0}),t.lastChild?.textContent==null)return;const{ownerDocument:e}=t,i=e.createRange();i.setStart(t.lastChild,t.lastChild.textContent.length),i.setEnd(t.lastChild,t.lastChild.textContent.length);const n=e.defaultView?.getSelection();n?.removeAllRanges(),n?.addRange(i)}function a4(){const t=Ml("navigator");if("scheduling"in t){const e=t.scheduling;if("isInputPending"in e)return e.isInputPending({includeContinuous:!0})}return!1}function mu(t){return`ag-charts-icon ag-charts-icon-${t}`}function MX(t){let{x:e,y:i,width:n,height:s}=t;return(n==null||n>0)&&(s==null||s>0)?t:(e!=null&&n!=null&&n<0&&(n=-n,e=e-n),i!=null&&s!=null&&s<0&&(s=-s,i=i-s),{x:e,y:i,width:n,height:s})}function O0(t,e,i){i==null?t.removeProperty(e):t.setProperty(e,`${i}px`)}function go(t){return t!=null}function qt(t){return Array.isArray(t)}function o4(t){return typeof t=="boolean"}function aa(t){return t instanceof Date}function Ac(t){return aa(t)&&!Number.isNaN(Number(t))}function r4(t){return t instanceof RegExp}function Cl(t){return typeof t=="function"}function Bt(t){return typeof t=="object"&&t!==null&&!qt(t)}function Pb(t){return qt(t)||Ie(t)}function Ie(t){return typeof t=="object"&&t!==null&&t.constructor?.name==="Object"}function cb(t){if(typeof t!="object"||t===null)return!1;for(const e in t)return!1;return!0}function zi(t){return typeof t=="string"}function Je(t){return typeof t=="number"}function Ae(t){return Number.isFinite(t)}function x1(t){return t!=null&&t.nodeType===1&&"style"in t}function DX(t,e){return zi(e)&&Object.keys(t).includes(e)}function AX(t,e){return Object.values(t).includes(e)}function hb(t){return typeof t=="symbol"}function l4(t){return zi(t)&&(t==="none"||n4(t)!=null)}function jd(t,e){return t in e}function v1({fontSize:t,fontStyle:e,fontWeight:i,fontFamily:n}){let s="";return e&&e!=="normal"&&(s+=`${e} `),i&&i!=="normal"&&i!==400&&(s+=`${i===700?"bold":i} `),s+=`${t}px`,s+=` ${n}`,s}function nr(t,e=1.15){return Math.round(t*e)}function bi(t){return String(t??"")}function qw(t){return S1(t.replace(i4,""))+Ff}var IX=new Set([1575,1577,1583,1584,1585,1586,1608]);function kX(t){return t>=1568&&t<=1610&&!IX.has(t)}function S1(t){if(!t)return t;const e=t.codePointAt(t.length-1);return kX(e)?t+"‍":t}function c4(t){return Rb+t+Rb}function h4(t){return t.replaceAll(Rb,"")}function u4(t){return qt(t)?JM(t.at(-1)):wu(bi(t))}function wu(t){return t.endsWith(Ff)}function JM(t){return bi(t?.text).endsWith(Ff)}var bz=typeof Intl<"u"&&typeof Intl.Segmenter=="function"?new Intl.Segmenter(void 0,{granularity:"grapheme"}):void 0;function Sc(t){return bz?Array.from(bz.segment(t),e=>e.segment):Array.from(t)}function yu(t,e="and",i=String,n=1/0){if(t.length===0)return"";if(t.length===1)return i(t[0]);t=t.map(i);const s=t.pop();if(t.length>=n){const a=t.length-(n-1);return`${t.slice(0,n-1).join(", ")}, and ${a} more ${e} ${s}`}return`${t.join(", ")} ${e} ${s}`}function zb(t,e=1/0){if(typeof t=="number"){if(Number.isNaN(t))return"NaN";if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity"}const i=JSON.stringify(t)??typeof t;return i.length>e?`${i.slice(0,e)}... (+${i.length-e} characters)`:i}function d4(t){let e=1;for(let i=0;ic),r=new Array(s+1);for(let l=1;l<=a;l++){r[0]=l;for(let c=1;c<=s;c++){const u=n[l-1]===i[c-1]?0:1;r[c]=Math.min(o[c]+1,r[c-1]+1,o[c-1]+u)}[o,r]=[r,o]}return o[s]}function g4(t){return t.replaceAll(CX,(e,i)=>(i>0?"-":"")+e.toLowerCase())}var CX=/[A-Z]+(?![a-z])|[A-Z]/g;function ce(t,e=""){return t==null?e:qt(t)?t.map(i=>bi(i.text)).join(""):zi(t)?t:String(t)}function M1(t,e=0,i){const{leading:n=!1,trailing:s=!0,maxWait:a=1/0}=i??{};let o,r;if(ar=null,e),t(...c);return}let u=e;if(a!==1/0&&r){const d=Date.now()-r;e>a-d&&(u=a-d)}clearTimeout(o),r??(r=Date.now()),o=setTimeout(()=>{r=null,s&&t(...c)},u)}return Object.assign(l,{cancel(){clearTimeout(o),r=null}})}function Qw(t,e,i){const{leading:n=!0,trailing:s=!0}=i??{};let a,o,r=!1;function l(){s&&o?(a=setTimeout(l,e),t(...o)):r=!1,o=null}function c(...u){r?o=u:(r=!0,a=setTimeout(l,e),n?t(...u):o=u)}return Object.assign(c,{cancel(){clearTimeout(a),r=!1,o=null}})}function D1(t,e,i=""){try{return t(...e)}catch(n){const s=i?` \`${i}\``:"";uo(`Uncaught exception in user callback${s}`,n)}}var sr=Symbol("description"),f4=Symbol("required"),eM=Symbol("marked"),tD=Symbol("undocumented"),Bb=Symbol("union"),wX=[["placement","position"],["padding","spacing","gap"],["color","fill","stroke"],["whisker","wick"],["src","url"],["width","thickness"],["show","visible","enabled"]].reduce((t,e)=>{for(const i of e)t.set(i.toLowerCase(),new Set(e.filter(n=>n!==i)));return t},new Map),m4=(t=>(t.Invalid="invalid",t.Required="required",t.Unknown="unknown",t))(m4||{});function Vb(t,e){return Ae(e)?`${t}[${e}]`:t?`${t}.${e}`:e}var ou=class{constructor(t,e,i,n,s){this.type=t,this.description=e,this.value=i,this.path=n,this.key=s}setUnionType(t,e){if(this.path.startsWith(e)){const i=this.path.slice(e.length);this.altPath=`${e}[type=${t}]${i}`}}getPrefix(){const{altPath:t=this.path,key:e}=this;return!t&&!e?"Value":`Option \`${e?Vb(t,e):t}\``}toString(){const{description:t="unknown",type:e,value:i}=this;return e==="required"&&i==null?`${this.getPrefix()} is required and has not been provided; expecting ${t}, ignoring.`:`${this.getPrefix()} cannot be set to \`${zb(i,50)}\`; expecting ${t}, ignoring.`}},eD=class extends ou{constructor(t,e,i,n){super("unknown",void 0,e,i,n),this.suggestions=t,this.key=n}getPrefix(){return`Unknown option \`${Vb(this.altPath??this.path,this.key)}\``}getPostfix(){const t=yu(NX(this.key,this.suggestions),"or",e=>`\`${e}\``);return t?`; Did you mean ${t}? Ignoring.`:", ignoring."}toString(){return`${this.getPrefix()}${this.getPostfix()}`}};function ts(t,e,i=""){if(!Bt(t))return{cleared:null,invalid:[new ou("required","an object",t,i)]};const n={},s=[],a=new Set(Object.keys(t)),o=[];if(Bb in e){const r=Object.keys(e),l=e[Bb];if(t.type!=null&&r.includes(t.type)||t.type==null&&l!=null){const{type:c=l,...u}=t,d=ts(u,e[c],i);Object.assign(n,{type:c},d.cleared);for(const g of d.invalid)g.setUnionType(c,i);s.push(...d.invalid)}else{const c=yu(r,"or",u=>`'${u}'`);s.push(new ou("required",`a keyword such as ${c}`,t.type,i,"type"))}return{cleared:n,invalid:s}}for(const r of Object.keys(e)){const l=e[r],c=l[f4],u=t[r];if(a.delete(r),u===void 0&&(l[tD]||o.push(r),!c))continue;const d=Vb(i,r);if(Cl(l)){const f=l(u,{options:t,path:d});if(typeof f=="object"){if(s.push(...f.invalid),f.valid){n[r]=f.cleared;continue}else if(Xd(f.invalid,d))continue}else if(f){n[r]=u;continue}s.push(new ou(c?"required":"invalid",l[sr],u,i,r))}else{const g=ts(u,l,d);g.cleared!=null&&(n[r]=g.cleared),s.push(...g.invalid)}}for(const r of a){const l=t[r];l!==void 0&&s.push(new eD(o,l,i,r))}return{cleared:n,invalid:s}}function NX(t,e,i=2){const n=t.toLowerCase(),s=wX.get(n);return e.filter(a=>{const o=a.toLowerCase();return s?.has(a)===!0||o.includes(n)||p4(n,o)<=i})}function xe(t,e){if(Cl(t)){let i=function(n,s){return t(n,s)};return i[sr]=e,i}else return{...t,[sr]:e}}function ht(t){return Object.assign(Cl(t)?(e,i)=>t(e,i):Pi(t),{[f4]:!0,[sr]:t[sr]})}function Mt(t){return Object.assign(Cl(t)?(e,i)=>t(e,i):Pi(t),{[tD]:!0,[sr]:t[sr]})}var Pi=(t,e="an object",i=!1)=>xe((n,s)=>{const a=ts(n,t,s.path),o=!Xd(a.invalid,s.path);return{valid:o,cleared:o||!i?a.cleared:null,invalid:a.invalid}},e),xp=(t,e,i)=>({...t,[sr]:e,[Bb]:i}),Me=(...t)=>xe((e,i)=>{const n=[];for(const s of t){const a=s(e,i);if(typeof a=="object"){if(n.push(...a.invalid),!a.valid)return{valid:!1,cleared:e,invalid:n};e=a.cleared}else if(!a)return!1}return{valid:!0,cleared:e,invalid:n}},yu(t.filter(e=>!e[tD]).map(e=>e[sr]).filter(go),"and")),Xt=(...t)=>xe((e,i)=>{for(const n of t){const s=n(e,i);if(typeof s=="object"?s.valid:s)return s}return!1},yu(t.filter(e=>!e[tD]).map(e=>e[sr]).filter(go),"or")),mf=t=>Ae(t)||Ac(t),TX=t=>aa(t)||(Ae(t)||zi(t))&&Ac(new Date(t)),wl=xe(qt,"an array"),J=xe(o4,"a boolean"),ai=xe(Cl,"a function"),It=xe(l4,"a color string"),_s=xe(TX,"a date"),jt=xe(go,"a defined value"),gt=xe(Ae,"a number"),Nu=xe(Bt,"an object"),K=xe(zi,"a string"),A1=xe(x1,"an html element"),Tu=(t,e=1/0)=>{let i;return e===1/0?i=`an array of at least ${t} items`:t===e?i=`an array of exactly ${t} items`:t===0?i=`an array of no more than ${e} items`:i=`an array of at least ${t} and no more than ${e} items`,xe(n=>qt(n)&&n.length>=t&&n.length<=e,i)},I1=(t,e=1/0)=>{let i;return e===1/0?i=`a string of at least ${t} characters`:t===e?i=`an string of exactly ${t} characters`:t===0?i=`an string of no more than ${e} characters`:i=`an string of at least ${t} and no more than ${e} characters`,xe(n=>zi(n)&&n.length>=t&&n.length<=e,i)},k1=(t,e=!0)=>xe(i=>Ae(i)&&(i>t||e&&i===t),`a number greater than ${e?"or equal to ":""}${t}`),y4=(t,e)=>xe(i=>Ae(i)&&i>=t&&i<=e,`a number between ${t} and ${e} inclusive`),X=k1(0),bo=k1(0,!1),Ot=y4(0,1),Fs=t=>xe((e,{options:i})=>!mf(e)||!mf(i[t])||exe((e,{options:i})=>!mf(e)||!mf(i[t])||e<=i[t],`the value to be less than or equal to \`${t}\``),Hs=t=>xe((e,{options:i})=>!mf(e)||!mf(i[t])||e>i[t],`the value to be greater than \`${t}\``);function dt(...t){Bt(t[0])&&(t=Object.values(t[0]));const e=yu(t,"or",i=>`'${i}'`);return xe(i=>t.includes(i),`a keyword such as ${e}`)}function fx(){return dt}var Jt=t=>xe(e=>t===e,`the value ${JSON.stringify(t)}`),LX=(t,e)=>xe(i=>i instanceof t,e??`an instance of ${t.name}`),Ft=(t,e,i=!0)=>xe((n,s)=>{if(!qt(n))return!1;let a=i;const o=[],r=[],l=c=>{a=i?a&&c:a||c};if(n.length===0)return{valid:!0,cleared:o,invalid:r};for(let c=0;cxe((i,n)=>{if(!qt(i))return!1;const s=[],a=[];for(let o=0;oxe((i,n)=>{if(!Cl(i))return!1;if(eM in i)return!0;const s=e??t[sr];return{valid:!0,cleared:Object.assign((...o)=>{const r=D1(i,o);if(r==null)return;const l=t(r,{options:r,path:""});if(typeof l=="object"){if(x4(l,n,s,r),l.valid)return l.cleared}else{if(l)return r;uo(`Callback \`${n.path}\` returned an invalid value \`${zb(r,50)}\`; expecting ${s}, ignoring.`)}},{[eM]:!0}),invalid:[]}},"a function"),Be=(t,e="an object")=>xe((i,n)=>{if(!Cl(i))return!1;if(eM in i)return!0;const s=e;return{valid:!0,cleared:Object.assign((...o)=>{const r=D1(i,o,n.path);if(r==null)return;const l=ts(r,t);return x4(l,n,s,r),l.cleared},{[eM]:!0}),invalid:[]}},"a function");function Xd(t,e){return t.some(i=>i.type==="required"&&i.path===e)}function x4(t,e,i,n){if(t.invalid.length!==0){if(qt(n)){const s=i??t.invalid[0]?.description??"a valid value";return uo(`Callback \`${e.path}\` returned an invalid value \`${zb(n,50)}\`; expecting ${s}, ignoring.`)}for(const s of t.invalid){if(s instanceof eD)return uo(`Callback \`${e.path}\` returned an unknown property \`${Vb(s.path,s.key)}\`${s.getPostfix()}`);const a=zb(s.value,50);uo(s.key?`Callback \`${e.path}\` returned an invalid property \`${Vb(s.path,s.key)}\`: \`${a}\`; expecting ${s.description}, ignoring.`:`Callback \`${e.path}\` returned an invalid value \`${a}\`; expecting ${i??s.description}, ignoring.`)}}}function Nt(t,e,i){return Math.min(i,Math.max(t,e))}function v4(t,e,i=1e-10){return t>=e[0]-i&&t<=e[1]+i}function be(t,e,i=1e-10){return t===e||Math.abs(t-e)=1e21){let s;[e,s]=e.split("e"),s!=null&&(i=Number(s))}const n=e.split(".")[1]?.length??0;return Math.max(n-i,0)}var A4=/^(?:(.)?([<>=^]))?([+\-( ])?([$€£¥₣₹#])?(0)?(\d+)?(,)?(?:\.(\d+))?(~)?([%a-z])?$/i,I4=/^((?:[^#]|#[^{])*)#{([^}]+)}(.*)$/;function k4(t){if(!zi(t))return!1;const e=I4.exec(t);return A4.test(e?e[2]:t)}function iD(t){let e,i;const n=I4.exec(t);n&&([,e,t,i]=n);const s=A4.exec(t);if(!s){uo(`The number formatter is invalid: ${t}`);return}const[,a,o,r,l,c,u,d,g,f,y]=s;return{fill:a,align:o,sign:r,symbol:l,zero:c,width:Number.parseInt(u),comma:d,precision:Number.parseInt(g),trim:!!f,type:y,prefix:e,suffix:i}}function C1(t){const e=typeof t=="string"?iD(t):t;if(e==null)return;const{fill:i,align:n,sign:s="-",symbol:a,zero:o,width:r,comma:l,type:c,prefix:u="",suffix:d="",precision:g}=e;let{trim:f}=e;const y=g==null||Number.isNaN(g);let x;if(!c)x=Ko.g,f=!0;else if(c in Ko&&c in qg)x=y?qg[c]:Ko[c];else if(c in Ko)x=Ko[c];else if(c in qg)x=qg[c];else throw new Error(`The number formatter type is invalid: ${c}`);const S=c?6:12;let D;y||(D=g);let A=n,I=i;return o&&(I??(I="0"),A??(A="=")),(w,N)=>{let O;D!=null?O=D:c==="f"||c==="%"?O=N??S:c?O=S:O=N??S;let L=x(w,O);f&&(L=RX(L)),l&&(L=PX(L,l));const R=_X(a,c),P=R?.length??0;R&&(L=`${R}${L}`),c==="s"&&(L=`${L}${zX(w)}`),(c==="%"||c==="p")&&(L=`${L}%`);const{value:B,prefixLength:F}=BX(w,L,s),H=F+P;let $=B;return r!=null&&!Number.isNaN(r)&&($=VX($,r,I??" ",A,H)),$=`${u}${$}${d}`,$}}var qg={b:t=>E0(t).toString(2),c:t=>String.fromCodePoint(t),d:t=>Math.round(Math.abs(t)).toFixed(0),o:t=>E0(t).toString(8),x:t=>E0(t).toString(16),X:t=>qg.x(t).toUpperCase(),n:t=>qg.d(t),"%":t=>`${E0(t*100).toFixed(0)}`},Ko={e:(t,e)=>Math.abs(t).toExponential(e),E:(t,e)=>Ko.e(t,e).toUpperCase(),f:(t,e)=>Math.abs(t).toFixed(e),F:(t,e)=>Ko.f(t,e).toUpperCase(),g:(t,e)=>{if(t===0)return"0";const i=Math.abs(t),n=Math.floor(Math.log10(i));return n>=-4&&nKo.g(t,e).toUpperCase(),n:(t,e)=>Ko.g(t,e),p:(t,e)=>Ko.r(t*100,e),r:(t,e)=>{if(t===0)return"0";const i=Math.abs(t),s=Math.floor(Math.log10(i))-(e-1);if(s<=0)return i.toFixed(-s);const a=10**s;return(Math.round(i/a)*a).toFixed()},s:(t,e)=>{const i=N4(t);return Ko.r(t/10**i,e)},"%":(t,e)=>Ko.f(t*100,e)},C4=-24,w4=24,OX={[C4]:"y",[-21]:"z",[-18]:"a",[-15]:"f",[-12]:"p",[-9]:"n",[-6]:"µ",[-3]:"m",0:"",3:"k",6:"M",9:"G",12:"T",15:"P",18:"E",21:"Z",[w4]:"Y"},EX="−";function E0(t){return Math.floor(Math.abs(t))}function RX(t){if(!t.endsWith("0")||!t.includes("."))return t;let e=t.length-1;for(;e>0;)if(t[e]=="0")e-=1;else if(t[e]=="."){e-=1;break}else break;return t.substring(0,e+1)}function PX(t,e){let i=t.indexOf(".");i<0&&(i=t.length);const n=t.substring(0,i).split(""),s=t.substring(i);for(let a=n.length-3;a>0;a-=3)n.splice(a,0,e);return`${n.join("")}${s}`}function zX(t){return OX[N4(t)]}function N4(t){return Nt(C4,t?Math.floor(Math.log10(Math.abs(t))/3)*3:0,w4)}function BX(t,e,i=""){if(i==="(")return t>=0?{value:e,prefixLength:0}:{value:`(${e})`,prefixLength:1};let n="";return t<0?n=EX:i==="+"?n="+":i===" "&&(n=" "),{value:`${n}${e}`,prefixLength:n.length}}function VX(t,e,i=" ",n=">",s=0){const a=e-t.length;if(a<=0)return t;const o=i.repeat(a);if(n==="="){const r=Math.min(Math.max(s,0),t.length),l=t.slice(0,r),c=t.slice(r);return`${l}${o}${c}`}if(n===">"||!n)return o+t;if(n==="<")return`${t}${o}`;if(n==="^"){const r=Math.ceil(a/2),l=Math.floor(a/2);return`${i.repeat(r)}${t}${i.repeat(l)}`}return o+t}function _X(t,e){if(t==="#")switch(e){case"b":return"0b";case"o":return"0o";case"x":return"0x";case"X":return"0X";default:return""}return t??""}var Fb=t=>{if(!Bt(t))return!1;const e=Object.keys(t);return e.length===1&&e[0].startsWith("$")},FX=Pi({color:It,stop:Ot},""),w1=xe(t=>{let e=-1/0;for(const i of t)if(i?.stop!=null){if(i.stop{let i;if(typeof t=="string")tN.includes(t)?i=!0:(i={valid:!1,invalid:[],cleared:null},i.invalid.push(new ou("invalid",`a legend placement string: ["${tN.join('", "')}"]`,t,e.path)));else{const{cleared:n,invalid:s}=ts(t,UX);i={valid:s.length===0,cleared:n,invalid:s}}return i},"a legend position object or placement string"),xu=Xt(dt("circle","cross","diamond","heart","plus","pin","square","star","triangle"),ai),R4=dt("never","always","hyphenate","on-space"),sM=dt("top","right","bottom","left","top-right","bottom-right","bottom-left","top-left","center"),rD=Xt(X,dt("exact","nearest","area")),P4=Xt(X,dt("exact","nearest")),xo=Xt(K,gt,_s,Xi({text:ht(K),...De},"text segments array")),db={enabled:J,text:xo,textAlign:dt("left","center","right"),wrapping:dt("never","always","hyphenate","on-space"),spacing:X,maxWidth:X,maxHeight:X,...De};db.padding=Mt(X);db.truncate=Mt(J);var R0={enabled:J,text:xo,renderer:Is(Xt(K,A1))},hC=["defaults","download","zoom-to-cursor","pan-to-cursor","reset-zoom","toggle-series-visibility","toggle-other-series","separator"],z4={type:dt("action","separator"),showOn:dt("always","series-area","series-node","legend-item"),label:ht(K),enabled:J,action:ai,items:(t,e)=>aM(t,e)};z4.iconUrl=Mt(K);var WX=Pi(z4),KX=xe((t,e)=>{let i;return typeof t=="string"?hC.includes(t)?i=!0:(i={valid:!1,invalid:[],cleared:null},i.invalid.push(new ou("invalid",`a context menu item string alias: ["${hC.join('", "')}"]`,t,e.path))):i=WX(t,e),i},`a context menu item object or string alias: [${hC.join(", ")}]`),aM=Ft(KX,"a menu items array",!1),Zh={label:K,ariaLabel:K,tooltip:K,iconPosition:dt("before","after"),icon:dt("align-center","align-left","align-right","arrow-drawing","arrow-down-drawing","arrow-up-drawing","callout-annotation","candlestick-series","chevron-filled-down","chevron-right","close","comment-annotation","date-range-drawing","date-price-range-drawing","delete","disjoint-channel-drawing","drag-handle","fill-color","line-style-solid","line-style-dashed","line-style-dotted","high-low-series","hlc-series","hollow-candlestick-series","horizontal-line-drawing","line-color","line-series","line-with-markers-series","locked","measurer-drawing","note-annotation","ohlc-series","pan-end","pan-left","pan-right","pan-start","parallel-channel-drawing","position-bottom","position-center","position-top","price-label-annotation","price-range-drawing","reset","settings","step-line-series","text-annotation","trend-line-drawing","fibonacci-retracement-drawing","fibonacci-retracement-trend-based-drawing","unlocked","vertical-line-drawing","zoom-in","zoom-out")},vr=Xt(K,Is(xo)),B4=Pi({x:vr,y:vr,angle:vr,radius:vr,size:vr,color:vr,label:vr,secondaryLabel:vr,sectorLabel:vr,calloutLabel:vr,legendItem:vr}),_r=xe(k4,"a valid number format string"),vp=dt("millisecond","second","minute","hour","day","month","year"),V4={unit:ht(vp),step:bo,epoch:_s,utc:J};V4.every=ai;var jf=Pi(V4,"a time interval object"),Zt={width:X,height:X,minWidth:X,minHeight:X,suppressFieldDotNotation:J,title:db,subtitle:db,footnote:db,padding:{top:X,right:X,bottom:X,left:X},seriesArea:{border:Zd,clip:J,cornerRadius:gt,padding:Ar},legend:{enabled:J,position:nM,orientation:dt("horizontal","vertical"),maxWidth:X,maxHeight:X,spacing:X,border:Zd,cornerRadius:gt,padding:Ar,fill:Ga,fillOpacity:Ot,preventHidingAll:J,reverseOrder:J,toggleSeries:J,item:{marker:{size:X,shape:xu,padding:X,strokeWidth:X},line:{length:X,strokeWidth:X},label:{maxLength:X,formatter:ai,...De},maxWidth:X,paddingX:X,paddingY:X,showSeriesStroke:J},pagination:{marker:{size:X,shape:xu,padding:X},activeStyle:{...wt,...bt},inactiveStyle:{...wt,...bt},highlightStyle:{...wt,...bt},label:De},listeners:{legendItemClick:ai,legendItemDoubleClick:ai}},gradientLegend:{enabled:J,position:nM,spacing:X,reverseOrder:J,border:Zd,cornerRadius:gt,padding:Ar,fill:Ga,fillOpacity:Ot,gradient:{preferredLength:X,thickness:X},scale:{label:{...De,minSpacing:X,format:_r,formatter:ai},padding:X,interval:{step:gt,values:wl,minSpacing:Me(X,Fs("maxSpacing")),maxSpacing:Me(X,Hs("minSpacing"))}}},listeners:{seriesNodeClick:ai,seriesNodeDoubleClick:ai,seriesVisibilityChange:ai,activeChange:ai,click:ai,doubleClick:ai,annotations:ai,zoom:ai},loadGoogleFonts:J,highlight:{drawingMode:dt("overlay","cutout"),range:dt("tooltip","node")},overlays:{loading:R0,noData:R0,noVisibleSeries:R0,unsupportedBrowser:R0},tooltip:{enabled:J,showArrow:J,pagination:J,delay:X,range:rD,wrapping:R4,mode:dt("single","shared","compact"),position:{anchorTo:dt("pointer","node","chart"),placement:Xt(sM,Ft(sM)),xOffset:gt,yOffset:gt}},animation:jt,flashOnUpdate:jt,contextMenu:jt,context:()=>!0,dataSource:{getData:ai},keyboard:{enabled:J,tabIndex:gt,initialFocus:fx()("data-start","data-end","viewport-start","viewport-end")},touch:{dragAction:dt("none","drag","hover")},ranges:{enabled:J,enableOutOfRange:J,position:dt("top-left","top","top-right","bottom-left","bottom","bottom-right"),spacing:X,button:{...ia,...bt,textColor:It,...De,cornerRadius:X,padding:Ar,active:{...ia,stroke:bt.stroke,textColor:It},disabled:{...ia,stroke:bt.stroke,textColor:It},hover:{...ia,stroke:bt.stroke,textColor:It}},dropdown:{visible:dt("auto","always","never"),...ia,...bt,textColor:It,...De,cornerRadius:X,padding:Ar,active:{...ia,stroke:bt.stroke,textColor:It},disabled:{...ia,stroke:bt.stroke,textColor:It},hover:{...ia,stroke:bt.stroke,textColor:It}},gap:X,...ia,...bt,textColor:It,...De,cornerRadius:X,padding:Ar,active:{...ia,stroke:bt.stroke,textColor:It},disabled:{...ia,stroke:bt.stroke,textColor:It},hover:{...ia,stroke:bt.stroke,textColor:It},buttons:Xi({...Zh,enabled:J,value:Xt(gt,Me(Ft(Xt(gt,_s)),Tu(2,2)),jf,vp,ai)},"range button options array")},locale:{localeText:Nu,getLocaleText:Is(K)},background:{visible:J,fill:It,image:{url:ht(K),top:gt,right:gt,bottom:gt,left:gt,width:X,height:X,opacity:Ot}},styleNonce:K,sync:jt,zoom:jt,scrollbar:jt,formatter:Xt(Is(xo),B4),enableRtl:J};Zt.highlight.enabled=Mt(J);Zt.dataSource.requestThrottle=Mt(X);Zt.dataSource.updateThrottle=Mt(X);Zt.dataSource.updateDuringInteraction=Mt(J);Zt.statusBar=Mt(jt);Zt.ranges.minSize=Mt(X);Zt.foreground=Mt({visible:J,text:K,image:{url:K,top:gt,right:gt,bottom:gt,left:gt,width:X,height:X,opacity:Ot},...wt});Zt.overrideDevicePixelRatio=Mt(gt);Zt.sync.domainMode=Mt(dt("direction","position","key"));Zt.displayNullData=Mt(J);var Ee={cursor:K,context:()=>!0,showInLegend:J,nodeClickRange:rD,listeners:{seriesNodeClick:ai,seriesNodeDoubleClick:ai},highlight:T1(Si)};Ee.allowNullKeys=Mt(J);var _e={...Ee,id:K,visible:J,context:()=>!0,data:wl};_e.seriesGrouping=Mt(jt);var Lu={shape:xu,size:X,...wt,...bt,...Lt},Lr={enabled:J,itemStyler:Be({...wt,...bt,...Lt,shape:xu,size:X}),...Lu},ei={enabled:J,formatter:Is(xo),format:_r,itemStyler:Be({enabled:J,...qo,...De}),...qo,...De},vu={...ei,lineHeight:X,minimumFontSize:X,wrapping:R4,overflowStrategy:dt("ellipsis","hide")},mx={visible:J,cap:{visible:J,length:X,lengthRatio:Ot,...bt,...Lt},...bt,...Lt},lD={...mx,xLowerKey:K,xUpperKey:K,yLowerKey:K,yUpperKey:K,xLowerName:K,xUpperName:K,yLowerName:K,yUpperName:K,itemStyler:Be({visible:J,...bt,...Lt,cap:{visible:J,length:X,lengthRatio:Ot,...bt,...Lt}})},Re={enabled:J,showArrow:J,range:P4,renderer:Is(Xt(K,gt,_s,Pi({heading:K,title:K,symbol:{marker:{enabled:J,shape:xu,...wt,stroke:It,strokeOpacity:Ot,strokeWidth:X,...Lt},line:{enabled:J,stroke:It,strokeWidth:X,strokeOpacity:Ot,...Lt}},data:Xi({label:ht(K),value:ht(Xt(K,gt,_s))})},"tooltip renderer result object"))),position:{anchorTo:dt("node","pointer","chart"),placement:Xt(sM,Ft(sM)),xOffset:gt,yOffset:gt},interaction:{enabled:J}},_4={...Re,range:rD},Nl={enabled:J,xOffset:gt,yOffset:gt,blur:X,color:It},cD=xp({linear:{},smooth:{tension:Ot},step:{position:dt("start","middle","end")}},"interpolation line options"),oM=Symbol("BREAK"),pb="__decorator_config",P0="__decorator_accessors";function b(t,e){L1(t,e).optional=!0}function L1(t,e){if(Object.getOwnPropertyDescriptor(t,pb)==null&&Object.defineProperty(t,pb,{value:{}}),Object.getOwnPropertyDescriptor(t,P0)==null){const u=Object.getPrototypeOf(t)?.[P0]?.slice()??[];Object.defineProperty(t,P0,{value:u})}const i=t[pb],n=e.toString();if(i[n]!=null)return i[n];i[n]={setters:[],getters:[],observers:[]};const s=Object.getOwnPropertyDescriptor(t,e);let a=s?.get,o=s?.set;if(a==null||o==null){const c=t[P0];let u=c.indexOf(e);u===-1&&(u=c.push(e)-1),a??(a=function(){let d=this.__accessors;return d==null&&(d=c.slice().fill(void 0),Object.defineProperty(this,"__accessors",{value:d})),d[u]}),o??(o=function(d){let g=this.__accessors;g==null&&(g=c.slice().fill(void 0),Object.defineProperty(this,"__accessors",{value:g})),g[u]=d})}return Object.defineProperty(t,e,{set:function(c){const{setters:u,observers:d}=i[n];let g;u.some(f=>f.length>2)&&(g=a.call(this));for(const f of u)if(c=f(this,e,c,g),c===oM)return;o.call(this,c);for(const f of d)f(this,c,g)},get:function(){let c=a.call(this);for(const u of i[n].getters)if(c=u(this,e,c),c===oM)return;return c},enumerable:!0,configurable:!1}),i[n]}function Su(t,e,i){return(n,s)=>{const a=L1(n,s);a.setters.push(t),e&&a.getters.unshift(e),i&&Object.assign(a,i)}}function O1(t){return(e,i)=>{L1(e,i).observers.push(t)}}function hD(t){return t!==void 0&&pb in t}function ru(t){const e=new Set;for(;hD(t);)e.add(t?.[pb]),t=Object.getPrototypeOf(t);return Array.from(e).flatMap(i=>Object.keys(i))}function F4(t){return ru(t).reduce((e,i)=>(e[String(i)]=t[i]??null,e),{})}function*Mu(...t){for(const e of t)e!=null&&(e[Symbol.iterator]?yield*e:yield e)}function H4(t){return t!=null&&typeof t=="object"&&Symbol.iterator in t?t:[t]}function Ra(t){for(const e of t)return e;throw new Error("AG Charts - no first() value found")}function*Xe(t){const e=[void 0,void 0];for(const i of Object.keys(t))e[0]=i,e[1]=t[i],yield e}function hl(t){return Object.keys(t)}function ks(t,e){return Array.isArray(t)?!Array.isArray(e)||t.length!==e.length?!1:t.every((i,n)=>ks(i,e[n])):Ie(t)?Ie(e)?E1(t,e,ks):!1:t===e}function E1(t,e,i){if(Object.is(t,e))return!0;for(const n of Object.keys(e))if(!(n in t))return!1;for(const n of Object.keys(t))if(!(n in e)||!i(t[n],e[n]))return!1;return!0}function Et(...t){const e={};for(const i of t){if(!Bt(i))continue;const n=hD(i)?ru(i):Object.keys(i);for(const s of n)Ie(e[s])&&Ie(i[s])?e[s]=Et(e[s],i[s]):e[s]??(e[s]=i[s])}return e}function Hb(...t){const e={};for(const i of t){if(!Bt(i))continue;const n=hD(i)?ru(i):Object.keys(i);for(const s of n)Ie(e[s])&&Ie(i[s])?e[s]=Hb(e[s],i[s]):s in e||(e[s]??(e[s]=i[s]))}return e}function YX(t,...e){return e&&qt(t)?t.map(i=>Et(i,...e)):t}function af(t,e){const i={};for(const[n,s]of Xe(t))i[n]=e(s,n,t);return i}function At(t,e){const i={...t};for(const n of e)delete i[n];return i}function PS(t,e){if(t==null)return;const i={};for(const n of e)Object.hasOwn(t,n)&&(i[n]=t[n]);return i}function j4(t,e){if(t==null)return!0;for(const[i,n]of Xe(t))if(!e(i,n))return!1;return!0}function G4(t){const e={};if(t==null)return e;for(const[i,n]of t)e[i]=n;return e}function R1(t,e){return(qt(e)?e:e.split(".")).reduce((n,s)=>n[s],t)}var P1=new Set(["__proto__","constructor","prototype"]);function z1(t,e,i){const n=qt(e)?e.slice():e.split("."),s=n.pop();if(n.some(o=>P1.has(o)))return;const a=n.reduce((o,r)=>o[r],t);return a[s]=i,a[s]}function rM(t,e,i){if(i===void 0)return e;for(const n of t){const s=i[n];s!==void 0&&(e[n]=s)}return e}function eN(t,e,i){const n=i??Object.keys(e);for(let s=0,a=n.length;s(t[t.SMALLEST=8]="SMALLEST",t[t.SMALLER=10]="SMALLER",t[t.SMALL=12]="SMALL",t[t.MEDIUM=13]="MEDIUM",t[t.LARGE=14]="LARGE",t[t.LARGEST=17]="LARGEST",t))(zc||{}),Wh=12,Cn={SMALLEST:8/Wh,SMALLER:10/Wh,SMALL:12/Wh,MEDIUM:13/Wh,LARGE:14/Wh,LARGEST:17/Wh},he=(t=>(t.TOP="top",t.TOP_RIGHT="top-right",t.TOP_LEFT="top-left",t.RIGHT="right",t.RIGHT_TOP="right-top",t.RIGHT_BOTTOM="right-bottom",t.BOTTOM="bottom",t.BOTTOM_RIGHT="bottom-right",t.BOTTOM_LEFT="bottom-left",t.LEFT="left",t.LEFT_TOP="left-top",t.LEFT_BOTTOM="left-bottom",t))(he||{}),ie=(t=>(t.CATEGORY="category",t.GROUPED_CATEGORY="grouped-category",t.ORDINAL_TIME="ordinal-time",t.UNIT_TIME="unit-time",t.TIME="time",t.NUMBER="number",t.LOG="log",t))(ie||{}),sn=(t=>(t.ANGLE_CATEGORY="angle-category",t.ANGLE_NUMBER="angle-number",t.RADIUS_CATEGORY="radius-category",t.RADIUS_NUMBER="radius-number",t))(sn||{}),yf=(t=>(t.CIRCLE="circle",t.POLYGON="polygon",t))(yf||{}),yd=(t,e,i)=>t*(1-i)+e*i,uC=t=>{const e=t<0?-1:1,i=Math.abs(t);return i<=.04045?t/12.92:e*((i+.055)/1.055)**2.4},dC=t=>{const e=t<0?-1:1,i=Math.abs(t);return i>.0031308?e*(1.055*i**(1/2.4)-.055):12.92*t},K4=class je{constructor(e,i,n,s=1){this.r=Nt(0,e||0,1),this.g=Nt(0,i||0,1),this.b=Nt(0,n||0,1),this.a=Nt(0,s||0,1)}static validColorString(e){return e.includes("#")?!!je.parseHex(e):e.includes("rgb")?!!je.stringToRgba(e):je.nameToHex.has(e.toLowerCase())}static fromString(e){if(e.includes("#"))return je.fromHexString(e);const i=je.nameToHex.get(e.toLowerCase());if(i)return je.fromHexString(i);if(e.includes("rgb"))return je.fromRgbaString(e);throw new Error(`Invalid color string: '${e}'`)}static parseHex(e){e=e.replaceAll(" ","").slice(1);let i;switch(e.length){case 6:case 8:i=[];for(let n=0;nNumber.parseInt(n,16)).map(n=>n+n*16);break}if(i?.length>=3&&i.every(n=>n>=0))return i.length===3&&i.push(255),i}static fromHexString(e){const i=je.parseHex(e);if(i){const[n,s,a,o]=i;return new je(n/255,s/255,a/255,o/255)}throw new Error(`Malformed hexadecimal color string: '${e}'`)}static stringToRgba(e){let i=-1,n=-1;for(let r=0;r=0?f:f+360;return[y,x,S]}static OKLCHtoRGB(e,i,n){const s=e,a=i*Math.cos(n*Math.PI/180),o=i*Math.sin(n*Math.PI/180),r=(s+.3963377774*a+.2158037573*o)**3,l=(s-.1055613458*a-.0638541728*o)**3,c=(s-.0894841775*a-1.291485548*o)**3,u=4.0767416621*r-3.3077115913*l+.2309699292*c,d=-1.2684380046*r+2.6097574011*l-.3413193965*c,g=-.0041960863*r-.7034186147*l+1.707614701*c,f=dC(u),y=dC(d),x=dC(g);return[f,y,x]}static RGBtoHSL(e,i,n){const s=Math.min(e,i,n),a=Math.max(e,i,n),o=(a+s)/2;let r,l;if(a===s)r=0,l=0;else{const c=a-s;l=o>.5?c/(2-a-s):c/(a+s),a===e?r=(i-n)/c+(i1&&(u-=1),u<1/6?a+(s-a)*6*u:u<1/2?s:u<2/3?a+(s-a)*(2/3-u)*6:a}const r=o(e/360+1/3),l=o(e/360),c=o(e/360-1/3);return[r,l,c]}static RGBtoHSB(e,i,n){const s=Math.min(e,i,n),a=Math.max(e,i,n),o=a===0?0:(a-s)/a;let r=0;if(s!==a){const l=a-s,c=(a-e)/l,u=(a-i)/l,d=(a-n)/l;e===a?r=d-u:i===a?r=2+c-d:r=4+u-c,r/=6,r<0&&(r=r+1)}return[r*360,o,a]}static HSBtoRGB(e,i,n){e=(e%360+360)%360/360;let s=0,a=0,o=0;if(i===0)s=a=o=n;else{const r=(e-Math.floor(e))*6,l=r-Math.floor(r),c=n*(1-i),u=n*(1-i*l),d=n*(1-i*(1-l));switch(Math.trunc(r)){case 0:s=n,a=d,o=c;break;case 1:s=u,a=n,o=c;break;case 2:s=c,a=n,o=d;break;case 3:s=c,a=u,o=n;break;case 4:s=d,a=c,o=n;break;case 5:s=n,a=c,o=u;break}}return[s,a,o]}static mix(e,i,n){return new je(yd(e.r,i.r,n),yd(e.g,i.g,n),yd(e.b,i.b,n),yd(e.a,i.a,n))}static lighten(e,i){const n=je.RGBtoOKLCH(e.r,e.g,e.b);return je.fromOKLCH(Nt(0,n[0]+i,1),n[1],n[2])}static darken(e,i){const n=je.RGBtoOKLCH(e.r,e.g,e.b);return je.fromOKLCH(Nt(0,n[0]-i,1),n[1],n[2])}static interpolate(e,i){const n=1/(e.length-1),s=e.map(a=>je.RGBtoOKLCH(a.r,a.g,a.b));return Array.from({length:i},(a,o)=>{const r=o/(i-1),l=e.length<=2?0:Math.min(Math.floor(r*(e.length-1)),e.length-2),c=(r-l*n)/n,u=s[l],d=s[l+1];return je.fromOKLCH(yd(u[0],d[0],c),yd(u[1],d[1],c),yd(u[2],d[2],c))})}};K4.nameToHex=new Map([["aliceblue","#F0F8FF"],["antiquewhite","#FAEBD7"],["aqua","#00FFFF"],["aquamarine","#7FFFD4"],["azure","#F0FFFF"],["beige","#F5F5DC"],["bisque","#FFE4C4"],["black","#000000"],["blanchedalmond","#FFEBCD"],["blue","#0000FF"],["blueviolet","#8A2BE2"],["brown","#A52A2A"],["burlywood","#DEB887"],["cadetblue","#5F9EA0"],["chartreuse","#7FFF00"],["chocolate","#D2691E"],["coral","#FF7F50"],["cornflowerblue","#6495ED"],["cornsilk","#FFF8DC"],["crimson","#DC143C"],["cyan","#00FFFF"],["darkblue","#00008B"],["darkcyan","#008B8B"],["darkgoldenrod","#B8860B"],["darkgray","#A9A9A9"],["darkgreen","#006400"],["darkgrey","#A9A9A9"],["darkkhaki","#BDB76B"],["darkmagenta","#8B008B"],["darkolivegreen","#556B2F"],["darkorange","#FF8C00"],["darkorchid","#9932CC"],["darkred","#8B0000"],["darksalmon","#E9967A"],["darkseagreen","#8FBC8F"],["darkslateblue","#483D8B"],["darkslategray","#2F4F4F"],["darkslategrey","#2F4F4F"],["darkturquoise","#00CED1"],["darkviolet","#9400D3"],["deeppink","#FF1493"],["deepskyblue","#00BFFF"],["dimgray","#696969"],["dimgrey","#696969"],["dodgerblue","#1E90FF"],["firebrick","#B22222"],["floralwhite","#FFFAF0"],["forestgreen","#228B22"],["fuchsia","#FF00FF"],["gainsboro","#DCDCDC"],["ghostwhite","#F8F8FF"],["gold","#FFD700"],["goldenrod","#DAA520"],["gray","#808080"],["green","#008000"],["greenyellow","#ADFF2F"],["grey","#808080"],["honeydew","#F0FFF0"],["hotpink","#FF69B4"],["indianred","#CD5C5C"],["indigo","#4B0082"],["ivory","#FFFFF0"],["khaki","#F0E68C"],["lavender","#E6E6FA"],["lavenderblush","#FFF0F5"],["lawngreen","#7CFC00"],["lemonchiffon","#FFFACD"],["lightblue","#ADD8E6"],["lightcoral","#F08080"],["lightcyan","#E0FFFF"],["lightgoldenrodyellow","#FAFAD2"],["lightgray","#D3D3D3"],["lightgreen","#90EE90"],["lightgrey","#D3D3D3"],["lightpink","#FFB6C1"],["lightsalmon","#FFA07A"],["lightseagreen","#20B2AA"],["lightskyblue","#87CEFA"],["lightslategray","#778899"],["lightslategrey","#778899"],["lightsteelblue","#B0C4DE"],["lightyellow","#FFFFE0"],["lime","#00FF00"],["limegreen","#32CD32"],["linen","#FAF0E6"],["magenta","#FF00FF"],["maroon","#800000"],["mediumaquamarine","#66CDAA"],["mediumblue","#0000CD"],["mediumorchid","#BA55D3"],["mediumpurple","#9370DB"],["mediumseagreen","#3CB371"],["mediumslateblue","#7B68EE"],["mediumspringgreen","#00FA9A"],["mediumturquoise","#48D1CC"],["mediumvioletred","#C71585"],["midnightblue","#191970"],["mintcream","#F5FFFA"],["mistyrose","#FFE4E1"],["moccasin","#FFE4B5"],["navajowhite","#FFDEAD"],["navy","#000080"],["oldlace","#FDF5E6"],["olive","#808000"],["olivedrab","#6B8E23"],["orange","#FFA500"],["orangered","#FF4500"],["orchid","#DA70D6"],["palegoldenrod","#EEE8AA"],["palegreen","#98FB98"],["paleturquoise","#AFEEEE"],["palevioletred","#DB7093"],["papayawhip","#FFEFD5"],["peachpuff","#FFDAB9"],["peru","#CD853F"],["pink","#FFC0CB"],["plum","#DDA0DD"],["powderblue","#B0E0E6"],["purple","#800080"],["rebeccapurple","#663399"],["red","#FF0000"],["rosybrown","#BC8F8F"],["royalblue","#4169E1"],["saddlebrown","#8B4513"],["salmon","#FA8072"],["sandybrown","#F4A460"],["seagreen","#2E8B57"],["seashell","#FFF5EE"],["sienna","#A0522D"],["silver","#C0C0C0"],["skyblue","#87CEEB"],["slateblue","#6A5ACD"],["slategray","#708090"],["slategrey","#708090"],["snow","#FFFAFA"],["springgreen","#00FF7F"],["steelblue","#4682B4"],["tan","#D2B48C"],["teal","#008080"],["thistle","#D8BFD8"],["tomato","#FF6347"],["transparent","#00000000"],["turquoise","#40E0D0"],["violet","#EE82EE"],["wheat","#F5DEB3"],["white","#FFFFFF"],["whitesmoke","#F5F5F5"],["yellow","#FFFF00"],["yellowgreen","#9ACD32"]]);var se=K4,Y4={x:{position:"bottom",type:{$if:[{$eq:[{$path:["/series/0/direction",void 0]},"horizontal"]},"number","category"]}},y:{position:"left",type:{$if:[{$eq:[{$path:["/series/0/direction",void 0]},"horizontal"]},"category","number"]}}},$X={$if:[{$or:[{$isGradient:{$palette:"fill"}},{$isPattern:{$palette:"fill"}},{$isImage:{$value:"$1"}}]},{$palette:"fillFallback"},{$palette:"fill"}]},XX={$if:[{$or:[{$isGradient:{$palette:"fill"}},{$isPattern:{$palette:"fill"}},{$isImage:{$value:"$1"}}]},{$palette:"fillsFallback"},{$palette:"fills"}]},bx={$if:[{$isGradient:{$palette:"fill"}},{$palette:"fillFallback"},{$if:[{$isPattern:{$palette:"fill"}},{$path:["/stroke",{$palette:"fillFallback"},{$palette:"fill"}]},{$palette:"fill"}]}]},xx={$if:[{$or:[{$isGradient:{$palette:"fill"}},{$isPattern:{$palette:"fill"}},{$isImage:{$value:"$1"}}]},[{$palette:"fillFallback"},{$palette:"fillFallback"}],{$palette:"range2"}]},ZX={type:"gradient",gradient:"linear",bounds:"item",colorStops:[{color:"black"}],rotation:0,reverse:!1,colorSpace:"rgb"},Tl={type:"gradient",gradient:"linear",bounds:"item",colorStops:{$shallow:{$map:[{color:{$value:"$1"}},{$palette:"gradient"}]}},rotation:0,reverse:!1,colorSpace:"rgb"},$4={...Tl,colorStops:{$shallow:[{color:{$mix:[{$path:["/1",{$palette:"fill"},{$palette:"hierarchyColors"}]},"black",.15]}},{color:{$mix:[{$path:["/1",{$palette:"fill"},{$palette:"hierarchyColors"}]},"white",.15]}}]}},qX={...Tl,colorStops:{$map:[{color:{$value:"$1"}},{$path:["/0",void 0,{$palette:"gradients"}]}]}},B1=t=>({...Tl,colorStops:{$shallow:{$if:[{$or:[{$isGradient:{$palette:`${t}.fill`}},{$isPattern:{$palette:`${t}.fill`}},{$isImage:{$palette:`${t}.fill`}}]},{$path:["/colorStops",void 0,{$palette:`${t}.fill`}]},[{color:{$mix:[{$palette:`${t}.fill`},"black",.15]}},{color:{$mix:[{$palette:`${t}.fill`},"white",.15]}}]]}}}),pD={type:"gradient",gradient:"radial",bounds:"item",colorStops:{$shallow:{$map:[{color:{$value:"$1"}},{$palette:"gradient"}]}},rotation:0,reverse:!1,colorSpace:"rgb"},Sp={...pD,reverse:!0},QX={...pD,bounds:"series"},X4={...pD,bounds:"series",reverse:!0},JX={type:"gradient",gradient:"conic",bounds:"series",colorStops:{$map:[{color:{$value:"$1"}},{$palette:"gradient"}]},rotation:0,reverse:!1,colorSpace:"rgb"},Cs={type:"pattern",pattern:"forward-slanted-lines",width:{$isUserOption:["./height",{$path:"./height"},10]},height:{$isUserOption:["./width",{$path:"./width"},10]},padding:2,fill:{$if:[{$or:[{$isGradient:{$palette:"fill"}},{$isImage:{$palette:"fill"}}]},{$palette:"fillFallback"},{$if:[{$isPattern:{$palette:"fill"}},{$path:["/fill",{$palette:"fillFallback"},{$palette:"fill"}]},{$palette:"fill"}]}]},fillOpacity:1,stroke:bx,strokeOpacity:1,strokeWidth:{$switch:[{$path:"./pattern"},0,[["backward-slanted-lines","forward-slanted-lines","horizontal-lines","vertical-lines"],4]]},backgroundFill:"none",backgroundFillOpacity:1,rotation:0,scale:1},t8={...Cs,stroke:{$if:[{$isGradient:{$palette:"fill"}},{$path:["/0",void 0,{$palette:"fillsFallback"}]},{$if:[{$isPattern:{$palette:"fill"}},{$path:["/stroke",{$path:["/0",void 0,{$palette:"fillsFallback"}]},{$path:["/0",void 0,{$palette:"fills"}]}]},{$path:["/0",void 0,{$palette:"fills"}]}]}]},fill:{$if:[{$or:[{$isGradient:{$palette:"fill"}},{$isImage:{$palette:"fill"}}]},{$path:["/0",void 0,{$palette:"fillsFallback"}]},{$if:[{$isPattern:{$palette:"fill"}},{$path:["/fill",{$path:["/0",void 0,{$palette:"fillsFallback"}]},{$path:["/0",void 0,{$palette:"fills"}]}]},{$path:["/0",void 0,{$palette:"fills"}]}]}]}},e8={type:"pattern",pattern:"forward-slanted-lines",width:8,height:8,padding:1,fill:"black",fillOpacity:1,backgroundFill:"white",backgroundFillOpacity:1,stroke:"black",strokeOpacity:1,strokeWidth:1,rotation:0,scale:1},Z4={...Cs,fill:{$path:["/1",{$palette:"fill"},{$palette:"hierarchyColors"}]},stroke:{$path:["/1",{$palette:"fill"},{$palette:"hierarchyColors"}]}},V1=t=>({...Cs,stroke:{$if:[{$isGradient:{$palette:`${t}.fill`}},{$palette:"fillFallback"},{$if:[{$isPattern:{$palette:`${t}.fill`}},{$path:["/stroke",{$palette:"fillFallback"},{$palette:`${t}.fill`}]},{$palette:`${t}.fill`}]}]}}),$s={type:"image",backgroundFill:{$palette:"fillFallback"},backgroundFillOpacity:1,repeat:"no-repeat",fit:"contain",rotation:0},i8={type:"image",backgroundFill:"black",backgroundFillOpacity:1,rotation:0,repeat:"no-repeat",fit:"contain",width:8,height:8};function So(t){return af(t,e=>{const i=se.fromString(e);return[se.darken(i,.15).toString(),e,se.lighten(i,.15).toString()]})}var Oe={padding:8,cornerRadius:4,fill:{$if:[{$and:[{$eq:[{$path:"./fill/type"},"image"]},{$isUserOption:["./fill/backgroundFill",!1,!0]}]},{backgroundFill:"transparent"},void 0]},border:{enabled:{$isUserOption:["../border",!0,!1]},strokeWidth:1,stroke:{$foregroundOpacity:.08}}},gD={$isUserOption:["/highlight/enabled",{$path:"/highlight/enabled"},!0]},Bc={enabled:gD,unhighlightedItem:{opacity:.6},unhighlightedSeries:{opacity:.2}},fD={enabled:gD,unhighlightedSeries:{opacity:.2}},_1={enabled:gD,unhighlightedItem:{opacity:.2},unhighlightedSeries:{opacity:.2}},n8={enabled:gD,unhighlightedItem:{opacity:.2}},F1={border:{enabled:!1,stroke:{$foregroundBackgroundMix:.25},strokeOpacity:1,strokeWidth:1},cornerRadius:4,fillOpacity:1,padding:{$if:[{$eq:[{$path:"./border/enabled"},!0]},5,{$isUserOption:["./fill",5,0]}]}},mD={enabled:!1,key:"x",segments:{$apply:{fill:{$applySwitch:[{$path:"type"},{$path:"../../../fill"},["gradient",Tl],["image",$s],["pattern",Cs]]},stroke:{$path:"../../../stroke"},fillOpacity:{$path:"../../../fillOpacity"},strokeWidth:{$isUserOption:["./stroke",{$isUserOption:["../../../strokeWidth",{$path:"../../../strokeWidth"},{$if:[{$greaterThan:[{$path:"../../../strokeWidth"},0]},{$path:"../../../strokeWidth"},2]}]},{$path:"../../../strokeWidth"}]},strokeOpacity:{$path:"../../../strokeOpacity"},lineDash:{$path:"../../../lineDash"},lineDashOffset:{$path:"../../../lineDashOffset"}}}},H1=class iN{constructor(e){this.version=e.split("-")[0]}save(...e){const i={version:this.version};for(const n of Object.values(e))i[n.mementoOriginatorKey]=this.encode(n,n.createMemento());return i}restore(e,...i){if(!Bt(e)){uo(`Could not restore data of type [${e===null?"null":typeof e}], expecting an object, ignoring.`);return}if(!("version"in e)||typeof e.version!="string"){uo("Could not restore data, missing [version] string in object, ignoring.");return}for(const n of i){const s=this.decode(n,e[n.mementoOriginatorKey]),a=[];if(!n.guardMemento(s,a)){let o=`Could not restore [${n.mementoOriginatorKey}] data, value was invalid, ignoring.`;a.length>0&&(o+=` + +${a.join(` + +`)} + +`),uo(o,s);return}n.restoreMemento(this.version,e.version,s)}}encode(e,i){try{return JSON.parse(JSON.stringify(i,iN.encodeTypes))}catch(n){throw new Error(`Failed to encode [${e.mementoOriginatorKey}] value [${n}].`,{cause:n})}}decode(e,i){if(i==null)return i;try{return JSON.parse(JSON.stringify(i),iN.decodeTypes)}catch(n){throw new Error(`Failed to decode [${e.mementoOriginatorKey}] value [${n}].`,{cause:n})}}static encodeTypes(e,i){return aa(this[e])?{__type:"date",value:this[e].toISOString()}:i}static decodeTypes(e,i){return Bt(this[e])&&"__type"in this[e]&&this[e].__type==="date"?new Date(this[e].value):i}},z=(t=>(t.X="x",t.Y="y",t.Angle="angle",t.Radius="radius",t))(z||{}),Ct=(t=>(t[t.FULL=0]="FULL",t[t.UPDATE_DATA=1]="UPDATE_DATA",t[t.PROCESS_DATA=2]="PROCESS_DATA",t[t.PROCESS_DOMAIN=3]="PROCESS_DOMAIN",t[t.PROCESS_RANGE=4]="PROCESS_RANGE",t[t.PERFORM_LAYOUT=5]="PERFORM_LAYOUT",t[t.PRE_SERIES_UPDATE=6]="PRE_SERIES_UPDATE",t[t.SERIES_UPDATE=7]="SERIES_UPDATE",t[t.PRE_SCENE_RENDER=8]="PRE_SCENE_RENDER",t[t.SCENE_RENDER=9]="SCENE_RENDER",t[t.NONE=10]="NONE",t))(Ct||{}),pe=(t=>(t[t.CHART_BACKGROUND=0]="CHART_BACKGROUND",t[t.AXIS_BAND_HIGHLIGHT=1]="AXIS_BAND_HIGHLIGHT",t[t.AXIS_GRID=2]="AXIS_GRID",t[t.AXIS=3]="AXIS",t[t.SERIES_AREA_CONTAINER=4]="SERIES_AREA_CONTAINER",t[t.ZOOM_SELECTION=5]="ZOOM_SELECTION",t[t.SERIES_CROSSLINE_RANGE=6]="SERIES_CROSSLINE_RANGE",t[t.SERIES_LAYER=7]="SERIES_LAYER",t[t.AXIS_FOREGROUND=8]="AXIS_FOREGROUND",t[t.SERIES_CROSSHAIR=9]="SERIES_CROSSHAIR",t[t.SERIES_CROSSLINE_LINE=10]="SERIES_CROSSLINE_LINE",t[t.SERIES_ANNOTATION=11]="SERIES_ANNOTATION",t[t.CHART_ANNOTATION=12]="CHART_ANNOTATION",t[t.CHART_ANNOTATION_FOCUSED=13]="CHART_ANNOTATION_FOCUSED",t[t.STATUS_BAR=14]="STATUS_BAR",t[t.SERIES_LABEL=15]="SERIES_LABEL",t[t.LEGEND=16]="LEGEND",t[t.NAVIGATOR=17]="NAVIGATOR",t[t.FOREGROUND=18]="FOREGROUND",t))(pe||{}),Vs=(t=>(t[t.BACKGROUND=0]="BACKGROUND",t[t.ANY_CONTENT=1]="ANY_CONTENT",t))(Vs||{}),Mc=(t=>(t[t.FOREGROUND=0]="FOREGROUND",t[t.HIGHLIGHT=1]="HIGHLIGHT",t[t.LABEL=2]="LABEL",t))(Mc||{}),gl=(t=>(t[t.BACKGROUND=0]="BACKGROUND",t[t.FOREGROUND=1]="FOREGROUND",t[t.HIGHLIGHT=2]="HIGHLIGHT",t[t.LABEL=3]="LABEL",t))(gl||{});function qd(t){const{placement:e="bottom",floating:i=!1,xOffset:n=0,yOffset:s=0}=typeof t=="string"?{placement:t,floating:!1}:t;return{placement:e,floating:i,xOffset:n,yOffset:s}}var xt=class{handleUnknownProperties(t,e){}set(t){const{className:e=this.constructor.name}=this.constructor;if(t==null)return this.clear(),this;if(typeof t!="object")return cl(`unable to set ${e} - expecting a properties object`),this;const i=new Set(Object.keys(t));for(const n of ru(this))if(i.has(n)){const s=t[n],a=this;if(of(a[n]))if(a[n]instanceof ss){const o=a[n].reset(s);o==null?cl(`unable to set [${String(n)}] - expecting a properties array`):a[n]=o}else a[n].set(s);else Ie(s)?a[n]=Hb(s,a[n]??{}):a[n]=s;i.delete(n)}this.handleUnknownProperties(i,t);for(const n of i)cl(`unable to set [${String(n)}] in ${e} - property is unknown`);return this}clear(){for(const t of ru(this)){const e=this[t];of(e)?e.clear():this[t]=void 0}return this}toJson(){return ru(this).reduce((t,e)=>{const i=this[e];return t[String(e)]=of(i)?i.toJson():i,t},{})}},ss=class q4 extends Array{constructor(e,...i){super(i.length);const s=(a=>!!a?.prototype?.constructor?.name)(e)?a=>new e().set(a):e;Object.defineProperty(this,"itemFactory",{value:s,enumerable:!1,configurable:!1}),this.set(i)}set(e){if(qt(e)){this.length=e.length;for(let i=0;ie?.toJson?.()??e)}};function of(t){return t instanceof xt||t instanceof ss}var Mp=class extends xt{constructor(){super(...arguments),this.type="linear",this.tension=1,this.position="end"}};Br([b],Mp.prototype,"type");Br([b],Mp.prototype,"tension");Br([b],Mp.prototype,"position");function bf(t,e){const[i,n]=xi(e);return Nt(i,t,n)}function xi(t){if(t.length===0)return[];const e=[1/0,-1/0];for(const i of t)ie[1]&&(e[1]=i);return e}function Tc(t){const[e,i]=xi(t);return i-e}function Gf(t){return t=Math.trunc(t),t<=0?1:t===1?2:1<<32-Math.clz32(t-1)}function nN(t){return t=Math.trunc(t),t<=0?0:t===1?1:1<<31-Math.clz32(t)}var Ca=0,wa=1,Na=2,Ta=3,er=4,Vc=1e3,s8=10,Ou=64,sp=4294967295,a8=3,o8=20,pC=100;function sN(t,e,i,n,s,a,o,r){let l=0;for(;ln;)s-=1,l+=1;if(l>=pC||n>=s)return a;const c=Number.isFinite(e)?ar(t[s],e,i,r)-ar(t[n],e,i,r):xf(s,t.length)-xf(n,t.length);if(c===0||!Number.isFinite(c))return a;const u=Math.abs(c)/(s-n);let d;if(oo8?d=!1:d=u<=a,a=Math.min(a,u),!d)return a;const g=Math.floor((n+s)/2),f=sN(t,e,i,n,g,a,o+1,r),y=sN(t,e,i,g+1,s,a,o+1,r);return Math.min(f,y,a)}function r8(t,e,i,n){return sN(t,e,i,0,t.length-1,1/(t.length-1),0,n)}function _c(t,e,i,n){if(Number.isFinite(e)){const s=n?.smallestKeyInterval,a=n?.xNeedsValueOf??!0,o=s==null?r8(t,e,i,a):s/(i-e);return Gf(Math.trunc(1/o))>>3}else{let s=Math.ceil(Math.log2(t.length))-1;return s=Math.min(Math.max(s,0),24),Math.trunc(2**s)}}function gn(t,e){const{domain:i,sortMetadata:n}=e;switch(t){case"category":return[Number.NaN,Number.NaN];case"number":case"time":case"ordinal-time":case"unit-time":{if(i.length===0)return[1/0,-1/0];if(n?.sortOrder===1)return[Number(i[0]),Number(i.at(-1))];if(n?.sortOrder===-1)return[Number(i.at(-1)),Number(i[0])];let s=1/0,a=-1/0;for(const o of i){const r=Number(o);s=Math.min(s,r),a=Math.max(a,r)}return[s,a]}case"color":case"log":case"mercator":return[0,0]}}function xf(t,e){return t/e}function ar(t,e,i,n){return n?(t.valueOf()-e)/(i-e):(t-e)/(i-e)}function yD(t,e){return Math.trunc(Math.min(Math.floor(t*e),e-1)*er)}function l8(t,e,i,n,s,{xNeedsValueOf:a=!0,xValuesLength:o}={}){const r=t[s];if(r==null)return-1;const l=o??t.length,c=Number.isFinite(e)?ar(r,e,i,a):xf(s,l);return yD(c,n)}function c8(t,e,i,n){for(const s of n)if(i===t[e+s])return!0;return!1}function Fc(t,e,i,n,s,a,{positive:o,split:r=!1,xNeedsValueOf:l=!0,yNeedsValueOf:c=!0,reuseIndexData:u,reuseValueData:d,reuseNegativeIndexData:g,reuseNegativeValueData:f}={}){const y=Number.NaN,x=a*er,S=u?.length===x?u:new Uint32Array(x),D=d?.length===x?d:new Float64Array(x);let A,I;r&&(g?.length===x?A=g:A=new Uint32Array(x),f?.length===x?I=f:I=new Float64Array(x));const w=Number.isFinite(n)&&Number.isFinite(s),N=t.length;w&&(D.fill(y),S.fill(sp),r&&(I.fill(y),A.fill(sp)));const O=w?a/(s-n):a*(1/N);let L=-1,R=-1,P=y,B=-1,F=y,H=-1,$=y,Y=-1,U=y,V=-1,Z=-1,W=y,q=-1,nt=y,G=-1,et=y,st=-1,lt=y;const mt=t.length,Dt=e===i;for(let kt=0;kt=0;else if(o!=null&&ne>=0!==o)continue;let Pt;w?l?Pt=(Vt.valueOf()-n)*O:Pt=(Vt-n)*O:Pt=kt*O;const ue=Math.floor(Pt),oe=(ueF&&(B=kt,F=Pt),ke&&Qt<$&&(H=kt,$=Qt),Ye&&ne>U&&(Y=kt,U=ne))}else{oe!==V&&(V!==-1&&(A[V]=Z,A[V+1]=q,A[V+2]=G,A[V+3]=st,I[V]=W,I[V+1]=nt,I[V+2]=et,I[V+3]=lt),V=oe,Z=-1,W=y,q=-1,nt=y,G=-1,et=y,st=-1,lt=y);const ke=Qt===Qt,Ye=ne===ne;Z===-1?(Z=kt,W=Pt,q=kt,nt=Pt,ke&&(G=kt,et=Qt),Ye&&(st=kt,lt=ne)):(Ptnt&&(q=kt,nt=Pt),ke&&Qtlt&&(st=kt,lt=ne))}}return L!==-1&&(S[L]=R,S[L+1]=B,S[L+2]=H,S[L+3]=Y,D[L]=P,D[L+1]=F,D[L+2]=$,D[L+3]=U),r&&V!==-1&&(A[V]=Z,A[V+1]=q,A[V+2]=G,A[V+3]=st,I[V]=W,I[V+1]=nt,I[V+2]=et,I[V+3]=lt),{indexData:S,valueData:D,negativeIndexData:A,negativeValueData:I}}function ap(t,e,i,{inPlace:n=!1,midpointData:s,reuseIndexData:a,reuseValueData:o}={}){const r=Math.trunc(i/2),l=r*er;let c;n?c=t:a?.length===l?c=a:c=new Uint32Array(l);let u;n?u=e:o?.length===l?u=o:u=new Float64Array(l);const d=s??new Uint32Array(r);for(let g=0;ge[x+wa]?y:x,w=t[I+wa];c[f+wa]=w,u[f+wa]=e[I+wa],d[g]=A+w>>1;const N=S||e[y+Na]e[x+Ta]?y:x;c[f+Ta]=t[O+Ta],u[f+Ta]=e[O+Ta]}return{maxRange:r,indexData:c,valueData:u,midpointData:d}}function ul(t,e,i,n=Ca,s=wa,a=-1){const o=i?.length===t?i:new Uint32Array(t);for(let r=0,l=0;r>1}return o}function h8(t,{collectLevel:e,shouldContinue:i,minRange:n=Ou,compactInPlace:s=!1}){let a=t,o=e(a);const r=[o];for(;a.maxRange>n&&i(o,a);){const l=ap(a.indexData,a.valueData,a.maxRange,{inPlace:s});a={maxRange:l.maxRange,indexData:l.indexData,valueData:l.valueData,midpointData:l.midpointData},o=e(a),r.push(o)}return r.reverse(),r}function Eu(t,e,i,n,s){if(e.lengthD.maxRange===d);let{indexData:f,valueData:y}=Fc(e,i,n,a,o,d,{xNeedsValueOf:l,yNeedsValueOf:c,reuseIndexData:g?.indexData,reuseValueData:g?.valueData}),x=ul(d,f,g?.midpointIndices);const S=[{maxRange:d,indexData:f,valueData:y,midpointIndices:x}];for(;d>Ou;){const D=d,A=Math.trunc(D/2),I=u?.find(N=>N.maxRange===A),w=ap(f,y,D,{reuseIndexData:I?.indexData,reuseValueData:I?.valueData});d=w.maxRange,f=w.indexData,y=w.valueData,x=w.midpointData??ul(d,f,I?.midpointIndices),S.push({maxRange:d,indexData:f,valueData:y,midpointIndices:x})}return S.reverse(),S}function bD(t,e,i,n,s){if(e.lengthw.maxRange===f),{indexData:x,valueData:S}=Fc(e,i,n,a,o,f,{xNeedsValueOf:c,yNeedsValueOf:u,reuseIndexData:y?.indexData,reuseValueData:y?.valueData}),D=ul(f,x,y?.midpointIndices),A={maxRange:f,indexData:x,valueData:S,midpointIndices:D};function I(){return Eu([a,o],e,i,n,{smallestKeyInterval:r,xNeedsValueOf:c,yNeedsValueOf:u,existingFilters:d})?.filter(N=>N.maxRange!==f)??[]}return{immediate:[A],computeRemaining:I}}var Qd=Symbol("is-dark-theme"),Dp=Symbol("default-shadow-colour"),qh=Symbol("default-caption-layout-style"),Qh=Symbol("default-caption-alignment"),j1=Symbol("palette-up-stroke"),G1=Symbol("palette-down-stroke"),U1=Symbol("palette-up-fill"),W1=Symbol("palette-down-fill"),K1=Symbol("palette-neutral-stroke"),Y1=Symbol("palette-neutral-fill"),$1=Symbol("palette-alt-up-stroke"),X1=Symbol("palette-alt-down-stroke"),Z1=Symbol("palette-alt-up-fill"),q1=Symbol("palette-alt-down-fill"),Q1=Symbol("palette-gray-fill"),J1=Symbol("palette-gray-stroke"),xD=Symbol("default-polar-series-stroke"),vD=Symbol("default-sparkline-crosshair-stroke"),ra=Symbol("default-financial-charts-annotation-stroke"),jb=Symbol("default-hierarchy-strokes"),SD=Symbol("default-text-annotation-color"),Ws=Symbol("default-financial-charts-annotation-background-fill"),vx=Symbol("default-annotation-handle-fill"),Sx=Symbol("default-annotation-statistics-fill"),Mx=Symbol("default-annotation-statistics-stroke"),Dx=Symbol("default-annotation-statistics-color"),Ax=Symbol("default-annotation-statistics-divider-stroke"),Gb=Symbol("default-annotation-statistics-fill"),Ub=Symbol("default-annotation-statistics-stroke"),Ix=Symbol("default-textbox-fill"),kx=Symbol("default-textbox-stroke"),Cx=Symbol("default-textbox-color"),wx=Symbol("default-toolbar-position");function u8(t,e){return"context"in t}function xz(t,e){return t!=null&&u8(t)&&e!=null&&typeof e=="object"&&e.context===void 0?(e.context=t.context,!0):!1}function js(t,e,i){if(Array.isArray(t)){for(const n of t)if(xz(n,i))break}else xz(t,i);return e(i)}var Q4=class{constructor(){this.cache=new WeakMap}call(t,e,i){let n,s=this.cache.get(e);try{n=JSON.stringify(i)}catch{return this.invoke(t,e,s,void 0,i)}return s==null&&(s=new Map,this.cache.set(e,s)),s.has(n)?s.get(n):this.invoke(t,e,s,n,i)}invoke(t,e,i,n,s){try{const a=js(t,e,s);return i&&n!=null&&i.set(n,a),a}catch(a){uo("User callback errored, ignoring",a);return}}invalidateCache(){this.cache=new WeakMap}},J4=class{constructor(t,e=t.defaultView){this.fallbackDocument=t,this.fallbackWindow=e,this.windowEvents=new Map}destroy(){this.removeWindowEvents(),this.container=void 0,this.cachedDocument=void 0,this.cachedWindow=void 0,this.windowEvents.clear()}get document(){return this.cachedDocument??this.fallbackDocument}get window(){return this.cachedWindow??this.fallbackWindow}getContainer(){return this.container}setContainer(t){if(this.container=t,t==null)return;const e=t.ownerDocument,i=e.defaultView??void 0,n=e!==this.document;n&&this.removeWindowEvents(),this.cachedDocument=e,this.cachedWindow=i,n&&this.reattachWindowEvents()}removeWindowEvents(){for(const[t,e]of this.windowEvents)for(const{listener:i,options:n}of e)this.window.removeEventListener(t,i,n)}reattachWindowEvents(){for(const[t,e]of this.windowEvents)for(const{listener:i,options:n}of e)this.window.addEventListener(t,i,n)}get devicePixelRatio(){return this.window.devicePixelRatio}get innerWidth(){return this.window.innerWidth}get innerHeight(){return this.window.innerHeight}get navigator(){return this.window.navigator}getComputedStyle(t,e){return this.window.getComputedStyle(t,e)}matchMedia(t){return this.window.matchMedia?.(t)}getSelection(){return this.window.getSelection()}requestAnimationFrame(t){return this.window.requestAnimationFrame(t)}cancelAnimationFrame(t){this.window.cancelAnimationFrame(t)}shimIdleCallback(t,e){return setTimeout(()=>t(null),e?.timeout)}requestIdleCallback(t,e){return typeof this.window.requestIdleCallback=="function"?this.window.requestIdleCallback(t,e):this.shimIdleCallback(t,e)}cancelIdleCallback(t){return typeof this.window.cancelIdleCallback=="function"?this.window.cancelIdleCallback(t):clearTimeout(t)}attachListener(t,e,i){let n=this.windowEvents.get(t);n==null&&(n=new Set,this.windowEvents.set(t,n));const s=()=>{n?.delete(o),n?.size===0&&this.windowEvents.delete(t)},a=Bt(i)&&i.once?r=>{s(),e(r)}:e,o={listener:a,options:i};return n.add(o),this.window.addEventListener(t,a,i),()=>{s(),this.window.removeEventListener(t,a,i)}}get body(){return this.document.body}get head(){return this.document.head}isReady(){return this.document.readyState==="complete"}createElement(t,e,i){const n=this.document.createElement(t);if(typeof e=="object"&&(i=e,e=void 0),e)for(const s of e.split(" "))n.classList.add(s);return i&&Object.assign(n.style,i),n}createSvgElement(t){return this.document.createElementNS("http://www.w3.org/2000/svg",t)}createResizeObserver(t){const e=this.window.ResizeObserver;if(e!=null)return new e(t)}createIntersectionObserver(t,e){const i=this.window.IntersectionObserver;if(i!=null)return new i(t,e)}};function tT(t,e,i=1/0){const n=e,s=i,a=t%180*(Math.PI/180),o=Math.abs(Math.sin(a)),r=Math.abs(Math.cos(a));if(o===0)return{width:n,height:s};if(r===0)return{width:s,height:n};if(!Number.isFinite(s)){const c=r/o,u=n/(r+c*o);return{width:u,height:c*u}}const l=r*r-o*o;if(l===0){const c=Math.min(n,s)/Math.SQRT2;return{width:c,height:c}}return{width:Math.abs((n*r-s*o)/l),height:Math.abs((s*r-n*o)/l)}}function d8(t,e,i=1/0){const n=e,s=i,a=t%180*(Math.PI/180),o=Math.abs(Math.sin(a)),r=Math.abs(Math.cos(a));return o===0?{width:n,height:s}:r===0?{width:s,height:n}:{width:n*r+s*o,height:n*o+s*r}}function eT(t,e,i,n=0,s=0){const a=Math.cos(i),o=Math.sin(i),r=t-n,l=e-s;return{x:n+r*a-l*o,y:s+r*o+l*a}}var Qo=Math.PI*2,Ly=Math.PI/2;function ze(t){return t%=Qo,t+=Qo,t%=Qo,t}function Wb(t){return t%=Qo,t+=Qo,t!==Qo&&(t%=Qo),t}function uM(t){return t%=Qo,t<-Math.PI?t+=Qo:t>=Math.PI&&(t-=Qo),t}function Ba(t,e,i){const n=ze(t),s=ze(e),a=ze(i);return sa?s<=n||n<=a:e!==i}function Ze(t){return t/180*Math.PI}function tj(t){return t/Math.PI*180}function fl(t,e){return t=ze(t),e=ze(e),e-t+(t>e?Qo:0)}function ej(t){const e=ze(t);return e<=Ly?e/Ly:e<=Math.PI?(Math.PI-e)/Ly:e<=1.5*Math.PI?(e-Math.PI)/Ly:(Qo-e)/Ly}function aN(t,e,i){const n=ej(i);return t*n+e*Math.abs(1-n)}function Dl(t){return t?ze(Ze(t)):0}var dM=class{constructor(){this.queue=[]}waitForCompletion(t=50){const e=this.queue;function i(n){function s(){clearTimeout(o),n(!0)}function a(){const r=e.indexOf(s);r<0||(e.splice(r,1),n(!1))}const o=setTimeout(a,t);e.push(s)}return new Promise(i)}notify(){for(const t of this.queue.splice(0))t()}};function oN(t=0){function e(i){setTimeout(i,t)}return new Promise(e)}async function p8(t,e,i=`Timeout after ${e}ms`){let n;const s=new Promise((a,o)=>{n=setTimeout(()=>o(new Error(i)),e)});try{return await Promise.race([t,s])}finally{clearTimeout(n)}}function Nh(t){return t==="true"}function g8(t){return Number(t)}function no(t){return t}var f8={role:no,"aria-checked":Nh,"aria-controls":no,"aria-describedby":no,"aria-disabled":Nh,"aria-expanded":Nh,"aria-haspopup":no,"aria-hidden":Nh,"aria-label":no,"aria-labelledby":no,"aria-live":no,"aria-orientation":no,"aria-selected":Nh,"data-focus-override":Nh,"data-focus-visible-override":Nh,"data-preventdefault":Nh,class:no,for:no,id:no,tabindex:g8,title:no,placeholder:no};function ye(t,e,i){i==null||i===""||i===""?t?.removeAttribute(e):t?.setAttribute(e,i.toString())}function Nr(t,e){if(e!=null)for(const[i,n]of Xe(e))i!=="class"&&ye(t,i,n)}function Jd(t,e,i){if(!Eb(t))return;const n=t.getAttribute(e);return n===null?i:f8[e]?.(n)??void 0}function Cr(t,e,i){t!=null&&(i==null?t.style.removeProperty(e):t.style.setProperty(e,i.toString()))}function ij(t,e){for(const[i,n]of Xe(e))Cr(t,i,n)}function qi(t,e){const i=Array.isArray(t)?t:t.split(".");if(i.length===1){const[n]=i;return Su((s,a,o)=>s[n]=o,s=>s[n],e)}return Su((n,s,a)=>z1(n,i,a),n=>R1(n,i),e)}function m8(t){return Su((e,i,n)=>e[t]=n)}function pi(t,e){return Su((i,n,s)=>i[t][e??n]=s)}function Pe(t){const{newValue:e,oldValue:i,changeValue:n}=t;return Su((s,a,o,r)=>(o!==r&&(r!==void 0&&i?.call(s,r),o!==void 0&&e?.call(s,o),n?.call(s,o,r)),o))}function Bi(t){return O1(t)}var Ru=class extends xt{constructor(t){super(),this.node=t,this.enabled=!1,this.stroke="black",this.strokeOpacity=1,this.strokeWidth=1}};Br([Pe({changeValue(t){t?this.node.strokeWidth=this.strokeWidth:this.node.strokeWidth=0}}),b],Ru.prototype,"enabled");Br([pi("node","stroke"),b],Ru.prototype,"stroke");Br([pi("node","strokeOpacity"),b],Ru.prototype,"strokeOpacity");Br([Pe({changeValue(t){this.enabled?this.node.strokeWidth=t:this.node.strokeWidth=0}}),b],Ru.prototype,"strokeWidth");function iT(t,e,i,n,s){return et.x&&it.y}function MD(t,e,i,n=0,s=0){return e>=t.x&&e+n<=t.x+t.width&&i>=t.y&&i+s<=t.y+t.height}function nj(t){return t==null||t.height===0||t.width===0||Number.isNaN(t.height)||Number.isNaN(t.width)}function sj(t,e){return t===e?!0:t==null||e==null?!1:t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function Dr(t,e,i){if(t>e)return;let n;for(;e>=t;){const s=Math.floor((e+t)/2);i(s)?(n=s,t=s+1):e=s-1}return n}function vf(t,e,i){if(t>e)return;let n;for(;e>=t;){const s=Math.floor((e+t)/2);i(s)?(n=s,e=s-1):t=s+1}return n}function nT(t,e,i){if(t>e)return;let n;for(;e>=t;){const s=Math.floor((e+t)/2),a=i(s);a==null?e=s-1:(n=a,t=s+1)}return n}function y8(t,e,i){if(t>e)return;let n;for(;e>=t;){const s=Math.floor((e+t)/2),a=i(s);a==null?t=s+1:(n=a,e=s-1)}return n}function aj(t=0,e=0){const i=qM();return new i(t,e).getContext("2d")}var b8=800,x8=600,v8={quality:1};function S8(t){const e=class extends t{constructor(...n){super(...n),this.gpu=!1}toBuffer(n,s){return super.toBuffer(n,{...s,msaa:!1})}transferToImageBitmap(){const{width:n,height:s}=this,a=new e(Math.max(1,n),Math.max(1,s));return n>0&&s>0&&a.getContext("2d").drawCanvas(this,0,0,n,s),Object.defineProperty(a,"close",{value:()=>{}}),a}};return e}var vz=!1;function M8(t,e){vz||(vz=!0,Object.defineProperty(t.prototype,"fillText",{value:function(i,n,s){let a=this.outlineText(i);a=a.transform(new e([1,0,0,1,n,s])),this.fill(a)},writable:!0,configurable:!0}))}var D8=class{constructor(t){this.getter=t}get(){return this.result??(this.result=this.getter()),this.result}clear(){this.result=void 0}},oj=class{constructor(t){this.getter=t}get(){let t=this.result?.deref();return t||(t=this.getter(),this.result=new WeakRef(t),t)}clear(){this.result=void 0}};function sT(t,e){return t.valueOf()-e.valueOf()}function A8(t){let e=Number.NaN;const i=[];for(const n of t){const s=n.valueOf();e!==s&&i.push(n),e=s}return i}function rN(t){const e=t.slice().sort(sT);return aT(e)==null?A8(e):e}function aT(t){if(t.length===0)return 1;const e=Number(t.at(-1))>Number(t[0])?1:-1;let i=-1/0*e;for(const n of t){const s=n.valueOf();if(Math.sign(s-i)!==e)return;i=s}return e}function oT(){return(t,e)=>{const i=[`Property [${t}] is deprecated.`,e].filter(Boolean).join(" ");uo(i)}}function I8(t,e){const i=oT(),n=e?.default;return Su((s,a,o)=>(o!==n&&i(a.toString(),t),o))}function k8(t,e){const i=oT();return Su((n,s,a)=>(a!==n[t]&&(i(s.toString(),`Use [${t}] instead.`),z1(n,t,e?e(a):a)),oM),(n,s)=>(i(s.toString(),`Use [${t}] instead.`),R1(n,t)))}function rj(t,e){const i=Math.max(t.length,e.length),n=new Set,s=new Set;for(let a=0;a0||s.size>0,added:n,removed:s}}function gb(t,e,i,n){const s=t-i,a=e-n;return s*s+a*a}function Jh(t,e,i,n,s,a,o){if(i===s&&n===a)return Math.min(o,gb(t,e,i,n));const r=s-i,l=a-n,c=Math.max(0,Math.min(1,((t-i)*r+(e-n)*l)/(r*r+l*l))),u=i+c*r,d=n+c*l;return Math.min(o,gb(t,e,u,d))}function C8(t,e,i,n,s,a,o,r,l){r&&([o,a]=[a,o]);const c=Math.atan2(e-n,t-i);if(!Ba(c,a,o)){const d=i+Math.cos(a)*s,g=n+Math.sin(a)*s,f=i+Math.cos(a)*s,y=n+Math.sin(a)*s;return Math.min(l,gb(t,e,d,g),gb(t,e,f,y))}const u=s-Math.sqrt(gb(t,e,i,n));return Math.min(l,u*u)}function Ll(t,e){if(t.length===0)return null;if(e!==void 0){const a=t.at(0),o=t.at(-1),r=a instanceof Date?a.getTime():a,l=o instanceof Date?o.getTime():o;if(typeof r=="number"&&typeof l=="number")return e===1?[r,l]:[l,r]}let i=1/0,n=-1/0;for(const a of t){const o=a instanceof Date?a.getTime():a;typeof o=="number"&&(on&&(n=o))}const s=[i,n];return s.every(Number.isFinite)?s:null}function Uf(t,e,i,n,s,a,o){let r=!1;const l=Ll(t,o),c=l&&a?[a(l[0]),a(l[1])]:l;if(c==null){let g;return e!=null&&i!=null&&e<=i?g=[e,i]:n!=null&&s!=null&&n<=s&&(g=[n,s]),{extent:g??[],clipped:!1}}let[u,d]=c;return e!=null?(r||(r=e>u),u=e):n!=null&&nd&&(d=s),u>d?{extent:[],clipped:!1}:{extent:[u,d],clipped:r}}function DD(t,e,i,n,s){const{extent:a,clipped:o}=Uf(t.domain,Je(e)?new Date(e):e,Je(i)?new Date(i):i,Je(n)?new Date(n):n,Je(s)?new Date(s):s,r=>new Date(r),t.sortMetadata?.sortOrder);return{extent:a.map(r=>new Date(r)),clipped:o}}var w8=new Intl.NumberFormat("en-US",{style:"percent"});function Or(t,e=2){return typeof t=="number"?cj(t,e):typeof t=="string"?t:String(t??"")}function lj(t){return w8.format(t)}var Sz=new Map().set(2,new Intl.NumberFormat("en-US",{maximumFractionDigits:2,useGrouping:!1}));function cj(t,e){let i=Sz.get(e);return i||(i=new Intl.NumberFormat("en-US",{maximumFractionDigits:e,useGrouping:!1}),Sz.set(e,i)),i.format(t)}function hj(t){return Array.isArray(t)&&t.length>=2&&t.every(Ae)}function zS(t){return Array.isArray(t)&&t.length>=2&&t.every(hj)}function N8(t){const e=t[0],i=t.at(-1);return i===void 0?!1:be(e[0],i[0],.001)&&be(e[1],i[1],.001)}function Mz(t){return Array.isArray(t)&&t.every(zS)&&t.every(N8)}function uj(t){if(t===null)return!0;if(!Bt(t)||t.type==null)return!1;const{type:e,coordinates:i}=t;switch(e){case"GeometryCollection":return Array.isArray(t.geometries)&&t.geometries.every(uj);case"MultiPolygon":return Array.isArray(i)&&i.every(Mz);case"Polygon":return Mz(i);case"MultiLineString":return Array.isArray(i)&&i.every(zS);case"LineString":return zS(i);case"MultiPoint":return zS(i);case"Point":return hj(i);default:return!1}}function T8(t){return Bt(t)&&t.type==="Feature"&&uj(t.geometry)}function L8(t){return Bt(t)&&t.type==="FeatureCollection"&&Array.isArray(t.features)&&t.features.every(T8)}var dj=xe(L8,"a GeoJSON object"),pj=class{constructor(t,e,i){this._vertexCount=0,this._edgeCount=0,this.pendingProcessingEdgesFrom=[],this.pendingProcessingEdgesTo=[],this.cachedNeighboursEdge=t,this.processedEdge=e,this.singleValueEdges=i}clear(){this._vertexCount=0,this._edgeCount=0,this.pendingProcessingEdgesFrom=[],this.pendingProcessingEdgesTo=[],this.singleValueEdges?.clear()}getVertexCount(){return this._vertexCount}getEdgeCount(){return this._edgeCount}addVertex(t){const e=new gj(t);return this._vertexCount++,e}addEdge(t,e,i){i===this.cachedNeighboursEdge?t.updateCachedNeighbours().set(e.value,e):i===this.processedEdge&&(this.pendingProcessingEdgesFrom.push(t),this.pendingProcessingEdgesTo.push(e));const{edges:n}=t,s=n.get(i);s?s.includes(e)||(this.singleValueEdges?.has(i)?n.set(i,[e]):(s.push(e),this._edgeCount++)):(n.set(i,[e]),this._edgeCount++)}removeVertex(t){this._vertexCount--;const e=t.edges;if(e){for(const[,i]of e)this._vertexCount-=i.length;t.clear()}}removeEdge(t,e,i){const n=t.edges.get(i);if(!n)return;const s=n.indexOf(e);s!==-1&&(n.splice(s,1),n.length===0&&t.edges.delete(i),this._edgeCount--,i===this.cachedNeighboursEdge&&t.readCachedNeighbours()?.delete(e.value))}removeEdges(t,e){t.edges.delete(e)}getVertexValue(t){return t.value}*neighbours(t){for(const[,e]of t.edges)for(const i of e)yield i}*neighboursAndEdges(t){for(const[e,i]of t.edges)for(const n of i)yield[n,e]}neighboursWithEdgeValue(t,e){return t.edges.get(e)}findNeighbour(t,e){return t.edges.get(e)?.[0]}findNeighbourValue(t,e){const i=this.findNeighbour(t,e);if(i)return this.getVertexValue(i)}findNeighbourWithValue(t,e,i){const n=i==null?this.neighbours(t):this.neighboursWithEdgeValue(t,i);if(n){for(const s of n)if(this.getVertexValue(s)===e)return s}}findVertexAlongEdge(t,e,i){if(i===this.cachedNeighboursEdge){let s;for(const a of e)if(s=(s??t).readCachedNeighbours()?.get(a),!s)return;return s}if(e.length===0)return;let n=t;for(const s of e){const a=n?this.neighboursWithEdgeValue(n,i):void 0;if(!a)return;n=a.find(o=>o.value===s)}return n}adjacent(t,e){for(const[,i]of t.edges)if(i.includes(e))return!0;return!1}},gj=class{constructor(t){this.value=t,this.edges=new Map}readCachedNeighbours(){return this._cachedNeighbours}updateCachedNeighbours(){return this._cachedNeighbours??(this._cachedNeighbours=new Map),this._cachedNeighbours}clear(){this.edges.clear(),this._cachedNeighbours?.clear()}},lN="class-instance";function or(t,e,i){if(qt(e)){if(!qt(t)||t.length!==e.length||e.some((n,s)=>or(t[s],n,i)!=null))return e}else if(Ie(e)){if(!Ie(t))return e;const n={},s=new Set([...Object.keys(t),...Object.keys(e)]);for(const a of s)if(t[a]!==e[a])if(i?.has(a))n[a]=e[a];else if(typeof t[a]==typeof e[a]){const o=or(t[a],e[a],i);o!==null&&(n[a]=o)}else n[a]=e[a];return Object.keys(n).length?n:null}else if(t!==e)return e;return null}function fj(t,e){for(const i of Object.keys(t))if(t[i]!==e?.[i])return!1;return!0}function le(t,e){return qt(t)?O8(t,e):Ie(t)?E8(t,e):t instanceof Map?new Map(le(Array.from(t))):Gd(t)}function O8(t,e){const i=[],n=e?.seen;for(const s of t){if(typeof s=="object"&&n?.includes(s)){cl("cycle detected in array",s);continue}n?.push(s),i.push(le(s,e)),n?.pop()}return i}function E8(t,e){const i={};for(const n of Object.keys(t))e?.assign?.has(n)?i[n]=t[n]:e?.shallow?.has(n)?i[n]=Gd(t[n]):i[n]=le(t[n],e);return i}function Gd(t){return qt(t)?t.slice(0):Ie(t)?{...t}:aa(t)?new Date(t):r4(t)?new RegExp(t.source,t.flags):t}function Ic(t,e,i,n,s,a){if(qt(t)){a=e(t,n,s,a);let o=0;for(const r of t)a=Ic(r,e,i,n?.[o],s,a),o++}else if(Ie(t)){a=e(t,n,s,a);for(const o of Object.keys(t)){if(i?.has(o))continue;const r=t[o];a=Ic(r,e,i,n?.[o],s,a)}}return a}function fb(t,e,i={}){const{path:n,matcherPath:s=n?.replace(/(\[[0-9+]+])/i,"[]"),skip:a=[]}=i;if(t==null)throw new Error(`AG Charts - target is uninitialised: ${n??""}`);if(e==null)return t;if(of(t))return t.set(e);const o=t,r=gC(t);for(const l of Object.keys(e)){if(P1.has(l))continue;const c=`${s?s+".":""}${l}`;if(a.includes(c))continue;const u=e[l],d=`${n?n+".":""}${l}`,g=o.constructor,f=o[l];try{const y=gC(f),x=gC(u);if(r===lN&&!(l in t||l==="context")){if(u===void 0)continue;cl(`unable to set [${d}] in ${g?.name} - property is unknown`);continue}if(y!=null&&x!=null&&x!==y&&(y!==lN||x!=="object")){cl(`unable to set [${d}] in ${g?.name} - can't apply type of [${x}], allowed types are: [${y}]`);continue}if(of(f))u===void 0?f.clear():f.set(u);else if(x==="object"&&l!=="context"){if(!(l in o)){cl(`unable to set [${d}] in ${g?.name} - property is unknown`);continue}f==null?o[l]=u:fb(f,u,{...i,path:d,matcherPath:c})}else o[l]=u}catch(y){cl(`unable to set [${d}] in [${g?.name}]; nested error is: ${y.message}`)}}return t}function gC(t){return t==null?null:x1(t)||aa(t)?"primitive":qt(t)?"array":Bt(t)?Ie(t)?"object":lN:Cl(t)?"function":"primitive"}function Qe(t,e,i,n){return t.addEventListener(e,i,n),()=>t.removeEventListener(e,i,n)}function rT(t,e,i){return Qe(t,"keydown",n=>{const s=i?.()??["Escape"];AD(n,...s)&&e(n)})}function mj(t,e){const i=t.ownerDocument.defaultView,n=Qe(i,"mousedown",s=>{[0,2].includes(s.button)&&!bj(t,s)&&(e(),n())});return n}function yj(t,e){const i=t.ownerDocument.defaultView,n=Qe(i,"touchstart",s=>{Array.from(s.targetTouches).some(o=>!bj(t,o))&&(e(),n())});return n}function bj(t,e){return m1(e.target)&&e.target.shadowRoot!=null?!0:JS(e.target)&&t.contains(e.target)}function xj(t,e,i){const n=s=>{for(const a of e)ye(a,"data-focus-visible-override",s)};return n(i),Qe(t,"keydown",()=>n(!0),{once:!0})}function Nx(t){return!(t.shiftKey||t.altKey||t.ctrlKey||t.metaKey)}function AD(t,...e){return Nx(t)&&e.includes(t.key)}function Dz(t,e,i){return Qe(t,"keydown",n=>{AD(n,i)&&e.focus()})}var R8={horizontal:{nextKey:"ArrowRight",prevKey:"ArrowLeft"},vertical:{nextKey:"ArrowDown",prevKey:"ArrowUp"}},P8={nextKey:"ArrowLeft",prevKey:"ArrowRight"};function mb(t,e){return e&&t==="horizontal"?P8:R8[t]}function cN(t){const{orientation:e,buttons:i,wrapAround:n=!1,onEscape:s,onFocus:a,onBlur:o}=t,{nextKey:r,prevKey:l}=mb(e,ff(i[0])),c=f=>{if(f.target&&"tabIndex"in f.target){for(const y of i)y.tabIndex=-1;f.target.tabIndex=0}},[u,d]=n?[i.length,i.length]:[0,1/0],g=new qe;for(let f=0;f{AD(D,r,l)&&D.preventDefault()})),x.tabIndex=f===0?0:-1}return g}function z8(t,e){return i=>{if(t.ariaDisabled==="true")return i.preventDefault();e(i)}}function lT(t){return"button"in t?t.button===0:Nx(t)&&(t.code==="Space"||t.key==="Enter")}function cT(t){const e=t?.target;if(m1(e)&&"tabindex"in e.attributes)return e}function vj(t){return Qe(t,"keydown",e=>{if(e.defaultPrevented)return;Jd(e.target,"data-preventdefault",!0)&&AD(e,"ArrowRight","ArrowLeft","ArrowDown","ArrowUp")&&e.preventDefault()})}var hN=new Map,Sj=1;function B8(){hN.clear(),Sj=1}function Nn(t){const e=t.constructor;let i=Object.hasOwn(e,"className")?e.className:e.name;QH(()=>{if(!i)throw new Error(`The ${String(e)} is missing the 'className' property.`)}),i??(i="Unknown");const n=(hN.get(i)??0)+1;return hN.set(i,n),`${i}-${n}`}function lu(){return`ag-charts-${Sj++}`}function yb(){return crypto.randomUUID?.()??V8()}function V8(){const t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e="";for(let i=0;i0)n={value:a,next:n},s=n;else{for(s=s;s.next!=null&&i(s.next.value,a)<=0;)s=s.next;s.next={value:a,next:s.next}}return n}var Oy=new WeakMap;function Wf(t,e){const i=JSON.stringify(t,null,0);return Oy.has(e)||Oy.set(e,new Map),Oy.get(e)?.has(i)||Oy.get(e)?.set(i,e(t)),Oy.get(e)?.get(i)}var fC=class{constructor(){this.weak=new WeakMap,this.strong=new Map,this.set=!1,this.value=void 0}};function Pu(t,e){let i=new fC;const n=(...s)=>{let a=i;for(const o of s){const r=typeof o=="object"||typeof o=="symbol"?a.weak:a.strong;let l=r.get(o);l==null&&(l=new fC,r.set(o,l)),a=l}if(a.set)return e?.("hit",t,s),a.value;{const o=t(...s);return a.set=!0,a.value=o,e?.("miss",t,s),o}};return n.reset=()=>{i=new fC},n}function xs(t,e){const i=new Map,n=(...o)=>o.map(r=>typeof r=="object"||typeof r=="symbol"?r:(i.has(r)||i.set(r,{v:r}),i.get(r))),s={},a=new WeakMap;return(...o)=>{const r=o.length===0?[s]:n(...o);let l=a;for(const d of r.slice(0,-1))l.has(d)||l.set(d,new WeakMap),l=l.get(d);const c=r.at(-1);let u=l.get(c);return u?e?.("hit",t,o):(u=t(...o),l.set(c,u),e?.("miss",t,o)),u}}function Tx(t,e,i,n=1/0){const s={nearest:void 0,distanceSquared:n};for(const a of i){const o=a.distanceSquared(t,e);if(o===0)return{nearest:a,distanceSquared:0};o{})}function uN(t,e){const i=ru(e);if(i.length===0)return;const n=F4(t);for(const s of i)s in n&&(e[s]=n[s])}var Dj=class{transitionRoot(t,e){this.parent?this.parent.transitionRoot(t,e):this.transition(t,e)}},dT=class Da extends Dj{constructor(e,i,n){super(),this.defaultState=e,this.states=i,this.enterEach=n,this.debug=qH(!0,"animation"),this.state=e,this.debug(`%c${this.constructor.name} | init -> ${e}`,mC)}transition(e,i){if(!this.transitionChild(e,i)||this.state===Da.child||this.state===Da.parent)return;const s=this.state,a=this.states[this.state];let o=a[e];const r=`%c${this.constructor.name} | ${this.state} -> ${e} ->`;if(Array.isArray(o))o=o.find(u=>{if(!u.guard)return!0;const d=u.guard(i);return d||this.debug(`${r} (guarded)`,u.target,yC),d});else if(typeof o=="object"&&!(o instanceof Da)&&o.guard&&!o.guard(i)){this.debug(`${r} (guarded)`,o.target,yC);return}if(!o){this.debug(`${r} ${this.state}`,yC);return}const l=this.getDestinationState(o),c=l===this.state?void 0:a.onExit;this.debug(`${r} ${l}`,mC),this.state=l,typeof o=="function"?o(i):typeof o=="object"&&!(o instanceof Da)&&o.action?.(i),c?.(),this.enterEach?.(s,l),l!==s&&l!==Da.child&&l!==Da.parent&&this.states[l].onEnter?.(s,i)}transitionAsync(e,i){setTimeout(()=>{this.transition(e,i)},0)}is(e){return this.state===Da.child&&this.childState?this.childState.is(e):this.state===e}resetHierarchy(){this.debug(`%c${this.constructor.name} | ${this.state} -> [resetHierarchy] -> ${this.defaultState}`,"color: green"),this.state=this.defaultState}transitionChild(e,i){return this.state!==Da.child||!this.childState||(uN(this,this.childState),this.childState.transition(e,i),!this.childState.is(Da.parent))?!0:(this.debug(`%c${this.constructor.name} | ${this.state} -> ${e} -> ${this.defaultState}`,mC),this.state=this.defaultState,this.states[this.state].onEnter?.(),this.childState.resetHierarchy(),!1)}getDestinationState(e){let i=this.state;return typeof e=="string"?i=e:e instanceof Da?(this.childState=e,this.childState.parent=this,i=Da.child):typeof e=="object"&&(e.target instanceof Da?(this.childState=e.target,this.childState.parent=this,i=Da.child):e.target!=null&&(i=e.target)),i}};dT.child="__child";dT.parent="__parent";var Rt=dT,Aj=class extends Dj{constructor(...t){super(),this.stateMachines=t;for(const e of t)e.parent=this}transition(t,e){for(const i of this.stateMachines)uN(this,i),i.transition(t,e)}transitionAsync(t,e){for(const i of this.stateMachines)uN(this,i),i.transitionAsync(t,e)}},pT=class{constructor(t,e){this.ctx=t,this.measureTextCached=e,this.baselineMap=new Map,this.charMap=new Map,this.lineHeightCache=null}baselineDistance(t){if(t==="alphabetic")return 0;if(this.baselineMap.has(t))return this.baselineMap.get(t);this.ctx.textBaseline=t;const{alphabeticBaseline:e}=this.ctx.measureText("");return this.baselineMap.set(t,e),this.ctx.textBaseline="alphabetic",e}lineHeight(){return this.lineHeightCache??(this.lineHeightCache=this.measureText("").height),this.lineHeightCache}measureText(t){const e=this.measureTextCached?.(t)??this.ctx.measureText(t),{width:i,fontBoundingBoxAscent:n=e.emHeightAscent,fontBoundingBoxDescent:s=e.emHeightDescent}=e,a=n+s;return{width:i,height:a,ascent:n,descent:s}}measureLines(t){const e=typeof t=="string"?t.split(au):t;let i=0,n=0;const s=e.map(a=>{const o=this.measureText(a);return i1?this.ctx.measureText(t).width:this.charMap.get(t)??this.charWidth(t)}charWidth(t){const{width:e}=this.ctx.measureText(t);return this.charMap.set(t,e),e}},dN=new XM(50);function Ve(t){typeof t=="object"&&(t=v1(t));let e=dN.get(t);if(e)return e;const i=new XM(1e4),n=aj();return n.font=t,e=new pT(n,s=>{let a=i.get(s);return a||(a=n.measureText(s),i.set(s,a),a)}),dN.set(t,e),e}Ve.clear=()=>dN.clear();function Va(t,e){let i={segments:[],width:0,height:0,ascent:0,descent:0};const n=[i];for(const o of t){const{text:r,fontSize:l=e.fontSize,fontStyle:c=e.fontStyle,fontWeight:u=e.fontWeight,fontFamily:d=e.fontFamily,...g}=o,f={fontSize:l,fontStyle:c,fontWeight:u,fontFamily:d},y=Ve(f),x=bi(r).split(au);for(let S=0;S0&&(i={segments:[],width:0,height:0,ascent:0,descent:0},n.push(i)),D&&(i.width+=A.width,i.ascent=Math.max(i.ascent,A.ascent),i.descent=Math.max(i.descent,A.descent),i.height=Math.max(i.height,i.ascent+i.descent),i.segments.push({...f,...g,text:D,textMetrics:A}))}}let s=0,a=0;for(const o of n)s=Math.max(s,o.width),a+=o.height;return{width:s,height:a,lineMetrics:n}}function $t(t,e,i){const n=bp().createElement(t);if(typeof e=="object"&&(i=e,e=void 0),e)for(const s of e.split(" "))n.classList.add(s);return i&&Object.assign(n.style,i),n}function $i(t){return bp().createElementNS("http://www.w3.org/2000/svg",t)}function Ij(t,e){const i=bp("body"),n=$t("a",{display:"none"});n.href=t,n.download=e,i.appendChild(n),n.click(),setTimeout(()=>n.remove())}function Az(t,e){return e.overflow==="hide"&&t.some(wu)}function Lx(t,e){return qt(t)?gT(t,e):Ox(bi(t),e).join(` +`)}function kc(t,e){return Ox(t,e).join(` +`)}function Ox(t,e){return BS(t,e)}function tp(t,e,i,n){const s=e.textWidth(Ff),a=Sc(t);let o=0,r=0;for(const c of a){const u=e.textWidth(c);if(o+u>i)break;o+=u,r+=c.length}if(r===t.length&&(!n||o+s<=i))return n?qw(t):t;t=t.slice(0,r).trimEnd();const l=Sc(t);for(;l.length&&e.textWidth(t)+s>i;){for(l.pop();l.length&&l.at(-1).trim()==="";)l.pop();t=l.join("")}return qw(t)}function BS(t,e,i=0){const n=t.split(au),s=Ve(e.font),a=[];if(e.textWrap==="never"){for(const c of n){const u=tp(c.trimEnd(),s,Math.max(0,e.maxWidth-i));if(!u)break;a.push(u),i=0}return Az(a,e)?[]:a}const o=e.textWrap==="hyphenate",r=e.textWrap==null||e.textWrap==="on-space";for(const c of n){let u=c.trimEnd();if(u===""){a.push(u);continue}let d=Sc(u),g=0,f=0,y=0,x=0;for(a.length||(y=i);ge.maxWidth){if(g===0){u="";break}let D=s.textWidth(u.slice(0,f+S.length));if(a.length||(D+=i),D<=e.maxWidth){y=D,f+=S.length,g++;continue}if(x){const N=_8(u,x+1),O=s.textWidth(N);if(O<=e.maxWidth){a.push(u.slice(0,x).trimEnd()),u=u.slice(x).trimStart(),d=Sc(u),g=0,f=0,y=0,x=0;continue}else r&&O>e.maxWidth&&a.push(u.slice(0,x).trimEnd(),tp(u.slice(x).trimStart(),s,e.maxWidth,!0))}else if(r){const N=tp(u,s,e.maxWidth,!0);N&&a.push(N)}if(r){u="";break}const A=o?"-":"";let I=u.slice(0,f).trim();const w=Sc(I);for(;w.length&&s.textWidth(I+A)>e.maxWidth;){for(w.pop();w.length&&w.at(-1).trim()==="";)w.pop();I=w.join("")}if(I&&I!==Rb)a.push(S1(I)+A);else{u="";break}u=u.slice(I.length).trimStart(),d=Sc(u),g=0,f=0,y=0,x=0;continue}f+=S.length,g++}u&&a.push(u)}F8(a,s,e);const l=kj(a,s,e);return Az(l,e)?[]:l}function _8(t,e){const i=t.indexOf(" ",e);return i===-1?t.slice(e):t.slice(e,i)}function kj(t,e,i){if(!Ae(i.maxHeight))return t;const{height:n,lineMetrics:s}=e.measureLines(t);if(n<=i.maxHeight)return t;for(let a=0,o=0;ai.maxHeight){if(i.overflow==="hide"||a===0)return[];const r=t.slice(0,a),l=r.pop();return r.concat(wu(l)?l:tp(l,e,i.maxWidth,!0))}return t}function F8(t,e,i){if(i.avoidOrphans===!1||t.length<2)return;const{length:n}=t,s=t[n-1],a=t[n-2];if(Sc(a).lengthi){n.length&&o();break}if(s+r<=e.maxWidth){s+=r,a+=l,n.push(...c);continue}for(const u of c){if(s+u.textMetrics.width<=e.maxWidth){s+=u.textMetrics.width,n.push(u);continue}const d=Ve(u),g=c4(u.text),f={...e,font:u,maxHeight:i-a};let y=BS(g,{...f,overflow:"hide"},s);if(y.length===0)if(e.textWrap==="never")y=BS(g,f,s);else{y=BS(g,f);const D=n.at(-1);D&&(D.text+=` +`,s=0)}if(y.length===0){o();break}const x=y.findIndex(wu);x!==-1&&(y=y.slice(0,x+1));const S=y.at(-1);for(const D of y){const A=h4(D),I=d.measureText(A),w={...u,text:A,textMetrics:I};D===S?s+=I.width:(w.text+=` +`,s=0),a+=I.height,n.push(w)}if(x!==-1)break}}return n}function pM(t,[e,i],[n,s]){const a=s-n,o=i-e,r=e+o*t[0],l=e+o*t[1];return[(r-n)/a,(l-n)/a]}var rf=1e3,tu=rf*60,ep=tu*60,op=ep*24,Cj=op*7,fT=op*30,Kb=op*365,Tg=new Date().getTimezoneOffset()*tu,Kf={millisecond:{milliseconds:1,hierarchy:"day",encode(t){return t.getTime()},decode(t){return new Date(t)}},second:{milliseconds:rf,hierarchy:"day",encode(t,e){const i=e?0:Tg;return Math.floor((t.getTime()-i)/rf)},decode(t,e){const i=e?0:Tg;return new Date(i+t*rf)}},minute:{milliseconds:tu,hierarchy:"day",encode(t,e){const i=e?0:Tg;return Math.floor((t.getTime()-i)/tu)},decode(t,e){const i=e?0:Tg;return new Date(i+t*tu)}},hour:{milliseconds:ep,hierarchy:"day",encode(t,e){const i=e?0:Tg;return Math.floor((t.getTime()-i)/ep)},decode(t,e){const i=e?0:Tg;return new Date(i+t*ep)}},day:{milliseconds:op,hierarchy:"month",encode(t,e){const i=e?0:t.getTimezoneOffset()*tu;return Math.floor((t.getTime()-i)/op)},decode(t,e){let i;return e?(i=new Date(0),i.setUTCDate(i.getUTCDate()+t),i.setUTCHours(0,0,0,0)):(i=new Date(1970,0,1),i.setDate(i.getDate()+t)),i}},month:{milliseconds:fT,hierarchy:"year",encode(t,e){return e?t.getUTCFullYear()*12+t.getUTCMonth():t.getFullYear()*12+t.getMonth()},decode(t,e){if(e){const i=Math.floor(t/12),n=t-i*12;return new Date(Date.UTC(i,n,1))}else{const i=Math.floor(t/12),n=t-i*12;return new Date(i,n,1)}}},year:{milliseconds:Kb,hierarchy:void 0,encode(t,e){return e?t.getUTCFullYear():t.getFullYear()},decode(t,e){let i;return e?(i=new Date,i.setUTCFullYear(t),i.setUTCMonth(0,1),i.setUTCHours(0,0,0,0)):i=new Date(t,0,1,0,0,0,0),i}}};function Yf(t){return typeof t=="string"?{unit:t,step:1,epoch:void 0,utc:!1}:{unit:t.unit,step:t.step??1,epoch:t.epoch,utc:t.utc??!1}}function Ex(t,e,i,n){if(i==null)return 0;const s=Kf[t];return Math.floor(s.encode(new Date(i),n))%e}function Sf(t,e,i,n,s){const a=Kf[e];return Math.floor((a.encode(new Date(t),n)-s)/i)}function $f(t,e,i,n,s){return Kf[e].decode(t*i+s,n)}function gM(t,e,i,n,s){const a=new Date(t),o=Sf(a,e,i,n,s);return $f(o,e,i,n,s)}function fM(t,e,i,n,s){const a=new Date(Number(t)-1),o=Sf(a,e,i,n,s);return $f(o+1,e,i,n,s)}function La(t,e){const{unit:i,step:n,epoch:s,utc:a}=Yf(t),o=Ex(i,n,s,a);return gM(e,i,n,a,o)}function wj(t,e){const{unit:i,step:n,epoch:s,utc:a}=Yf(t),o=Ex(i,n,s,a);return fM(e,i,n,a,o)}function Nj(t,e){const{unit:i,step:n,epoch:s,utc:a}=Yf(t),o=Ex(i,n,s,a);return $f(Sf(fM(e,i,n,a,o),i,n,a,o)-1,i,n,a,o)}function mT(t,e){const{unit:i,step:n,epoch:s,utc:a}=Yf(t),o=Ex(i,n,s,a);return $f(Sf(gM(e,i,n,a,o),i,n,a,o)+1,i,n,a,o)}function yT(t,e,i){if(t.valueOf()>e.valueOf()&&([t,e]=[e,t],i!=null&&(i=[1-i[1],1-i[0]])),i!=null){const n=e.valueOf()-t.valueOf(),s=t.valueOf();t=new Date(s+i[0]*n),e=new Date(s+i[1]*n)}return[new Date(t),new Date(e)]}function Yb(t,e,i,{extend:n=!1,visibleRange:s=[0,1],limit:a,defaultAlignment:o="start"}={}){const r=Yf(t),{unit:l,step:c,utc:u}=r;let d;r.epoch!=null?d=r.epoch:o==="interval"?d=void 0:e.valueOf()>i.valueOf()?d=i:d=e;const g=Ex(r.unit,r.step,d,r.utc);let[f,y]=yT(e,i,s);f=n?gM(f,l,c,u,g):fM(f,l,c,u,g),y=n?fM(y,l,c,u,g):gM(y,l,c,u,g);const x=Sf(f,l,c,u,g);let S=Sf(y,l,c,u,g);return a!=null&&S-x>a&&(S=x+a),{range:[x,S],unit:l,step:c,utc:u,offset:g}}function mM(t,e,i,n){const{range:[s,a]}=Yb(t,e,i,n);return Math.abs(a-s)}function fo(t,e,i,n){const{range:[s,a],unit:o,step:r,utc:l,offset:c}=Yb(t,e,i,n),u=[];for(let d=s;d<=a;d+=1){const g=$f(d,o,r,l,c);u.push(g)}return u}function Tj(t,e,i,n){const{range:[s,a],unit:o,step:r,utc:l,offset:c}=Yb(t,e,i,n),u=Math.max(0,a-s+1),d=new Array(u);for(let g=0;g0?1:-1))}else if(n.setMonth(t.getMonth()+e),e!==0)for(;n.getMonth()===t.getMonth();)n.setDate(n.getDate()+(e>0?1:-1));return n}},year:{adjust(t,e,i){const n=new Date(t.getTime());return i?n.setUTCFullYear(t.getUTCFullYear()+e):n.setFullYear(t.getFullYear()+e),n}}};function Oj(t,e){const{unit:i,step:n,utc:s}=Yf(t);return U8[i].adjust(e,-n,s)}function Er(t){return typeof t=="string"?t:t.unit}function Al(t){return typeof t=="string"?1:t.step??1}function rp(t){return typeof t=="string"?void 0:t.epoch}function Rx(t){return Kf[Er(t)].hierarchy}function Ms(t){return Al(t)*Kf[Er(t)].milliseconds}var Ej=["millisecond","second","minute","hour","day","month","year"];function Rj(t){return Ie(t)?"unit"in t&&Ej.includes(t.unit):!1}function Pj(t){return zi(t)&&Ej.includes(t)}var ji=(t,e)=>({duration:Ms(t)*e,timeInterval:t,step:e}),yM=[ji({unit:"second"},1),ji({unit:"second"},5),ji({unit:"second"},15),ji({unit:"second"},30),ji({unit:"minute"},1),ji({unit:"minute"},5),ji({unit:"minute"},15),ji({unit:"minute"},30),ji({unit:"hour"},1),ji({unit:"hour"},3),ji({unit:"hour"},6),ji({unit:"hour"},12),ji({unit:"day"},1),ji({unit:"day"},2),ji({unit:"day",step:7},1),ji({unit:"day",step:7},2),ji({unit:"day",step:7},3),ji({unit:"month"},1),ji({unit:"month"},2),ji({unit:"month"},3),ji({unit:"month"},4),ji({unit:"month"},6),ji({unit:"year"},1)],zj=[1,2,5,10];function Iz(t,e){return Math.abs(Math.round(t)-t)=i?Math.abs(e-t)/i+1:1}function Xf(t,e,i,n,s,a){if(t===e)return{ticks:[t],count:1,firstTickIndex:0};if(i<2)return{ticks:[t,e],count:2,firstTickIndex:0};const o=Mf(t,e,i,n,s);if(!Number.isFinite(o))return{ticks:[],count:0,firstTickIndex:void 0};let r=t,l=e;Iz(r/o,1e-12)||(r=Math.ceil(r/o)*o),Iz(l/o,1e-12)||(l=Math.floor(l/o)*o),a!=null&&(a=pM(a,[t,e],[r,l]));const{ticks:c}=Df(r,l,o,a),u=c.at(0);return{ticks:c,count:Bj(r,l,o),firstTickIndex:u==null?void 0:Math.round((u-r)/o)}}var W8=Math.floor(2*Cj/fT*10)/10;function kz({timeInterval:t,step:e}){const i=Ms(t)*e,n=Rx(t),s=n?Ms(n):void 0;return i<=(s??1/0)*W8}function xT(t,{weekStart:e}){if(t.unit==="day"&&t.step===7)return e}function Px(t,e,i,n,s,{weekStart:a,primaryOnly:o=!1,targetInterval:r}){if(i<=0)return;const l=r??Math.abs(e-t)/Math.max(i,1),c=yM.findLast(f=>(!o||kz(f))&&l>f.duration),u=yM.find(f=>(!o||kz(f))&&l<=f.duration);if(c==null)return{unit:"millisecond",step:Math.max(Mf(t,e,i,n,s),1)};if(u==null)return{unit:"year",step:r==null?Mf(t/Kb,e/Kb,i,n,s):1};const{timeInterval:d,step:g}=l-c.duration=n&&d<=s;if(c&&!g)continue;const f=Math.abs(d-i);(l>f||c!==g)&&(c||(c=g),l=f,r=u)}return r*o}function Cz(t){for(let e=t.length-1;e>=0;e-=1)if(t[e]!=="0")return e+1;return 0}function vT(t,e){const i=iD(e??",f");if(i==null)return;(i.precision==null||Number.isNaN(i.precision))&&(!i.type||"eEFgGnprs".includes(i.type)?i.precision=Math.max(...t.map(s=>{if(!Number.isFinite(s))return 0;const[a,o]=s.toExponential((i.type?6:12)-1).split(/[.e]/g);return(a!=="1"&&a!=="-1"?1:0)+Cz(o)+1})):"f%".includes(i.type)&&(i.precision=Math.max(...t.map(s=>{if(!Number.isFinite(s)||s===0)return 0;const a=Math.floor(Math.log10(Math.abs(s))),o=i.type?6:12,r=s.toExponential(o-1).split(/[.e]/g)[1],l=Cz(r);return Math.max(0,l-a)}))));const n=C1(i);return s=>n(Number(s))}function Df(t,e,i,n){if(!Number.isFinite(i)||i<=0)return{ticks:[],count:0,firstTickIndex:void 0};if(t===e)return{ticks:[t],count:1,firstTickIndex:0};const s=10**Hf(i),a=Math.min(t,e),o=Math.max(t,e);let r,l;if(n!=null&&(n[0]!==0||n[1]!==1)){const d=e-t,g=t+d*n[0],f=e-d*(1-n[1]);r=Math.min(g,f),l=Math.max(g,f)}else r=a,l=o;r=Math.floor(r*s)/s,l=Math.ceil(l*s)/s;const c=[];for(let d=0;;d+=1){const g=Math.round((a+i*d)*s)/s;if(g>o)break;g>=r&&g<=l&&c.push(g)}const u=c.at(0);return{ticks:c,count:Bj(a,o,i),firstTickIndex:u==null?void 0:Math.round((u-a)/i)}}function lp(t,e){return t>=e?(uo("the configured interval results in more than 1 item per pixel, ignoring. Supply a larger interval or omit this configuration"),!0):!1}function ST(t,e){const i=Math.abs(e-t),n=10**Math.floor(Math.log10(i));let s=1/0,a=[t,e];for(const o of zj){const r=o*n,l=Math.floor(t/r)*r,c=Math.ceil(e/r)*r,u=1-i/Math.abs(c-l);s>u&&(s=u,a=[l,c])}return a}function MT(t,e,i,n,s,a){if(t<=0)return{minTickCount:0,maxTickCount:0,tickCount:0};a=Math.max(a,t/(s+1)),i??(i=a),n??(n=t),i>n&&(i===a?i=n:n=i),i=Math.max(i,1);const o=Math.max(1,Math.floor(t/(e*i))),r=Math.min(o,Math.ceil(t/(e*n))),l=Nt(r,Math.floor(s/e),o);return{minTickCount:r,maxTickCount:o,tickCount:l}}function Ss(t){return t instanceof Date?t.getTime():t}function zx(t){return t{const i=t.get(e);return i?(t.set(e,i+1),`${e}_${i}`):(t.set(e,1),e)}}function DT(t){return t!=null&&Object.hasOwn(t,"toString")&&zi(t.toString())}function Vj(t){return t!=null&&Object.hasOwn(t,"valueOf")&&Ae(t.valueOf())}function Af(t){return Ae(t)||Ac(t)||Vj(t)}function _j(t,e){return t!=null&&(!e||Af(t))}function bM(t){return DT(t)&&Object.hasOwn(t,"id")?t.id:t}function pN(t){return DT(t)&&Object.hasOwn(t,"value")?t.value:t}var at={};Vf(at,{add:()=>K8,angle:()=>q8,apply:()=>o9,distance:()=>$8,distanceSquared:()=>X8,equal:()=>s9,from:()=>a9,gradient:()=>J8,intercept:()=>t9,intersectAtX:()=>i9,intersectAtY:()=>e9,length:()=>wD,lengthSquared:()=>Fj,multiply:()=>Y8,normalized:()=>Z8,origin:()=>Hj,required:()=>r9,rotate:()=>Q8,round:()=>n9,sub:()=>AT});function K8(t,e){return typeof e=="number"?{x:t.x+e,y:t.y+e}:{x:t.x+e.x,y:t.y+e.y}}function AT(t,e){return typeof e=="number"?{x:t.x-e,y:t.y-e}:{x:t.x-e.x,y:t.y-e.y}}function Y8(t,e){return typeof e=="number"?{x:t.x*e,y:t.y*e}:{x:t.x*e.x,y:t.y*e.y}}function wD(t){return Math.hypot(t.x,t.y)}function Fj(t){return t.x*t.x+t.y*t.y}function $8(t,e){return wD(AT(t,e))}function X8(t,e){return Fj(AT(t,e))}function Z8(t){const e=wD(t);return{x:t.x/e,y:t.y/e}}function q8(t,e){return e==null?Math.atan2(t.y,t.x):Math.atan2(t.y,t.x)-Math.atan2(e.y,e.x)}function Q8(t,e,i=Hj()){const n=wD(t);return{x:i.x+n*Math.cos(e),y:i.y+n*Math.sin(e)}}function J8(t,e,i){const n=e.x-t.x;return(i==null?e.y-t.y:i-e.y-(i-t.y))/n}function t9(t,e,i){return(i==null?t.y:i-t.y)-e*t.x}function e9(t,e,i=0,n){return{x:t===1/0?1/0:(i-e)/t,y:n==null?i:n-i}}function i9(t,e,i=0,n){const s=t===1/0?1/0:t*i+e;return{x:i,y:n==null?s:n-s}}function n9(t,e=2){return{x:_b(t.x,e),y:_b(t.y,e)}}function s9(t,e){return t.x===e.x&&t.y===e.y}function a9(t,e){if(typeof t=="number")return{x:t,y:e};if("currentX"in t)return{x:t.currentX,y:t.currentY};if("offsetWidth"in t)return{x:t.offsetWidth,y:t.offsetHeight};if("width"in t)return[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y+t.height}];if("x1"in t)return[{x:t.x1,y:t.y1},{x:t.x2,y:t.y2}];throw new Error(`Values can not be converted into a vector: [${JSON.stringify(t)}] [${e}]`)}function o9(t,e){return t.x=e.x,t.y=e.y,t}function r9(t){return{x:t?.x??0,y:t?.y??0}}function Hj(){return{x:0,y:0}}var Wt={};Vf(Wt,{bottomCenter:()=>d9,center:()=>u9,clone:()=>m9,collides:()=>y9,end:()=>c9,from:()=>b9,height:()=>g9,normalise:()=>xM,origin:()=>x9,round:()=>f9,start:()=>l9,topCenter:()=>h9,width:()=>p9});function l9(t){return{x:t.x1,y:t.y1}}function c9(t){return{x:t.x2,y:t.y2}}function h9(t){return{x:(t.x1+t.x2)/2,y:Math.min(t.y1,t.y2)}}function u9(t){return{x:(t.x1+t.x2)/2,y:(t.y1+t.y2)/2}}function d9(t){return{x:(t.x1+t.x2)/2,y:Math.max(t.y1,t.y2)}}function p9(t){return Math.abs(t.x2-t.x1)}function g9(t){return Math.abs(t.y2-t.y1)}function f9(t){return{x1:Math.round(t.x1),y1:Math.round(t.y1),x2:Math.round(t.x2),y2:Math.round(t.y2)}}function m9(t){return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}}function y9(t,e){const i=xM(t),n=xM(e);return i.x1<=n.x2&&i.x2>=n.x1&&i.y1<=n.y2&&i.y2>=n.y1}function xM(t){return{x1:Math.min(t.x1,t.x2),x2:Math.max(t.x1,t.x2),y1:Math.min(t.y1,t.y2),y2:Math.max(t.y1,t.y2)}}function b9(t,e,i,n){if(typeof t=="number")return{x1:t,y1:e,x2:i,y2:n};if("width"in t)return xM({x1:t.x,y1:t.y,x2:t.x+t.width,y2:t.y+t.height});throw new Error(`Values can not be converted into a vector4: [${JSON.stringify(t)}] [${e}] [${i}] [${n}]`)}function x9(){return{x1:0,y1:0,x2:0,y2:0}}function an(t){return Bt(t)&&t.type=="gradient"}function v9(t){return qt(t)&&t.every(an)}function jj(t){return qt(t)&&t.every(e=>typeof e=="string")}function ir(t){return t!==null&&Bt(t)&&t.type=="pattern"}function ml(t){return t!==null&&Bt(t)&&t.type=="image"}function S9(t){return an(t)||ir(t)}function dl(t,e,i,n,s){return(1-s)**3*t+3*(1-s)**2*s*e+3*(1-s)*s**2*i+s**3*n}function vM(t,e,i,n,s){if(s<=Math.min(t,n))return t=Math.max(t,n))return t0&&l<1)return[l]}return[]}const r=a*a-4*s*o;if(r>=0){const l=Math.sqrt(r),c=(-a+l)/(2*s),u=(-a-l)/(2*s);return[c,u].filter(d=>d>0&&d<1)}return[]}function Gj(t,e,i,n,s,a,o,r){const l=wz(t,i,s,o),c=wz(e,n,a,r);return[...l,...c]}function xC(t,e,i){const n=dl(t[0].x,t[1].x,t[2].x,t[3].x,.5),s=dl(t[0].y,t[1].y,t[2].y,t[3].y,.5),a=Math.hypot(n-e,s-i),o=Math.min(Math.hypot(t[0].x-e,t[0].y-i),Math.hypot(t[1].x-e,t[1].y-i),Math.hypot(t[2].x-e,t[2].y-i),Math.hypot(t[3].x-e,t[3].y-i));return{points:t,distance:a,minDistance:o}}function Uj(t,e,i,n,s,a,o,r,l,c,u=1){let g={value:xC([{x:t,y:e},{x:i,y:n},{x:s,y:a},{x:o,y:r}],l,c),next:null},f;for(;g!=null;){const{points:y,distance:x,minDistance:S}=g.value;if(g=g.next,(f==null||xe.minDistance-t.minDistance;function M9({point:t,anchor:e},i,n,s,a){if(t.size===0)return!1;let o=t.x,r=t.y;e!=null&&(o-=(e.x-.5)*t.size,r-=(e.y-.5)*t.size);let l=o;oi+s&&(l=i+s);let c=r;rn+a&&(c=n+a);const u=o-l,d=r-c;return Math.hypot(u,d)<=t.size/2}function Wj(t){return t!=null&&typeof t.point=="object"&&typeof t.label=="object"}var D9={top:{x:0,y:-1},bottom:{x:0,y:1},left:{x:-1,y:0},right:{x:1,y:0},"top-left":{x:-1,y:-1},"top-right":{x:1,y:-1},"bottom-left":{x:-1,y:1},"bottom-right":{x:1,y:1}};function Kj(t,e,i=5){const n=new Map,s=[],a=new Map(Array.from(t.entries(),([r,l])=>[r,l.toSorted((c,u)=>u.point.size-c.point.size)])),o=[...a.values()].flat();for(const[r,l]of a.entries()){const c=[];if(l[0]?.label){for(let u=0,d=l.length;u0&&g.placement!=null){const R=D9[g.placement];w=(D/2+I+i)*R.x,N=(A/2+I+i)*R.y}let O=f.x-D/2+w,L=f.y-A/2+N;if(x&&(O-=(x.x-.5)*f.size,L-=(x.y-.5)*f.size),MD(e,O,L,D,A)&&!o.some(R=>M9(R,O,L,D,A))&&!s.some(R=>iT(R,O,L,D,A))){const R={index:u,text:S,x:O,y:L,width:D,height:A,datum:g};c.push(R),s.push(R)}}n.set(r,c)}}return n}function Tz(t){return t.type==="continuous"||t.type==="log"}function Lz(t){return t.type==="category"}function Au(t){return"variant"in t&&t.variant==="unit-time"}function Oz(t){return!("variant"in t)}function yl(t,e){return t===void 0||e===void 0?t!==void 0||e!==void 0:Tz(t)&&Tz(e)?t.type===e.type&&tr(t.domain,e.domain)&&tr(t.range,e.range):Lz(t)&&Lz(e)?Au(t)&&Au(e)?t.firstBandTime===e.firstBandTime&&t.lastBandTime===e.lastBandTime&&t.bandCount===e.bandCount&&t.intervalMs===e.intervalMs&&t.inset===e.inset&&t.step===e.step:Oz(t)&&Oz(e)?t.inset===e.inset&&t.step===e.step&&tr(t.domain,e.domain):!1:!1}function cp(t){return t==null?!1:t.type==="category"?Au(t)?Number.isFinite(t.firstBandTime)&&Number.isFinite(t.lastBandTime)&&Number.isFinite(t.bandCount)&&t.bandCount>0:t.domain.every(e=>e!=null):t.domain.every(e=>Number.isFinite(e)||e instanceof Date)&&t.range.every(e=>Number.isFinite(e))}function Ks(t){switch(t.type){case"linear":case"step":case"multi-line":return[{x:t.x0,y:t.y0},{x:t.x1,y:t.y1}];case"cubic":return[{x:t.cp0x,y:t.cp0y},{x:t.cp3x,y:t.cp3y}]}}function A9(t){const e=Ks(t);return e[0].x>e[1].x&&e.reverse(),e}function SM(t,e){const{x:i,y:n}=e;switch(t.type){case"linear":return{type:"linear",moveTo:t.moveTo,x0:i,y0:n,x1:i,y1:n};case"step":return{type:"step",moveTo:t.moveTo,x0:i,y0:n,x1:i,y1:n,stepX:i};case"cubic":return{type:"cubic",moveTo:t.moveTo,cp0x:i,cp0y:n,cp1x:i,cp1y:n,cp2x:i,cp2y:n,cp3x:i,cp3y:n};case"multi-line":return{type:"multi-line",moveTo:t.moveTo,x0:i,y0:n,x1:i,y1:n,midPoints:t.midPoints.map(()=>({x:i,y:n}))}}}function If(t,e,i){const[n,s]=Ks(t),a=s.x===n.x?0:(i.x-e.x)/(s.x-n.x),o=s.y===n.y?0:(i.y-e.y)/(s.y-n.y);switch(t.type){case"linear":return{type:"linear",moveTo:t.moveTo,x0:e.x,y0:e.y,x1:i.x,y1:i.y};case"cubic":return{type:"cubic",moveTo:t.moveTo,cp0x:e.x,cp0y:e.y,cp1x:i.x-(t.cp2x-n.x)*a,cp1y:i.y-(t.cp2y-n.y)*o,cp2x:i.x-(t.cp1x-n.x)*a,cp2y:i.y-(t.cp1y-n.y)*o,cp3x:i.x,cp3y:i.y};case"step":return{type:"step",moveTo:t.moveTo,x0:e.x,y0:e.y,x1:i.x,y1:i.y,stepX:i.x-(t.stepX-n.x)*a};case"multi-line":return{type:"multi-line",moveTo:t.moveTo,x0:e.x,y0:e.y,x1:i.x,y1:i.y,midPoints:t.midPoints.map(r=>({x:e.x+(r.x-n.x)*a,y:e.y+(r.y-n.y)*o}))}}}function IT(t,e,i){const{moveTo:n}=t,[s,a]=A9(t),{x:o,y:r}=s,{x:l,y:c}=a;if(il)return If(t,a,a);switch(t.type){case"linear":{const u=r===c?void 0:(c-r)/(l-o),d=u==null?r:u*(e-o)+r,g=u==null?r:u*(i-o)+r;return{type:"linear",moveTo:n,x0:e,y0:d,x1:i,y1:g}}case"step":if(i<=t.stepX){const u=t.y0;return{type:"step",moveTo:n,x0:e,y0:u,x1:i,y1:u,stepX:i}}else if(e>=t.stepX){const u=t.y1;return{type:"step",moveTo:n,x0:e,y0:u,x1:i,y1:u,stepX:e}}else{const{y0:u,y1:d,stepX:g}=t;return{type:"step",moveTo:n,x0:e,y0:u,x1:i,y1:d,stepX:g}}case"cubic":{const u=vM(t.cp0x,t.cp1x,t.cp2x,t.cp3x,e);let[d,g]=$b(t.cp0x,t.cp0y,t.cp1x,t.cp1y,t.cp2x,t.cp2y,t.cp3x,t.cp3y,u);const f=vM(g[0].x,g[1].x,g[2].x,g[3].x,i);return[g,d]=$b(g[0].x,g[0].y,g[1].x,g[1].y,g[2].x,g[2].y,g[3].x,g[3].y,f),{type:"cubic",moveTo:n,cp0x:g[0].x,cp0y:g[0].y,cp1x:g[1].x,cp1y:g[1].y,cp2x:g[2].x,cp2y:g[2].y,cp3x:g[3].x,cp3y:g[3].y}}case"multi-line":{const{midPoints:u}=t,d=u.findLastIndex(O=>O.x<=e);let g=u.findIndex(O=>O.x>=i);g===-1&&(g=u.length);const f=d>=0?u[d]:void 0,y=f?.x??o,x=f?.y??r,S=g(t[t.MoveTo=0]="MoveTo",t[t.LineTo=1]="LineTo",t[t.Skip=2]="Skip",t))(sa||{});function Yj(t){const e=[];let i=0,n=Number.NaN,s=Number.NaN;for(const{x:a,y:o}of t){if(i>0){const r=i===1;e.push({type:"linear",moveTo:r,x0:n,y0:s,x1:a,y1:o})}i+=1,n=a,s=o}return e}var I9={start:0,middle:.5,end:1};function $j(t,e){const i=[];let n=0,s=Number.NaN,a=Number.NaN;const o=typeof e=="number"?e:I9[e];for(const{x:r,y:l}of t){if(n>0){const c=n===1,u=s+(r-s)*o;i.push({type:"step",moveTo:c,x0:s,y0:a,x1:r,y1:l,stepX:u})}n+=1,s=r,a=l}return i}function Xj(t,e){const i=Array.isArray(t)?t:Array.from(t);if(i.length<=1)return[];const n=.05,s=i.map((o,r)=>{const l=r===0?o:i[r-1],c=r===i.length-1?o:i[r+1],u=r===0||r===i.length-1;if(Math.sign(l.y-o.y)===Math.sign(c.y-o.y))return 0;if(!u){const d=Math.abs(l.y-c.y),g=Math.abs(o.y-l.y)/d,f=Math.abs(o.y-c.y)/d;if(g<=n||1-g<=n||f<=n||1-f<=n)return 0}return(c.y-l.y)/(c.x-l.x)});s[1]===0&&(s[0]*=2),s.at(-2)===0&&(s[s.length-1]*=2);const a=[];for(let o=1;oMath.abs(g)&&(f*=Math.abs(g/y),y=Math.sign(y)*Math.abs(g)),l===0&&Math.abs(S)>Math.abs(g)&&(x*=Math.abs(g/S),S=Math.sign(S)*Math.abs(g)),a.push({type:"cubic",moveTo:o===1,cp0x:r.x,cp0y:r.y,cp1x:r.x+f,cp1y:r.y+y,cp2x:c.x-x,cp2y:c.y-S,cp3x:c.x,cp3y:c.y})}return a}var vo=0,Hn=1;function Ni(t){return{x:{min:t?.x?.min??vo,max:t?.x?.max??Hn},y:{min:t?.y?.min??vo,max:t?.y?.max??Hn}}}var Zf=class extends xt{constructor(){super(...arguments),this._dirty=!0}markDirty(){this._dirty=!0}markClean(t){this._dirty=!1}isDirty(){return this._dirty}onChangeDetection(t){this.markDirty()}},z0={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};function kT(t,e=new Date(t.getFullYear(),0,1)){const i=t.getTimezoneOffset()-e.getTimezoneOffset(),n=t.getTime()-e.getTime()+i*6e4,s=36e5*24;return Math.floor(n/s)}function Ez(t,e){const n=new Date(t.getFullYear(),0,1).getDay(),s=(e-n+7)%7,a=new Date(t.getFullYear(),0,s+1);return a<=t?Math.floor(kT(t,a)/7)+1:0}var k9=0,Zj=1,Rz=4;function qj(t,e=t.getFullYear()){const n=new Date(e,0,1).getDay(),s=(Rz-n+7)%7,a=new Date(e,0,s-(Rz-Zj)+1);return a<=t?Math.floor(kT(t,a)/7)+1:qj(t,e-1)}function C9(t){const e=t.getTimezoneOffset(),i=Math.abs(e);return`${e>0?"-":"+"}${ys(Math.floor(i/60),2,"0")}${ys(Math.floor(i%60),2,"0")}`}var w9={a:t=>z0.shortDays[t.getDay()],A:t=>z0.days[t.getDay()],b:t=>z0.shortMonths[t.getMonth()],B:t=>z0.months[t.getMonth()],c:"%x, %X",d:(t,e)=>ys(t.getDate(),2,e??"0"),e:"%_d",f:(t,e)=>ys(t.getMilliseconds()*1e3,6,e??"0"),H:(t,e)=>ys(t.getHours(),2,e??"0"),I:(t,e)=>{const i=t.getHours()%12;return i===0?"12":ys(i,2,e??"0")},j:(t,e)=>ys(kT(t)+1,3,e??"0"),m:(t,e)=>ys(t.getMonth()+1,2,e??"0"),M:(t,e)=>ys(t.getMinutes(),2,e??"0"),L:(t,e)=>ys(t.getMilliseconds(),3,e??"0"),p:t=>t.getHours()<12?"AM":"PM",Q:t=>String(t.getTime()),s:t=>String(Math.floor(t.getTime()/1e3)),S:(t,e)=>ys(t.getSeconds(),2,e??"0"),u:t=>{let e=t.getDay();return e<1&&(e+=7),String(e%7)},U:(t,e)=>ys(Ez(t,k9),2,e??"0"),V:(t,e)=>ys(qj(t),2,e??"0"),w:(t,e)=>ys(t.getDay(),2,e??"0"),W:(t,e)=>ys(Ez(t,Zj),2,e??"0"),x:"%-m/%-d/%Y",X:"%-I:%M:%S %p",y:(t,e)=>ys(t.getFullYear()%100,2,e??"0"),Y:(t,e)=>ys(t.getFullYear(),4,e??"0"),Z:t=>C9(t),"%":()=>"%"},N9={_:" ",0:"0","-":""};function ys(t,e,i){const n=String(Math.floor(t));return n.length>=e?n:`${i.repeat(e-n.length)}${n}`}function kf(t){const e=[];for(;t.length>0;){let i=t.indexOf("%");if(i!==0){const r=i>0?t.substring(0,i):t;e.push(r)}if(i<0)break;const n=t[i+1],s=N9[n];s!=null&&i++;const a=t[i+1],o=w9[a];if(typeof o=="function")e.push([o,s]);else if(typeof o=="string"){const r=kf(o);e.push([r,s])}else e.push(`${s??""}${a}`);t=t.substring(i+2)}return i=>{const n=typeof i=="number"?new Date(i):i;return e.map(s=>typeof s=="string"?s:s[0](n,s[1])).join("")}}function Xy(t,e){const i=$t("button",ND("ag-charts-input ag-charts-button",e));return t.label===void 0?(i.append(eG(t.icon)),i.ariaLabel=t.altText):i.append(t.label),i.addEventListener("click",t.onPress),Nr(i,e),i}function Qj(t,e){const i=$t("input",ND("ag-charts-input ag-charts-checkbox",e));return i.type="checkbox",i.checked=t.checked,i.addEventListener("change",n=>t.onChange(i.checked,n)),i.addEventListener("keydown",n=>{lT(n)&&(n.preventDefault(),i.click())}),Nr(i,e),i}function Jj(t,e){const i=$t("select",ND("ag-charts-input ag-charts-select",e));return i.append(...t.options.map(n=>{const s=$t("option");return s.value=n.value,s.textContent=n.label,s})),ye(i,"data-preventdefault",!1),i.value=t.value,i.addEventListener("change",n=>t.onChange(i.value,n)),Nr(i,e),i}function tG(t,e){const i=$t("textarea",ND("ag-charts-input ag-charts-textarea",e));return i.value=t.value,i.addEventListener("input",n=>t.onChange(i.value,n)),Nr(i,e),ye(i,"data-preventdefault",!1),i}function eG(t){const e=$t("span",`ag-charts-icon ag-charts-icon-${t}`);return ye(e,"aria-hidden",!0),e}function ND(t,e){return e==null?t:`${t} ${e.class}`}var iG=t=>t,T9=t=>1-Math.cos(t*Math.PI/2),Lc=t=>Math.sin(t*Math.PI/2),L9=t=>-(Math.cos(t*Math.PI)-1)/2,O9=t=>t*t,E9=t=>1-(1-t)**2,R9=t=>t<.5?2*t*t:1-(-2*t+2)**2/2,nG=t=>2*Math.asin(t)/Math.PI,sG=(t,e)=>t===e;function ut(t){return function(e,i){const n=`__${i}`;e[i]||CT(e,i,n,t)}}function TD(t){return ut(t)}function Bu(t){return ut(t)}function Vx(t){const e=t??{};return e.equals=tr,ut(t)}function fe(t){return function(e,i){const n=`__${i}`;e[i]||CT(e,i,n,t)}}function _x(t){return function(e,i){const n=`__${i}`;e[i]||CT(e,i,n,t)}}function CT(t,e,i,n){const{changeCb:s,convertor:a,checkDirtyOnAssignment:o=!1}=n??{},r={changeCb:s,checkDirtyOnAssignment:o,convertor:a},l=B9(i,z9(P9(V9(i,r),r),r),r);function c(){return this[i]}Object.defineProperty(t,e,{set:l,get:c,enumerable:!0,configurable:!0})}function P9(t,e){const{convertor:i}=e;if(i){let n=function(a){t.call(this,s(a))};const s=i;return n}return t}var aG=Symbol("no-change");function z9(t,e){const{changeCb:i}=e;if(i){let n=function(a){const o=t.call(this,a);return o!==aG&&s.call(this,this),o};const s=i;return n}return t}function B9(t,e,i){const{checkDirtyOnAssignment:n}=i;return n?function(a){const o=e.call(this,a);return a?._dirty===!0&&this.markDirty(t),o}:e}function V9(t,e){const{equals:i=sG}=e;function n(s){const a=this[t];return i(s,a)?aG:(this[t]=s,this.onChangeDetection(t),s)}return n}const _9=Object.freeze(Object.defineProperty({__proto__:null,AGGREGATION_INDEX_UNSET:sp,AGGREGATION_INDEX_X_MAX:wa,AGGREGATION_INDEX_X_MIN:Ca,AGGREGATION_INDEX_Y_MAX:Ta,AGGREGATION_INDEX_Y_MIN:Na,AGGREGATION_MAX_POINTS:s8,AGGREGATION_MIN_RANGE:Ou,AGGREGATION_SPAN:er,AGGREGATION_THRESHOLD:Vc,AbstractModuleInstance:Ln,ActionOnSet:Pe,AdjacencyListGraph:pj,AgDocument:J4,AsyncAwaitQueue:dM,BASE_FONT_SIZE:Wh,BREAK_TRANSFORM_CHAIN:oM,BaseProperties:xt,Border:Ru,CANVAS_HEIGHT:x8,CANVAS_TO_BUFFER_DEFAULTS:v8,CANVAS_WIDTH:b8,CARTESIAN_AXIS_TYPE:ie,CARTESIAN_POSITION:he,CallbackCache:Q4,ChangeDetectableProperties:Zf,ChartAxisDirection:z,ChartUpdateType:Ct,CleanupRegistry:qe,Color:se,ConfiguredCanvasMixin:S8,DEFAULT_ANNOTATION_HANDLE_FILL:vx,DEFAULT_ANNOTATION_STATISTICS_COLOR:Dx,DEFAULT_ANNOTATION_STATISTICS_DIVIDER_STROKE:Ax,DEFAULT_ANNOTATION_STATISTICS_DOWN_FILL:Gb,DEFAULT_ANNOTATION_STATISTICS_DOWN_STROKE:Ub,DEFAULT_ANNOTATION_STATISTICS_FILL:Sx,DEFAULT_ANNOTATION_STATISTICS_STROKE:Mx,DEFAULT_CAPTION_ALIGNMENT:Qh,DEFAULT_CAPTION_LAYOUT_STYLE:qh,DEFAULT_FIBONACCI_STROKES:jb,DEFAULT_FINANCIAL_CHARTS_ANNOTATION_BACKGROUND_FILL:Ws,DEFAULT_FINANCIAL_CHARTS_ANNOTATION_COLOR:ra,DEFAULT_POLAR_SERIES_STROKE:xD,DEFAULT_SHADOW_COLOUR:Dp,DEFAULT_SPARKLINE_CROSSHAIR_STROKE:vD,DEFAULT_TEXTBOX_COLOR:Cx,DEFAULT_TEXTBOX_FILL:Ix,DEFAULT_TEXTBOX_STROKE:kx,DEFAULT_TEXT_ANNOTATION_COLOR:SD,DEFAULT_TOOLBAR_POSITION:wx,DIRECTION_SWAP_AXES:Y4,Debug:Gt,DebugMetrics:Vr,DeclaredSceneChangeDetection:fe,DeclaredSceneObjectChangeDetection:_x,Deprecated:I8,DeprecatedAndRenamedTo:k8,EllipsisChar:Ff,ErrorType:m4,EventEmitter:cr,FILL_GRADIENT_BLANK_DEFAULTS:ZX,FILL_GRADIENT_CONIC_SERIES_DEFAULTS:JX,FILL_GRADIENT_LINEAR_DEFAULTS:Tl,FILL_GRADIENT_LINEAR_HIERARCHY_DEFAULTS:$4,FILL_GRADIENT_LINEAR_KEYED_DEFAULTS:B1,FILL_GRADIENT_LINEAR_SINGLE_DEFAULTS:qX,FILL_GRADIENT_RADIAL_DEFAULTS:pD,FILL_GRADIENT_RADIAL_REVERSED_DEFAULTS:Sp,FILL_GRADIENT_RADIAL_REVERSED_SERIES_DEFAULTS:X4,FILL_GRADIENT_RADIAL_SERIES_DEFAULTS:QX,FILL_IMAGE_BLANK_DEFAULTS:i8,FILL_IMAGE_DEFAULTS:$s,FILL_PATTERN_BLANK_DEFAULTS:e8,FILL_PATTERN_DEFAULTS:Cs,FILL_PATTERN_HIERARCHY_DEFAULTS:Z4,FILL_PATTERN_KEYED_DEFAULTS:V1,FILL_PATTERN_SINGLE_DEFAULTS:t8,FONT_SIZE:zc,FONT_SIZE_RATIO:Cn,IS_DARK_THEME:Qd,InterpolationProperties:Mp,LABEL_BOXING_DEFAULTS:Oe,LEGEND_CONTAINER_THEME:F1,LRUCache:XM,LineSplitter:au,Logger:pt,MARKER_SERIES_HIGHLIGHT_STYLE:fD,MULTI_SERIES_HIGHLIGHT_STYLE:Bc,MementoCaretaker:H1,ModuleRegistry:Ut,ModuleType:Le,ObserveChanges:Bi,PALETTE_ALT_DOWN_FILL:q1,PALETTE_ALT_DOWN_STROKE:X1,PALETTE_ALT_NEUTRAL_FILL:Q1,PALETTE_ALT_NEUTRAL_STROKE:J1,PALETTE_ALT_UP_FILL:Z1,PALETTE_ALT_UP_STROKE:$1,PALETTE_DOWN_FILL:W1,PALETTE_DOWN_STROKE:G1,PALETTE_NEUTRAL_FILL:Y1,PALETTE_NEUTRAL_STROKE:K1,PALETTE_UP_FILL:U1,PALETTE_UP_STROKE:j1,PART_WHOLE_HIGHLIGHT_STYLE:_1,POLAR_AXIS_SHAPE:yf,POLAR_AXIS_TYPE:sn,Padding:zu,ParallelStateMachine:Aj,PolarZIndexMap:gl,PropertiesArray:ss,Property:b,ProxyOnWrite:m8,ProxyProperty:qi,ProxyPropertyOnWrite:pi,SAFE_FILLS_OPERATION:XX,SAFE_FILL_OPERATION:$X,SAFE_RANGE2_OPERATION:xx,SAFE_STROKE_FILL_OPERATION:bx,SEGMENTATION_DEFAULTS:mD,SINGLE_SERIES_HIGHLIGHT_STYLE:n8,SKIP_JS_BUILTINS:P1,ScaleAlignment:wi,SceneArrayChangeDetection:Vx,SceneChangeDetection:ut,SceneObjectChangeDetection:Bu,SceneRefChangeDetection:TD,SeriesContentZIndexMap:Mc,SeriesZIndexMap:Vs,SimpleCache:D8,SpanJoin:sa,StateMachine:Rt,StateMachineProperty:Fe,TRIPLE_EQ:sG,TextMeasurer:pT,TickIntervals:yM,TrimCharsRegex:i4,TrimEdgeGuard:Rb,UNIT_MAX:Hn,UNIT_MIN:vo,UnknownError:eD,ValidationError:ou,Vec2:at,Vec4:Wt,Vertex:gj,WeakCache:oj,ZIndexMap:pe,addEscapeEventListener:rT,addFakeTransformToInstanceProperty:b,addMouseCloseListener:mj,addObserverToInstanceProperty:O1,addOverrideFocusVisibleEventListener:xj,addTouchCloseListener:yj,addTransformToInstanceProperty:Su,aggregationBucketForDatum:l8,aggregationDatumMatchesIndex:c8,aggregationDomain:gn,aggregationIndexForXRatio:yD,aggregationRangeFittingPoints:_c,aggregationXRatioForDatumIndex:xf,aggregationXRatioForXValue:ar,and:Me,angleBetween:fl,angularPadding:aN,appendEllipsis:qw,applySkiaPatches:M8,arcDistanceSquared:C8,areScalingEqual:yl,array:wl,arrayLength:Tu,arrayOf:Ft,arrayOfDefs:Xi,arraysEqual:tr,assignIfNotStrictlyEqual:eN,attachDescription:xe,attachListener:Qe,autoSizedLabelOptionsDefs:vu,barHighlightOptionsDef:Tr,bezier2DDistance:Uj,bezier2DExtrema:Gj,boolean:J,borderOptionsDef:Zd,boxCollides:iT,boxContains:MD,boxEmpty:nj,boxesEqual:sj,buildDateFormatter:kf,cachedTextMeasurer:Ve,calcLineHeight:nr,calculatePlacement:uT,callWithContext:js,callback:ai,callbackDefs:Be,callbackOf:Is,ceilTo:M4,checkDatum:_j,circularSliceArray:kr,clamp:Nt,clampArray:bf,clipLines:kj,clipSpanX:IT,collapseSpanToPoint:SM,collectAggregationLevels:h8,color:It,colorStopsOrderValidator:w1,colorUnion:Ga,commonChartOptionsDefs:Zt,commonSeriesOptionsDefs:_e,commonSeriesThemeableOptionsDefs:Ee,compactAggregationIndices:ap,compareDates:sT,computeExtremesAggregation:Eu,computeExtremesAggregationPartial:bD,constant:Jt,contextMenuItemsArray:aM,countFractionDigits:Hf,countLines:d4,createAggregationIndices:Fc,createButton:Xy,createCanvasContext:aj,createCheckbox:Qj,createDeprecationWarning:oT,createElement:$t,createElementId:lu,createIcon:eG,createId:Nn,createIdsGenerator:CD,createNumberFormatter:C1,createSelect:Jj,createSvgElement:$i,createTextArea:tG,createTicks:Xf,date:_s,dateToNumber:Ss,dateTruncationForDomain:kD,datesSortOrder:aT,debounce:M1,decodeIntervalValue:Lj,deepClone:le,deepFreeze:za,defaultEpoch:xT,defined:jt,definedZoomState:Ni,diffArrays:rj,distribute:HH,downloadUrl:Ij,dropFirstWhile:_H,dropLastWhile:FH,durationDay:op,durationHour:ep,durationMinute:tu,durationMonth:fT,durationSecond:rf,durationWeek:Cj,durationYear:Kb,easeIn:T9,easeInOut:L9,easeInOutQuad:R9,easeInQuad:O9,easeOut:Lc,easeOutQuad:E9,encodedToTimestamp:Hh,enterpriseRegistry:po,entries:Xe,errorBarOptionsDefs:lD,errorBarThemeableOptionsDefs:mx,estimateTickCount:MT,evaluateBezier:dl,every:j4,expandLegendPosition:qd,extent:Ll,extractDecoratedProperties:F4,extractDomain:Lb,fillCssOptionsDef:ia,fillGradientDefaults:sD,fillImageDefaults:oD,fillOptionsDef:wt,fillPatternDefaults:aD,findMaxIndex:Dr,findMaxValue:nT,findMinIndex:vf,findMinMax:xi,findMinValue:y8,findRangeExtent:Tc,first:Ra,flush:t4,focusCursorAtEnd:b1,fontFamilyFull:iM,fontOptionsDef:De,fontWeight:ub,formatNumber:cj,formatObjectValidator:B4,formatPercent:lj,formatValue:Or,fromPairs:G4,generateUUID:yb,geoJson:dj,getAngleRatioRadians:ej,getAttribute:Jd,getDOMMatrix:f1,getDocument:bp,getElementBBox:s4,getIconClassNames:mu,getImage:UH,getLastFocus:cT,getMaxInnerRectSize:tT,getMidpointsForIndices:ul,getMinOuterRectSize:d8,getOffscreenCanvas:qM,getPath:R1,getPath2D:Ob,getPrevNextKeys:mb,getResizeObserver:WH,getSequentialColors:So,getTickTimeInterval:Px,getWindow:Ml,googleFont:Jw,gradientColorStops:nD,gradientStrict:RS,graphemeSegments:Sc,greaterThan:Hs,groupBy:px,guardTextEdges:c4,hasNoModifiers:Nx,hasRequiredInPath:Xd,highlightOptionsDef:T1,htmlElement:A1,inRange:v4,initRovingTabIndex:cN,insertListItemsSorted:hT,instanceOf:LX,interpolationOptionsDefs:cD,intervalAgo:Oj,intervalCeil:wj,intervalEpoch:rp,intervalExtent:yT,intervalFloor:La,intervalHierarchy:Rx,intervalMilliseconds:Ms,intervalNext:mT,intervalPrevious:Nj,intervalRange:fo,intervalRangeCount:mM,intervalRangeNumeric:Tj,intervalRangeStartIndex:bT,intervalStep:Al,intervalUnit:Er,inverseEaseOut:nG,isArray:qt,isBetweenAngles:Ba,isBoolean:o4,isButtonClickEvent:lT,isColor:l4,isContinuous:Af,isDate:aa,isDecoratedObject:hD,isDefined:go,isDenseInterval:lp,isDirectionRtl:ff,isDocumentFragment:YH,isElement:m1,isEmptyObject:cb,isEnumKey:DX,isEnumValue:AX,isFiniteNumber:Ae,isFunction:Cl,isGradientFill:an,isGradientFillArray:v9,isGradientOrPatternFill:S9,isHTMLElement:Eb,isHtmlElement:x1,isImageFill:ml,isInputPending:a4,isInteger:S4,isKeyOf:jd,isNegative:sf,isNode:JS,isNumber:Je,isNumberEqual:be,isNumberObject:Vj,isObject:Bt,isObjectLike:Pb,isObjectWithProperty:U4,isObjectWithStringProperty:W4,isPatternFill:ir,isPlainObject:Ie,isPointLabelDatum:Wj,isProperties:of,isRegExp:r4,isScaleValid:cp,isSegmentTruncated:JM,isString:zi,isStringFillArray:jj,isStringObject:DT,isSymbol:hb,isTextTruncated:wu,isTimeInterval:Rj,isTimeIntervalUnit:Pj,isTruncated:u4,isUnitTimeCategoryScaling:Au,isValidDate:Ac,isValidNumberFormat:k4,iterate:Mu,joinFormatted:yu,jsonApply:fb,jsonDiff:or,jsonPropertyCompare:fj,jsonWalk:Ic,kebabCase:g4,labelBoxOptionsDef:qo,legendPositionValidator:nM,lessThan:Fs,lessThanOrEqual:b4,levenshteinDistance:p4,lineDashOptionsDef:Lt,lineDistanceSquared:Jh,lineHighlightOptionsDef:bu,lineSegmentOptions:L4,lineSegmentation:O4,linear:iG,linearGaugeSeriesOptionsDef:Du,linearGaugeSeriesThemeableOptionsDef:cM,linearGaugeTargetOptionsDef:uD,linearPoints:Yj,listDecoratedProperties:ru,lowestGranularityForInterval:zx,lowestGranularityUnitForTicks:ID,lowestGranularityUnitForValue:Bx,makeAccessibleClickListener:z8,mapValues:af,markerOptionsDefs:Lr,markerStyleOptionsDefs:Lu,measureTextSegments:Va,memo:Wf,merge:Hb,mergeArrayDefaults:YX,mergeDefaults:Et,modulus:D4,multiSeriesHighlightOptionsDef:Zi,nearestSquared:Tx,nearestSquaredInContainer:Mj,nextPowerOf2:Gf,niceTicksDomain:ST,normalisedExtentWithMetadata:Uf,normalisedTimeExtentWithMetadata:DD,normalizeAngle180:uM,normalizeAngle360:ze,normalizeAngle360FromDegrees:Dl,normalizeAngle360Inclusive:Wb,number:gt,numberFormatValidator:_r,numberMin:k1,numberRange:y4,object:Nu,objectsEqual:ks,objectsEqualWith:E1,optionsDefs:Pi,or:Xt,padding:Ar,paddingOptions:E4,parseColor:n4,parseNumberFormat:iD,partialAssign:rM,pause:oN,pick:PS,placeLabels:Kj,positiveNumber:X,positiveNumberNonZero:bo,preserveArabicJoining:S1,previousPowerOf2:nN,radialGaugeSeriesOptionsDef:yx,radialGaugeSeriesThemeableOptionsDef:hM,radialGaugeTargetOptionsDef:dD,range:Df,rangeValidator:rD,ratio:Ot,readIntegratedWrappedValue:pN,record:JH,required:ht,rescaleSpan:If,rescaleVisibleRange:pM,resetIds:B8,rotatePoint:eT,roundTo:_b,safeCall:D1,seriesLabelOptionsDefs:ei,seriesTooltipRangeValidator:P4,setAttribute:ye,setAttributes:Nr,setDocument:jH,setElementBBox:tM,setElementStyle:Cr,setElementStyles:ij,setPath:z1,setWindow:GH,shadowOptionsDefs:Nl,shallowClone:Gd,shapeHighlightOptionsDef:Si,shapeSegmentOptions:T4,shapeSegmentation:Pc,shapeValidator:xu,simpleMemorize:xs,simpleMemorize2:Pu,smoothPoints:Xj,solveBezier:vM,sortAndUniqueDates:rN,sortBasedOnArray:VH,spanRange:Ks,splitBezier2D:$b,stepPoints:$j,stopPageScrolling:vj,strictObjectKeys:hl,strictUnion:fx,string:K,stringLength:I1,stringifyValue:zb,strokeOptionsDef:bt,textOrSegments:xo,themeOperator:Fb,throttle:Qw,tickFormat:vT,tickStep:Mf,timeInterval:jf,timeIntervalUnit:vp,toArray:dx,toDegrees:tj,toFontString:v1,toIterable:H4,toPlainText:ce,toRadians:Ze,toTextString:bi,toolbarButtonOptionsDefs:Zh,tooltipOptionsDefs:Re,tooltipOptionsDefsWithArea:_4,transformIntegratedCategoryValue:bM,truncateLine:tp,typeUnion:xp,undocumented:Mt,unguardTextEdges:h4,union:dt,unionSymbol:Bb,unique:ZM,validate:ts,withTimeout:p8,without:At,wrapLines:Ox,wrapText:kc,wrapTextOrSegments:Lx,wrapTextSegments:gT},Symbol.toStringTag,{value:"Module"}));var wT=Object.defineProperty,oG=Object.getOwnPropertyDescriptor,F9=Object.getOwnPropertyNames,H9=Object.prototype.hasOwnProperty,Ap=(t,e)=>{for(var i in e)wT(t,i,{get:e[i],enumerable:!0})},j9=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of F9(e))!H9.call(t,s)&&s!==i&&wT(t,s,{get:()=>e[s],enumerable:!(n=oG(e,s))||n.enumerable});return t},G9=(t,e,i)=>(j9(t,e,"default"),i),T=(t,e,i,n)=>{for(var s=n>1?void 0:n?oG(e,i):e,a=t.length-1,o;a>=0;a--)(o=t[a])&&(s=(n?o(e,i,s):o(s))||s);return n&&s&&wT(e,i,s),s},U9={ariaInitSeriesArea:"interactive chart",ariaAnnounceHoverDatum:"${datum}",ariaAnnounceChart:"chart, ${seriesCount}[number] series",ariaAnnounceStandaloneChart:"chart, ${caption}",ariaAnnounceHierarchyChart:"hierarchy chart, ${caption}",ariaAnnounceGaugeChart:"gauge chart, ${caption}",ariaAnnounceHierarchyDatum:"level ${level}[number], ${count}[number] children, ${description}",ariaAnnounceFlowProportionLink:"link ${index} of ${count}, from ${from} to ${to}, ${sizeName} ${size}",ariaAnnounceFlowProportionNode:"node ${index} of ${count}, ${description}",ariaDescriptionLegendItem:"Press Space or Enter to toggle visibility",ariaLabelAddHorizontalLine:"Add Horizontal Line",ariaLabelAnnotationsToolbar:"Annotations",ariaLabelAnnotationOptionsToolbar:"Annotation Options",ariaLabelAnnotationSettingsDialog:"Annotation Settings",ariaLabelColor:"Color",ariaLabelColorPicker:"Color picker",ariaLabelColorPickerAlpha:"Transparency",ariaLabelColorPickerHue:"Hue",ariaLabelColorPickerMultiColor:"Multi Color",ariaLabelColorPickerPalette:"Palette",ariaLabelFinancialCharts:"Financial Charts",ariaLabelGaugeTarget:"Target",ariaLabelGaugeValue:"Value",ariaLabelLegend:"Legend",ariaLabelLegendPagination:"Legend Pagination",ariaLabelLegendPagePrevious:"Previous Legend Page",ariaLabelLegendPageNext:"Next Legend Page",ariaLabelLegendItem:"${label}, Legend item ${index}[number] of ${count}[number]",ariaLabelLegendItemUnknown:"Unknown legend item",ariaLabelNavigator:"Navigator",ariaLabelNavigatorRange:"Range",ariaLabelScrollbarHorizontal:"X-axis scrollbar",ariaLabelScrollbarVertical:"Y-axis scrollbar",ariaLabelNavigatorMinimum:"Minimum",ariaLabelNavigatorMaximum:"Maximum",ariaLabelRangesToolbar:"Ranges",ariaLabelSettingsTabBar:"Settings",ariaLabelZoomToolbar:"Zoom",ariaRoleDescription2DSlider:"2D slider",ariaValueColorPalette:"s ${s}[percent0to2dp], v ${v}[percent0to2dp]",ariaValueColorPaletteFirstV:"v ${v}[percent0to2dp], s ${s}[percent0to2dp]",ariaValuePanRange:"${min}[percent0to2dp] to ${max}[percent0to2dp]",iconAltTextLineStyleSolid:"Solid",iconAltTextLineStyleDashed:"Long-dashed",iconAltTextLineStyleDotted:"Short-dashed",iconAltTextPositionTop:"Top",iconAltTextPositionCenter:"Center",iconAltTextPositionBottom:"Bottom",iconAltTextAlignLeft:"Left",iconAltTextAlignCenter:"Center",iconAltTextAlignRight:"Right",iconAltTextClose:"Close",overlayLoadingData:"Loading data...",overlayNoData:"No data to display",overlayNoVisibleSeries:"No visible series",overlayUnsupportedBrowser:"Incompatible browser version. Please upgrade your browser.",seriesHistogramTooltipFrequency:"Frequency",seriesHistogramTooltipSum:"${yName} (sum)",seriesHistogramTooltipCount:"${yName} (count)",seriesHistogramTooltipMean:"${yName} (mean)",toolbarSeriesTypeDropdown:"Chart Type",toolbarSeriesTypeOHLC:"OHLC",toolbarSeriesTypeHLC:"HLC",toolbarSeriesTypeHighLow:"High Low",toolbarSeriesTypeCandles:"Candles",toolbarSeriesTypeHollowCandles:"Hollow Candles",toolbarSeriesTypeLine:"Line",toolbarSeriesTypeLineWithMarkers:"Line with Markers",toolbarSeriesTypeStepLine:"Step Line",toolbarAnnotationsTrendLine:"Trend Line",toolbarAnnotationsFibonacciRetracement:"Fib Retracement",toolbarAnnotationsFibonacciRetracementTrendBased:"Fib Trend Based",toolbarAnnotationsHorizontalLine:"Horizontal Line",toolbarAnnotationsVerticalLine:"Vertical Line",toolbarAnnotationsParallelChannel:"Parallel Channel",toolbarAnnotationsDisjointChannel:"Disjoint Channel",toolbarAnnotationsClearAll:"Clear All",toolbarAnnotationsFillColor:"Fill Color",toolbarAnnotationsLineColor:"Line Color",toolbarAnnotationsLineStyle:"Line Style",toolbarAnnotationsLineStrokeWidth:"Line Stroke Width",toolbarAnnotationsSettings:"Settings",toolbarAnnotationsTextColor:"Text Color",toolbarAnnotationsTextSize:"Text Size",toolbarAnnotationsLock:"Lock",toolbarAnnotationsUnlock:"Unlock",toolbarAnnotationsDelete:"Delete",toolbarAnnotationsDragHandle:"Drag Toolbar",toolbarAnnotationsLineAnnotations:"Trend Lines",toolbarAnnotationsFibonacciAnnotations:"Fibonacci",toolbarAnnotationsTextAnnotations:"Text Annotations",toolbarAnnotationsShapeAnnotations:"Arrows",toolbarAnnotationsMeasurerAnnotations:"Measurers",toolbarAnnotationsCallout:"Callout",toolbarAnnotationsComment:"Comment",toolbarAnnotationsNote:"Note",toolbarAnnotationsText:"Text",toolbarAnnotationsArrow:"Arrow",toolbarAnnotationsArrowUp:"Arrow Up",toolbarAnnotationsArrowDown:"Arrow Down",toolbarAnnotationsDateRange:"Date Range",toolbarAnnotationsPriceRange:"Price Range",toolbarAnnotationsDatePriceRange:"Date and Price",toolbarAnnotationsQuickDatePriceRange:"Measure",toolbarRange1Month:"1M",toolbarRange1MonthAria:"1 month",toolbarRange3Months:"3M",toolbarRange3MonthsAria:"3 months",toolbarRange6Months:"6M",toolbarRange6MonthsAria:"6 months",toolbarRangeYearToDate:"YTD",toolbarRangeYearToDateAria:"Year to date",toolbarRange1Year:"1Y",toolbarRange1YearAria:"1 year",toolbarRangeAll:"All",toolbarRangeAllAria:"All",toolbarRangeSelectRange:"Select range",toolbarRangeSelectRangeAria:"Select range",toolbarZoomZoomOut:"Zoom out",toolbarZoomZoomIn:"Zoom in",toolbarZoomPanLeft:"Pan left",toolbarZoomPanRight:"Pan right",toolbarZoomPanStart:"Pan to the start",toolbarZoomPanEnd:"Pan to the end",toolbarZoomReset:"Reset the zoom",contextMenuDownload:"Download",contextMenuToggleSeriesVisibility:"Toggle Visibility",contextMenuToggleOtherSeries:"Toggle Other Series",contextMenuZoomToCursor:"Zoom to here",contextMenuPanToCursor:"Pan to here",contextMenuResetZoom:"Reset zoom",dialogHeaderChannel:"Channel",dialogHeaderLine:"Line",dialogHeaderFibonacciRange:"Fib Retracement",dialogHeaderDateRange:"Date Range",dialogHeaderPriceRange:"Price Range",dialogHeaderDatePriceRange:"Date and Price",dialogHeaderText:"Text",dialogInputAlign:"Align",dialogInputColorPicker:"Color",dialogInputColorPickerAltText:"Text Color",dialogInputFillColorPicker:"Fill",dialogInputFillColorPickerAltText:"Fill Color",dialogInputExtendChannelStart:"Extend channel start",dialogInputExtendChannelEnd:"Extend channel end",dialogInputExtendLineStart:"Extend line start",dialogInputExtendLineEnd:"Extend line end",dialogInputExtendAbove:"Extend above",dialogInputExtendBelow:"Extend below",dialogInputExtendLeft:"Extend left",dialogInputExtendRight:"Extend right",dialogInputReverse:"Reverse",dialogInputShowFill:"Show Fill",dialogInputFontSize:"Size",dialogInputFontSizeAltText:"Font Size",dialogInputLineStyle:"Dash",dialogInputPosition:"Position",dialogInputStrokeWidth:"Weight",dialogInputStrokeWidthAltText:"Line Weight",dialogInputFibonacciBands:"Bands",dialogInputFibonacciBandsAltText:"Fibonacci Bands",inputTextareaPlaceholder:"Add Text",measurerDateRangeBars:"${value}[number] bars",measurerPriceRangeValue:"${value}[number]",measurerPriceRangePercent:"${value}[percent]",measurerVolume:"Vol ${value}",tooltipPaginationStatus:"${index}[number] of ${count}[number]"},LD=Symbol("interpolate"),MM=t=>t[LD]!=null,Xb=class Hg{constructor(e,i,n,s){this.x=e,this.y=i,this.width=n,this.height=s}static fromObject({x:e,y:i,width:n,height:s}){return new Hg(e,i,n,s)}static merge(e){let i=1/0,n=1/0,s=-1/0,a=-1/0;for(const o of e)o.xs&&(s=Es(o.x,o.width)),Es(o.y,o.height)>a&&(a=Es(o.y,o.height));return new Hg(i,n,s-i,a-n)}static nearestBox(e,i,n){return Tx(e,i,n)}toDOMRect(){return{x:this.x,y:this.y,width:this.width,height:this.height,top:this.y,left:this.x,right:Es(this.x,this.width),bottom:Es(this.y,this.height),toJSON(){return{}}}}clone(){const{x:e,y:i,width:n,height:s}=this;return new Hg(e,i,n,s)}equals(e){return sj(this,e)}containsPoint(e,i){return MD(this,e,i)}intersectsWith(e){return!(this.x+this.width<=e.x||e.x+e.width<=this.x||this.y+this.height<=e.y||e.y+e.height<=this.y)}intersection(e){const i=Math.max(this.x,e.x),n=Math.max(this.y,e.y),s=Math.min(Es(this.x,this.width),Es(e.x,e.width)),a=Math.min(Es(this.y,this.height),Es(e.y,e.height));if(!(i>s||n>a))return new Hg(i,n,s-i,a-n)}collidesBBox(e){return this.xe.x&&this.ye.y}computeCenter(){return{x:this.x+this.width/2,y:this.y+this.height/2}}isFinite(){return Number.isFinite(this.x)&&Number.isFinite(this.y)&&Number.isFinite(this.width)&&Number.isFinite(this.height)}distanceSquared(e,i){if(this.containsPoint(e,i))return 0;const n=e-Nt(this.x,e,Es(this.x,this.width)),s=i-Nt(this.y,i,Es(this.y,this.height));return n*n+s*s}shrink(e,i){if(typeof e=="number")this.applyMargin(e,i);else for(const n of Object.keys(e)){const s=e[n];typeof s=="number"&&this.applyMargin(s,n)}return this.width<0&&(this.width=0),this.height<0&&(this.height=0),this}grow(e,i){if(typeof e=="number")this.applyMargin(-e,i);else for(const n of Object.keys(e)){const s=e[n];typeof s=="number"&&this.applyMargin(-s,n)}return this}applyMargin(e,i){switch(i){case"top":this.y+=e;case"bottom":this.height-=e;break;case"left":this.x+=e;case"right":this.width-=e;break;case"vertical":this.y+=e,this.height-=e*2;break;case"horizontal":this.x+=e,this.width-=e*2;break;case void 0:this.x+=e,this.y+=e,this.width-=e*2,this.height-=e*2;break}}translate(e,i){return this.x+=e,this.y+=i,this}[LD](e,i){return new Hg(this.x*(1-i)+e.x*i,this.y*(1-i)+e.y*i,this.width*(1-i)+e.width*i,this.height*(1-i)+e.height*i)}};Xb.zero=Object.freeze(new Xb(0,0,0,0));Xb.NaN=Object.freeze(new Xb(Number.NaN,Number.NaN,Number.NaN,Number.NaN));var Tt=Xb;function Es(t,e){return t===-1/0&&e===1/0?1/0:t+e}function rG({context:t,pixelRatio:e,width:i,height:n}){t.save();try{t.resetTransform(),t.clearRect(0,0,Math.ceil(i*e),Math.ceil(n*e))}finally{t.restore()}}function lG(t){if(Gt.check("canvas")){const e=t.save.bind(t),i=t.restore.bind(t);let n=0;Object.assign(t,{save(){e(),n++},restore(){if(n===0)throw new Error("AG Charts - Unable to restore() past depth 0");i(),n--},verifyDepthZero(){if(n!==0)throw new Error(`AG Charts - Save/restore depth is non-zero: ${n}`)}})}}function Pz(t,e,i){return[Math.floor(t*i),Math.floor(e*i)]}var vC;function W9(){const t=qM();return vC??(vC=new t(1,1)),vC}var NT=class{constructor(t){const{width:e,height:i,pixelRatio:n,willReadFrequently:s=!1}=t;this.width=e,this.height=i,this.pixelRatio=n;const[a,o]=Pz(e,i,n),r=qM();this.canvas=new r(a,o),this.context=this.canvas.getContext("2d",{willReadFrequently:s}),this.context.setTransform(n,0,0,n,0,0),lG(this.context)}drawImage(t,e=0,i=0){return t.drawImage(this.canvas,e,i)}transferToImageBitmap(){return this.canvas.width<1||this.canvas.height<1?W9().transferToImageBitmap():this.canvas.transferToImageBitmap()}resize(t,e,i){if(!(t>0&&e>0))return;const{canvas:n,context:s}=this;if(t!==this.width||e!==this.height||i!==this.pixelRatio){const[a,o]=Pz(t,e,i);n.width=a,n.height=o}s.setTransform(i,0,0,i,0,0),this.width=t,this.height=e,this.pixelRatio=i}clear(){rG(this)}destroy(){this.canvas.width=0,this.canvas.height=0,this.context.clearRect(0,0,0,0),this.canvas=null,this.context=null,Object.freeze(this)}},SC=(t,e)=>Math.sign(t-e);function cG(t,e){if(typeof t=="number"&&typeof e=="number")return SC(t,e);const i=typeof t=="number"?[t]:t,n=typeof e=="number"?[e]:e,s=Math.min(i.length,n.length);for(let a=0;a(t[t.All=0]="All",t[t.None=1]="None",t))(hG||{}),K9=5,hp=class gN{constructor(e){this.serialNumber=gN._nextSerialNumber++,this.childNodeCounts={groups:0,nonGroups:0,thisComplexity:0,complexity:0},this.id=Nn(this),this.name=void 0,this.transitionOut=void 0,this.pointerEvents=0,this._datum=void 0,this._previousDatum=void 0,this.scene=void 0,this._debugDirtyProperties=void 0,this.parentNode=void 0,this.cachedBBox=void 0,this.isContainerNode=!1,this.visible=!0,this.zIndex=0,this.batchLevel=0,this.batchDirty=!1,this.name=e?.name,this.tag=e?.tag??Number.NaN,this.zIndex=e?.zIndex??0,this.scene=e?.scene,(e?.debugDirty??gN._debugEnabled)&&(this._debugDirtyProperties=new Map([["__first__",[]]]))}static toSVG(e,i,n){const s=e?.toSVG();if(s==null||!s.elements.length&&!s.defs?.length)return;const a=$i("svg");if(a.setAttribute("width",String(i)),a.setAttribute("height",String(n)),a.setAttribute("viewBox",`0 0 ${i} ${n}`),a.setAttribute("overflow","visible"),s.defs?.length){const o=$i("defs");o.append(...s.defs),a.append(o)}return a.append(...s.elements),a.outerHTML}static*extractBBoxes(e,i){for(const n of e)if(!i||n.visible&&!n.transitionOut){const s=n.getBBox();s&&(yield s)}}get datum(){return this._datum}set datum(e){this._datum!==e&&(this._previousDatum=this._datum,this._datum=e)}get previousDatum(){return this._previousDatum}get layerManager(){return this.scene?.layersManager}get imageLoader(){return this.scene?.imageLoader}closestDatum(){for(const{datum:e}of this.traverseUp(!0))if(e!=null)return e}preRender(e,i=1){if(this.childNodeCounts.groups=0,this.childNodeCounts.nonGroups=1,this.childNodeCounts.complexity=i,this.childNodeCounts.thisComplexity=i,this.batchLevel>0||this.batchDirty)throw new Error("AG Charts - illegal rendering state; batched update in progress");return this.childNodeCounts}isolatedRender(e){e.ctx.save();try{this.render(e)}catch(i){const n=i.errorCount??1;if(n>=K9)throw i.errorCount=n,i;pt.warnOnce("Error during rendering",i,i.stack)}finally{e.ctx.restore()}}render(e){const{stats:i}=e;if(this.debugDirtyProperties(),e.debugNodeSearch){const n=this.name??this.id;e.debugNodeSearch.some(s=>typeof s=="string"?s===n:s.test(n))&&(e.debugNodes[this.name??this.id]=this)}i&&(i.nodesRendered++,i.opsPerformed+=this.childNodeCounts.thisComplexity)}setScene(e){this.scene=e}*traverseUp(e){e&&(yield this);let i=this.parentNode;for(;i;)yield i,i=i.parentNode}isRoot(){return!this.parentNode}removeChild(e){throw new Error(`AG Charts - internal error, unknown child node ${e.name??e.id} in $${this.name??this.id}`)}remove(){this.parentNode?.removeChild(this)}destroy(){this.parentNode&&this.remove()}batchedUpdate(e){this.batchLevel++;try{e()}finally{this.batchLevel--,this.batchLevel===0&&this.batchDirty&&(this.markDirty(),this.batchDirty=!1)}}setProperties(e){this.batchLevel++;try{eN(this,e)}finally{this.batchLevel--,this.batchLevel===0&&this.batchDirty&&(this.markDirty(),this.batchDirty=!1)}return this}setPropertiesWithKeys(e,i){this.batchLevel++;try{eN(this,e,i)}finally{this.batchLevel--,this.batchLevel===0&&this.batchDirty&&(this.markDirty(),this.batchDirty=!1)}return this}containsPoint(e,i){return!1}pickNode(e,i){if(this.containsPoint(e,i))return this}pickNodes(e,i,n=[]){return this.containsPoint(e,i)&&n.push(this),n}getBBox(){return this.cachedBBox??(this.cachedBBox=Object.freeze(this.computeBBox())),this.cachedBBox}computeBBox(){}onChangeDetection(e){this.markDirty(e)}markDirtyChildrenOrder(){this.cachedBBox=void 0}markDirty(e){if(this.batchLevel>0){this.batchDirty=!0;return}e!=null&&this._debugDirtyProperties&&this.markDebugProperties(e),this.cachedBBox=void 0,this.parentNode?.markDirty()}markDebugProperties(e){const i=this._debugDirtyProperties?.get(e)??[],n=new Error("Stack trace for property change tracking").stack?.split(` +`).filter(s=>s!=="Error"&&!s.includes(".markDebugProperties")&&!s.includes(".markDirty")&&!s.includes("Object.assign ")&&!s.includes(`${this.constructor.name}.`))??"unknown";i.push(n[0].replace(" at ","").trim()),this._debugDirtyProperties?.set(e,i)}debugDirtyProperties(){if(this._debugDirtyProperties!=null){if(!this._debugDirtyProperties.has("__first__"))for(const[e,i]of this._debugDirtyProperties.entries())i.length>1&&pt.logGroup(`Property changed multiple times before render: ${this.constructor.name}.${e} (${i.length}x)`,()=>{for(const n of i)pt.log(n)});this._debugDirtyProperties.clear()}}static handleNodeZIndexChange(e){e.onZIndexChange()}onZIndexChange(){this.parentNode?.markDirtyChildrenOrder()}resolveFont(){}toSVG(){}};hp.className="AbstractNode";hp._nextSerialNumber=0;hp._debugEnabled=!1;T([fe()],hp.prototype,"visible",2);T([fe({changeCb:hp.handleNodeZIndexChange})],hp.prototype,"zIndex",2);var Oc=hp,OD=class{ticks(t,e,i){}niceDomain(t,e=this.domain){return e}get bandwidth(){}get step(){}get inset(){}},ED=(t,e)=>{const i=Symbol(String(e));t[i]=void 0,Object.defineProperty(t,e,{get(){return this[i]},set(n){this[i]!==n&&(this[i]=n,this.invalid=!0)},enumerable:!0,configurable:!1})};function uG(t,e,i){if(i==null||i[0]===0&&i[1]===1)return;const n=Nt(0,Math.floor(i[0]*t.length),t.length),s=Nt(0,Math.ceil(i[1]*t.length),t.length),a=e?t.length-s:n,o=e?t.length-n:s;return[a,o]}function zz(t,e,i){return uG(t,e,i)??[0,t.length]}function dG(t,e,i){const n=uG(t,e,i);if(n==null)return{ticks:t,count:t.length,firstTickIndex:0};const[s,a]=n;return{ticks:t.slice(s,a),count:t.length,firstTickIndex:s}}function RD(t){const e=pN(t.at(0)),i=pN(t.at(-1));return e!=null&&i!=null?[e,i]:[void 0,void 0]}var Bz=t=>{const e=se.fromString(t),[i,n,s]=se.RGBtoOKLCH(e.r,e.g,e.b);return{l:i,c:n,h:s,a:e.a}},MC=1e-6,Vz=t=>t.c1-MC,Y9=(t,e,i)=>{i=Nt(0,i,1);let n;if(Vz(t))n=e.h;else if(Vz(e))n=t.h;else{const r=t.h;let l=e.h;const c=e.h-t.h;c>180?l-=360:c<-180&&(l+=360),n=r*(1-i)+l*i}const s=t.c*(1-i)+e.c*i,a=t.l*(1-i)+e.l*i,o=t.a*(1-i)+e.a*i;return se.fromOKLCH(a,s,n,o)},qf=class extends OD{constructor(){super(...arguments),this.type="color",this.defaultTickCount=0,this.invalid=!0,this.domain=[0,1],this.range=["red","blue"],this.parsedRange=this.range.map(Bz)}update(){const{domain:e,range:i}=this;e.length<2&&(pt.warnOnce("`colorDomain` should have at least 2 values."),e.length===0?e.push(0,1):e.length===1&&e.push(e[0]+1));for(let n=1;na){pt.warnOnce("`colorDomain` values should be supplied in ascending order."),e.sort((o,r)=>o-r);break}}if(i.length0?i[0]:"black");this.parsedRange=this.range.map(Bz)}normalizeDomains(...e){return{domain:e.map(i=>i.domain).flat(),animatable:!0}}toDomain(){}convert(e){this.refresh();const{domain:i,range:n,parsedRange:s}=this,a=i[0],o=i.at(-1),r=n[0],l=n.at(-1);if(e<=a)return r;if(e>=o)return l;let c,u;if(i.length===2){const f=(e-a)/(o-a),y=1/(n.length-1);c=n.length<=2?0:Math.min(Math.floor(f*(n.length-1)),n.length-2),u=(f-c*y)/y}else{for(c=0;c{const{stop:n}=e,s=t.at(i+1)?.color;return s==null?[e]:[e,{stop:n,color:s}]})}function Q9(t,e){const i=e==="discrete"?1:0,n=t.map((s,a,{length:o})=>({stop:(a+i)/(o-1+i),color:s}));return e==="discrete"?pG(n):n}function gG(t,e,i,n="continuous"){const s=t.map(y=>typeof y=="string"?{color:y}:y);if(s.length===0)return Q9(e,n);if(!q9(s))return pt.warnOnce("[fills] must have the stops defined in ascending order"),[];const a=Math.min(...i),o=Math.max(...i),r=n==="discrete",l=new Float64Array(s.length);let c=0,u=-1;for(let y=0;y=u){u=s.length-1;for(let D=y+1;Dy.color!=null)?.color,g;const f=s.map((y,x)=>{let S=y?.color;const D=l[x];return S!=null?d=S:d==null?(g==null&&(g=new qf,g.domain=[0,1],g.range=e),S=g.convert(D)):S=d,{stop:D,color:S}});return n==="discrete"?pG(f):f}var J9=class{constructor(e,i){this.imageLoader=e,this._cache=void 0,this.url=i.url,this.backgroundFill=i.backgroundFill??"black",this.backgroundFillOpacity=i.backgroundFillOpacity??1,this.repeat=i.repeat??"no-repeat",this.width=i.width,this.height=i.height,this.fit=i.fit??"stretch",this.rotation=i.rotation??0}createCanvasImage(e,i,n,s){if(!i)return null;const[a,o]=this.getSize(i.width,i.height,n,s);return a<1||o<1?(pt.warnOnce("Image fill is too small to render, ignoring."),null):e.createPattern(i,this.repeat)}getSize(e,i,n,s){const{fit:a}=this;let o=e,r=i,l=1;const c=n/s,u=e/i;return a==="stretch"||e===0||i===0?(o=n,r=s):a==="contain"?l=u>c?n/e:s/i:a==="cover"&&(l=u>c?s/i:n/e),[Math.max(1,o*l),Math.max(1,r*l)]}setImageTransform(e,i){if(typeof e=="string")return;const{url:n,rotation:s,width:a,height:o}=this,r=this.imageLoader?.loadImage(n);if(!r)return;const l=Dl(s),c=Math.cos(l),u=Math.sin(l),[d,g]=this.getSize(r.width,r.height,a??i.width,o??i.height),f=d/r.width,y=g/r.height,x=i.x+i.width/2,S=i.y+i.height/2,D=c*d-u*g,A=u*d+c*g,I=D/2,w=A/2,N=f1();e?.setTransform(new N([c*f,u*y,-u*f,c*y,x-I,S-w]))}createPattern(e,i,n,s){const a=this.width??i,o=this.height??n,r=this._cache;if(r?.ctx===e&&r.width===a&&r.height===o)return r.pattern;const l=this.imageLoader?.loadImage(this.url,s),c=this.createCanvasImage(e,l,a,o);if(c!=null)return this._cache={ctx:e,pattern:c,width:a,height:o},c}toSvg(e,i){const{url:n,rotation:s,backgroundFill:a,backgroundFillOpacity:o}=this,{x:r,y:l,width:c,height:u}=e,d=$i("pattern");d.setAttribute("viewBox",`0 0 ${c} ${u}`),d.setAttribute("x",String(r)),d.setAttribute("y",String(l)),d.setAttribute("width",String(c)),d.setAttribute("height",String(u)),d.setAttribute("patternUnits","userSpaceOnUse");const g=$i("rect");g.setAttribute("x","0"),g.setAttribute("y","0"),g.setAttribute("width",String(c)),g.setAttribute("height",String(u)),g.setAttribute("fill",a),g.setAttribute("fill-opacity",String(o)),d.appendChild(g);const f=$i("image");return f.setAttribute("href",n),f.setAttribute("x","0"),f.setAttribute("y","0"),f.setAttribute("width",String(c)),f.setAttribute("height",String(u)),f.setAttribute("preserveAspectRatio","none"),f.setAttribute("transform",`scale(${1/i}) rotate(${s}, ${c/2}, ${u/2})`),d.appendChild(f),d}},tZ=/^[\t\n\f\r ]*([achlmqstvz])[\t\n\f\r ]*/i,di=/^[+-]?((\d*\.\d+)|(\d+\.)|(\d+))(e[+-]?\d+)?/i,eZ=/[\t\n\f\r ]*,?[\t\n\f\r ]*/,_z=/^[01]/,iZ={z:[],h:[di],v:[di],m:[di,di],l:[di,di],t:[di,di],s:[di,di,di,di],q:[di,di,di,di],c:[di,di,di,di,di,di],a:[di,di,di,_z,_z,di,di]};function nZ(t){if(!t)return;const e=[];let i=0,n;for(;i=0&&i<=1?[i]:[]}function oZ(t,e,i,n=1e-6){if(Math.abs(t)=0&&o<=1&&a.push(o)}else if(s>0){const o=Math.sqrt(s),r=(-e-o)/(2*t),l=(-e+o)/(2*t);r>=0&&r<=1&&a.push(r),l>=0&&l<=1&&a.push(l)}return a}function rZ(t,e,i,n,s=1e-6){if(Math.abs(t)=0){const f=Math.sqrt(u),y=Math.sign(c+f)*Math.pow(Math.abs(c+f),d),x=Math.sign(c-f)*Math.pow(Math.abs(c-f),d),S=Math.abs(Math.sqrt(3)*(y-x)/2),D=-d*a+(y+x);if(D>=0&&D<=1&&g.push(D),Math.abs(S)=0&&A<=1&&g.push(A)}}else{const f=Math.acos(c/Math.sqrt(-l*l*l)),y=d*a,x=2*Math.sqrt(-l),S=x*Math.cos(d*f)-y,D=x*Math.cos(d*(f+2*Math.PI))-y,A=x*Math.cos(d*(f+4*Math.PI))-y;S>=0&&S<=1&&g.push(S),D>=0&&D<=1&&g.push(D),A>=0&&A<=1&&g.push(A)}return g}function bb(t,e,i,n,s,a,o,r){const l=(i-t)*(r-a)-(n-e)*(o-s);if(l===0)return 0;const c=((o-s)*(e-a)-(t-s)*(r-a))/l,u=((i-t)*(e-a)-(n-e)*(t-s))/l;return c>=0&&c<=1&&u>=0&&u<=1?1:0}function lZ(t,e,i,n,s,a,o,r,l,c,u,d){let g=0;const f=c-d,y=u-l,x=l*(d-c)-c*(u-l),S=Fz(t,i,s,o),D=Fz(e,n,a,r),A=f*S[0]+y*D[0],I=f*S[1]+y*D[1],w=f*S[2]+y*D[2],N=f*S[3]+y*D[3]+x,O=rZ(A,I,w,N);for(const L of O){const R=L*L,P=L*R,B=S[0]*P+S[1]*R+S[2]*L+S[3],F=D[0]*P+D[1]*R+D[2]*L+D[3];let H;l===u?H=(F-c)/(d-c):H=(B-l)/(u-l),H>=0&&H<=1&&g++}return g}function Fz(t,e,i,n){return[-t+3*e-3*i+n,3*t-6*e+3*i,-3*t+3*e,t]}var Cf=class{constructor(){this.previousCommands=[],this.previousParams=[],this.previousClosedPath=!1,this.commands=[],this.params=[],this.commandsLength=0,this.paramsLength=0,this.cx=Number.NaN,this.cy=Number.NaN,this.sx=Number.NaN,this.sy=Number.NaN,this.openedPath=!1,this.closedPath=!1;const e=Ob();this.path2d=new e}isEmpty(){return this.commandsLength===0}isDirty(){return this.closedPath!==this.previousClosedPath||this.previousCommands.length!==this.commandsLength||this.previousParams.length!==this.paramsLength||this.previousCommands.toString()!==this.commands.slice(0,this.commandsLength).toString()||this.previousParams.toString()!==this.params.slice(0,this.paramsLength).toString()}getPath2D(){return this.path2d}moveTo(e,i){this.openedPath=!0,this.sx=e,this.sy=i,this.cx=e,this.cy=i,this.path2d.moveTo(e,i),this.commands[this.commandsLength++]=0,this.params[this.paramsLength++]=e,this.params[this.paramsLength++]=i}lineTo(e,i){this.openedPath?(this.cx=e,this.cy=i,this.path2d.lineTo(e,i),this.commands[this.commandsLength++]=1,this.params[this.paramsLength++]=e,this.params[this.paramsLength++]=i):this.moveTo(e,i)}cubicCurveTo(e,i,n,s,a,o){this.openedPath||this.moveTo(e,i),this.path2d.bezierCurveTo(e,i,n,s,a,o),this.commands[this.commandsLength++]=2,this.params[this.paramsLength++]=e,this.params[this.paramsLength++]=i,this.params[this.paramsLength++]=n,this.params[this.paramsLength++]=s,this.params[this.paramsLength++]=a,this.params[this.paramsLength++]=o}closePath(){this.openedPath&&(this.cx=this.sx,this.cy=this.sy,this.sx=Number.NaN,this.sy=Number.NaN,this.path2d.closePath(),this.commands[this.commandsLength++]=3,this.openedPath=!1,this.closedPath=!0)}rect(e,i,n,s){this.moveTo(e,i),this.lineTo(e+n,i),this.lineTo(e+n,i+s),this.lineTo(e,i+s),this.closePath()}roundRect(e,i,n,s,a){a=Math.min(a,n/2,s/2),this.moveTo(e,i+a),this.arc(e+a,i+a,a,Math.PI,1.5*Math.PI),this.lineTo(e+a,i),this.lineTo(e+n-a,i),this.arc(e+n-a,i+a,a,1.5*Math.PI,2*Math.PI),this.lineTo(e+n,i+a),this.lineTo(e+n,i+s-a),this.arc(e+n-a,i+s-a,a,0,Math.PI/2),this.lineTo(e+n-a,i+s),this.lineTo(e+a,i+s),this.arc(e+ +a,i+s-a,a,Math.PI/2,Math.PI),this.lineTo(e,i+s-a),this.closePath()}ellipse(e,i,n,s,a,o,r,l=!1){const c=n,u=s/n,d=Math.cos(a),g=Math.sin(a),f=-u*g,y=u*d,x=c*Math.cos(o),S=c*Math.sin(o),D=e+d*x+f*S,A=i+g*x+y*S,I=(D-this.cx)**2+(A-this.cy)**2;this.openedPath?I>1e-6&&this.lineTo(D,A):this.moveTo(D,A);let w=l?-ze(o-r):ze(r-o);Math.abs(Math.abs(r-o)-2*Math.PI)<1e-6&&w<2*Math.PI&&(w+=2*Math.PI*(l?-1:1));const N=Math.max(Math.ceil(Math.abs(w)/(Math.PI/2)),1),O=w/N,L=4/3*Math.tan(O/4);for(let R=0;R=1?(A=Math.sqrt(A),n*=A,s*=A):(A=Math.sqrt(1/A-1),o===r&&(A=-A),N=A*n*D,O=-A*s*S,I+=f*N-g*O,w+=g*N+f*O);const L=Math.atan2((x-O)/s,(y-N)/n),R=Math.atan2((-x-O)/s,(-y-N)/n)-L,P=L+R,B=!!(1-r);this.ellipse(I,w,n,s,a,L,P,B)}clear(e){e?(this.previousCommands=this.commands.slice(0,this.commandsLength),this.previousParams=this.params.slice(0,this.paramsLength),this.previousClosedPath=this.closedPath,this.commands=[],this.params=[],this.commandsLength=0,this.paramsLength=0):(this.commandsLength=0,this.paramsLength=0);const i=Ob();this.path2d=new i,this.openedPath=!1,this.closedPath=!1}isPointInPath(e,i){const n=this.commands,s=this.params,a=this.commandsLength,o=-1e4,r=-1e4;let l=Number.NaN,c=Number.NaN,u=0,d=0,g=0;for(let f=0,y=0;f({x:i,y:n})){const i=[],{commands:n,params:s}=this,a=(r,l)=>{i.push(r);for(let c=0;c{n=Math.min(y,n),s=Math.min(f,s),a=Math.max(f,a),o=Math.max(y,o),r=f,l=y};let g=0;for(let f=0;fs!==0)){const s=i.length%2===1?[...i,...i]:i;t.setAttribute("stroke-dasharray",s.join(" ")),n!=null&&t.setAttribute("stroke-dashoffset",String(n))}}var is=class extends Oc{constructor(){super(...arguments),this.drawingMode="overlay",this.fillOpacity=1,this.strokeOpacity=1,this.fill="black",this.strokeWidth=0,this.lineDashOffset=0,this.opacity=1}getGradient(e){if(an(e))return this.createGradient(e)}createGradient(e){const{colorSpace:i="rgb",gradient:n="linear",colorStops:s,rotation:a=0,reverse:o=!1}=e;if(s==null)return;let r=gG(s,["black"],[0,1]);switch(o&&(r=r.map(l=>({color:l.color,stop:1-l.stop})).reverse()),n){case"linear":return new X9(i,r,a);case"radial":return new Z9(i,r);case"conic":return new $9(i,r,a)}}getPattern(e){if(ir(e))return this.createPattern(e)}createPattern(e){return new hZ(e)}getImage(e){if(ml(e))return this.createImage(e)}createImage(e){return new J9(this.imageLoader,e)}onFillChange(){typeof this.fill=="object"&&ks(this._cachedFill??{},this.fill)||(this.fillGradient=this.getGradient(this.fill),this.fillPattern=this.getPattern(this.fill),this.fillImage=this.getImage(this.fill),this._cachedFill=this.fill)}onStrokeChange(){this.strokeGradient=this.getGradient(this.stroke)}align(e,i){return Fn(this.layerManager?.canvas?.pixelRatio??1,e,i)}markDirty(e){super.markDirty(e),this.cachedDefaultGradientFillBBox=void 0}fillStroke(e,i){this.__drawingMode==="cutout"&&(e.globalCompositeOperation="destination-out",this.executeFill(e,i),e.globalCompositeOperation="source-over"),this.renderFill(e,i),this.renderStroke(e,i)}renderFill(e,i){const{__fill:n,__fillOpacity:s=1,fillImage:a}=this;if(n!=null&&n!=="none"&&s>0){const o=e.globalAlpha;a&&(e.globalAlpha=a.backgroundFillOpacity,e.fillStyle=a.backgroundFill,this.executeFill(e,i),e.globalAlpha=o),this.applyFillAndAlpha(e),this.applyShadow(e),this.executeFill(e,i),e.globalAlpha=o,this.fillShadow?.enabled&&(e.shadowColor="rgba(0, 0, 0, 0)")}}executeFill(e,i){i?e.fill(i):e.fill()}applyFillAndAlpha(e){const{__fill:i,fillGradient:n,fillPattern:s,fillImage:a,__fillOpacity:o=1,__opacity:r=1}=this,l=r*o;if(l!==1&&(e.globalAlpha*=l),n){const{fillBBox:c=this.getDefaultGradientFillBBox()??this.getBBox(),fillParams:u}=this;e.fillStyle=n.createGradient(e,c,u)??"black"}else if(s){const{x:c,y:u}=this.getBBox(),d=this.layerManager?.canvas?.pixelRatio??1,g=s.createPattern(e,d);s.setPatternTransform(g,d,c,u),g?e.fillStyle=g:(e.fillStyle=s.fill,e.globalAlpha*=s.fillOpacity)}else if(a){const c=this.getBBox(),u=a.createPattern(e,c.width,c.height,this);a.setImageTransform(u,c),e.fillStyle=u??"transparent"}else e.fillStyle=typeof i=="string"?i:"black"}applyStrokeAndAlpha(e){const{__stroke:i,__strokeOpacity:n=1,strokeGradient:s,__opacity:a=1}=this;e.strokeStyle=s?.createGradient(e,this.getBBox())??(typeof i=="string"?i:void 0)??"black";const o=a*n;o!==1&&(e.globalAlpha*=o)}applyShadow(e){const i=this.layerManager?.canvas.pixelRatio??1,{__fillShadow:n}=this;n?.enabled&&(e.shadowColor=n.color,e.shadowOffsetX=n.xOffset*i,e.shadowOffsetY=n.yOffset*i,e.shadowBlur=n.blur*i)}renderStroke(e,i){const{__stroke:n,__strokeWidth:s=0,__strokeOpacity:a=1,__lineDash:o,__lineDashOffset:r,__lineCap:l,__lineJoin:c,__miterLimit:u}=this;if(n!=null&&n!=="none"&&s>0&&a>0){const{globalAlpha:d}=e;this.applyStrokeAndAlpha(e),e.lineWidth=s,o&&e.setLineDash(o),r&&(e.lineDashOffset=r),l&&(e.lineCap=l),c&&(e.lineJoin=c),u!=null&&(e.miterLimit=u),this.executeStroke(e,i),e.globalAlpha=d}}executeStroke(e,i){i?e.stroke(i):e.stroke()}getDefaultGradientFillBBox(){return this.cachedDefaultGradientFillBBox??(this.cachedDefaultGradientFillBBox=Object.freeze(this.computeDefaultGradientFillBBox())),this.cachedDefaultGradientFillBBox}computeDefaultGradientFillBBox(){}containsPoint(e,i){return this.isPointInPath(e,i)}applySvgFillAttributes(e,i){const{fill:n,fillOpacity:s}=this;if(typeof n=="string")e.setAttribute("fill",n);else if(an(n)&&this.fillGradient){i??(i=[]);const a=this.fillGradient.toSvg(this.fillBBox??this.getBBox()),o=yb();a.setAttribute("id",o),i.push(a),e.setAttribute("fill",`url(#${o})`)}else if(ir(n)&&this.fillPattern){i??(i=[]);const a=this.fillPattern.toSvg(),o=yb();a.setAttribute("id",o),i.push(a),e.setAttribute("fill",`url(#${o})`)}else if(ml(n)&&this.fillImage){i??(i=[]);const a=this.layerManager?.canvas?.pixelRatio??1,o=this.fillImage.toSvg(this.getBBox(),a),r=yb();o.setAttribute("id",r),i.push(o),e.setAttribute("fill",`url(#${r})`)}else e.setAttribute("fill","none");return e.setAttribute("fill-opacity",String(s)),i}applySvgStrokeAttributes(e){const{stroke:i,strokeOpacity:n,strokeWidth:s,lineDash:a,lineDashOffset:o}=this;uZ(e,{stroke:zi(i)?i:void 0,strokeOpacity:n,strokeWidth:s}),dZ(e,{lineDash:a,lineDashOffset:o})}static handleFillChange(e){e.onFillChange()}static handleStrokeChange(e){e.onStrokeChange()}setStyleProperties(e,i,n){const s=e?.opacity??1,a=e?.fill,o=(e?.fillOpacity??1)*s,r=(e?.strokeOpacity??1)*s,l=e?.strokeWidth??0,c=e?.lineDashOffset??0;let u=!1;this.__fillOpacity!==o&&(this.__fillOpacity=o,u=!0),this.__strokeOpacity!==r&&(this.__strokeOpacity=r,u=!0),this.__strokeWidth!==l&&(this.__strokeWidth=l,u=!0),this.__lineDashOffset!==c&&(this.__lineDashOffset=c,u=!0),this.__lineDash!==e?.lineDash&&(this.__lineDash=e?.lineDash,u=!0),this.setFillProperties(a,i,n),a!==this.fill&&(this.fill=a),e?.stroke!==this.stroke&&(this.stroke=e?.stroke),u&&this.markDirty()}setFillProperties(e,i,n){const s=i==null||!an(e)||e.bounds==null||e.bounds==="item"?void 0:i[e.bounds];let a=!1;this.__fillBBox!==s&&(this.__fillBBox=s,a=!0),this.__fillParams!==n&&(this.__fillParams=n,a=!0),a&&(this.onFillChange(),this.markDirty())}};T([fe()],is.prototype,"drawingMode",2);T([fe()],is.prototype,"fillOpacity",2);T([fe()],is.prototype,"strokeOpacity",2);T([_x({changeCb:is.handleFillChange})],is.prototype,"fill",2);T([Bu({changeCb:is.handleStrokeChange})],is.prototype,"stroke",2);T([fe()],is.prototype,"strokeWidth",2);T([Vx()],is.prototype,"lineDash",2);T([fe()],is.prototype,"lineDashOffset",2);T([fe()],is.prototype,"lineCap",2);T([fe()],is.prototype,"lineJoin",2);T([fe()],is.prototype,"miterLimit",2);T([fe({convertor:t=>Nt(0,t??1,1)})],is.prototype,"opacity",2);T([Bu({checkDirtyOnAssignment:!0})],is.prototype,"fillShadow",2);T([_x({changeCb:t=>t.onFillChange()})],is.prototype,"fillBBox",2);T([_x({changeCb:t=>t.onFillChange()})],is.prototype,"fillParams",2);var Ip=is,fG=[1,0,0,1,0,0],up=class VS{get e(){return[...this.elements]}constructor(e=fG){this.elements=[...e]}setElements(e){const i=this.elements;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],this}get identity(){const e=this.elements;return be(e[0],1)&&be(e[1],0)&&be(e[2],0)&&be(e[3],1)&&be(e[4],0)&&be(e[5],0)}AxB(e,i,n){const s=e[0]*i[0]+e[2]*i[1],a=e[1]*i[0]+e[3]*i[1],o=e[0]*i[2]+e[2]*i[3],r=e[1]*i[2]+e[3]*i[3],l=e[0]*i[4]+e[2]*i[5]+e[4],c=e[1]*i[4]+e[3]*i[5]+e[5];n=n??e,n[0]=s,n[1]=a,n[2]=o,n[3]=r,n[4]=l,n[5]=c}multiplySelf(e){return this.AxB(this.elements,e.elements),this}multiply(e){const i=[Number.NaN,Number.NaN,Number.NaN,Number.NaN,Number.NaN,Number.NaN];return e instanceof VS?this.AxB(this.elements,e.elements,i):this.AxB(this.elements,[e.a,e.b,e.c,e.d,e.e,e.f],i),new VS(i)}preMultiplySelf(e){return this.AxB(e.elements,this.elements,this.elements),this}inverse(){const e=this.elements;let i=e[0],n=e[1],s=e[2],a=e[3];const o=e[4],r=e[5],l=1/(i*a-n*s);return i*=l,n*=l,s*=l,a*=l,new VS([a,-n,-s,i,s*r-a*o,n*o-i*r])}invertSelf(){const e=this.elements;let i=e[0],n=e[1],s=e[2],a=e[3];const o=e[4],r=e[5],l=1/(i*a-n*s);return i*=l,n*=l,s*=l,a*=l,e[0]=a,e[1]=-n,e[2]=-s,e[3]=i,e[4]=s*r-a*o,e[5]=n*o-i*r,this}transformPoint(e,i){const n=this.elements;return{x:e*n[0]+i*n[2]+n[4],y:e*n[1]+i*n[3]+n[5]}}transformBBox(e,i){const n=this.elements,s=n[0],a=n[1],o=n[2],r=n[3],l=e.width*.5,c=e.height*.5,u=e.x+l,d=e.y+c,g=Math.abs(l*s)+Math.abs(c*o),f=Math.abs(l*a)+Math.abs(c*r);return i??(i=new Tt(0,0,0,0)),i.x=u*s+d*o+n[4]-g,i.y=u*a+d*r+n[5]-f,i.width=g+g,i.height=f+f,i}toContext(e){if(this.identity)return;const i=this.elements;e.transform(i[0],i[1],i[2],i[3],i[4],i[5])}static updateTransformMatrix(e,i,n,s,a,o,r){const l=i,c=n;let u,d;l===1&&c===1?(u=0,d=0):(u=r?.scalingCenterX??0,d=r?.scalingCenterY??0);const g=s,f=Math.cos(g),y=Math.sin(g);let x,S;g===0?(x=0,S=0):(x=r?.rotationCenterX??0,S=r?.rotationCenterY??0);const D=a,A=o,I=u*(1-l)-x,w=d*(1-c)-S;return e.setElements([f*l,y*l,-y*c,f*c,f*I-y*w+x+D,y*I+f*w+S+A]),e}};function Th(t){return yG(t.constructor)}var mG=Symbol("isMatrixTransform");function yG(t){return t[mG]===!0}function OT(t){var e,i;const n=t;if(yG(t))return t;const s=Symbol("matrix_combined_transform");class a extends n{constructor(){super(...arguments),this[i]=new up,this._dirtyTransform=!0}onChangeDetection(r){super.onChangeDetection(r),this._dirtyTransform=!0,!(this.batchLevel>0)&&this.markDirty("transform")}updateMatrix(r){}computeTransformMatrix(){this._dirtyTransform&&(this[s].setElements(fG),this.updateMatrix(this[s]),this._dirtyTransform=!1)}toParent(r){return this.computeTransformMatrix(),this[s].identity?r.clone():this[s].transformBBox(r)}toParentPoint(r,l){return this.computeTransformMatrix(),this[s].identity?{x:r,y:l}:this[s].transformPoint(r,l)}fromParent(r){return this.computeTransformMatrix(),this[s].identity?r.clone():this[s].inverse().transformBBox(r)}fromParentPoint(r,l){return this.computeTransformMatrix(),this[s].identity?{x:r,y:l}:this[s].inverse().transformPoint(r,l)}computeBBox(){const r=super.computeBBox();return r&&this.toParent(r)}computeBBoxWithoutTransforms(){return super.computeBBox()}pickNode(r,l){return{x:r,y:l}=this.fromParentPoint(r,l),super.pickNode(r,l)}pickNodes(r,l,c){return{x:r,y:l}=this.fromParentPoint(r,l),super.pickNodes(r,l,c)}render(r){this.computeTransformMatrix();const{ctx:l}=r,c=this[s];let u=!1;try{c.identity||(l.save(),u=!0,c.toContext(l)),super.render(r)}finally{u&&l.restore()}}toSVG(){this.computeTransformMatrix();const r=super.toSVG(),l=this[s];if(l.identity||r==null)return r;const c=$i("g");c.append(...r.elements);const[u,d,g,f,y,x]=l.e;return c.setAttribute("transform",`matrix(${u} ${d} ${g} ${f} ${y} ${x})`),{elements:[c],defs:r.defs}}}return e=mG,i=s,a[e]=!0,a}function Qf(t){var e;const i=t,n=Symbol("matrix_rotation");class s extends OT(i){constructor(){super(...arguments),this[e]=new up,this.rotationCenterX=0,this.rotationCenterY=0,this.rotation=0}updateMatrix(o){super.updateMatrix(o);const{rotation:r,rotationCenterX:l,rotationCenterY:c}=this;r!==0&&(up.updateTransformMatrix(this[n],1,1,r,0,0,{rotationCenterX:l,rotationCenterY:c}),o.multiplySelf(this[n]))}}return e=n,T([ut()],s.prototype,"rotationCenterX",2),T([ut()],s.prototype,"rotationCenterY",2),T([ut()],s.prototype,"rotation",2),s}function pZ(t){return"scalingX"in t&&"scalingY"in t&&"scalingCenterX"in t&&"scalingCenterY"in t}function PD(t){var e;const i=t,n=Symbol("matrix_scale");class s extends OT(i){constructor(){super(...arguments),this[e]=new up,this.scalingX=1,this.scalingY=1,this.scalingCenterX=0,this.scalingCenterY=0}updateMatrix(o){super.updateMatrix(o);const{scalingX:r,scalingY:l,scalingCenterX:c,scalingCenterY:u}=this;r===1&&l===1||(up.updateTransformMatrix(this[n],r,l,0,0,0,{scalingCenterX:c,scalingCenterY:u}),o.multiplySelf(this[n]))}resetScalingProperties(o,r,l,c){this.__scalingX=o,this.__scalingY=r,this.__scalingCenterX=l,this.__scalingCenterY=c,this.onChangeDetection("scaling")}}return e=n,T([ut()],s.prototype,"scalingX",2),T([ut()],s.prototype,"scalingY",2),T([ut()],s.prototype,"scalingCenterX",2),T([ut()],s.prototype,"scalingCenterY",2),s}function Jf(t){var e;const i=t,n=Symbol("matrix_translation");class s extends OT(i){constructor(){super(...arguments),this[e]=new up,this.translationX=0,this.translationY=0}updateMatrix(o){super.updateMatrix(o);const{translationX:r,translationY:l}=this;r===0&&l===0||(up.updateTransformMatrix(this[n],1,1,0,r,l),o.multiplySelf(this[n]))}}return e=n,T([ut()],s.prototype,"translationX",2),T([ut()],s.prototype,"translationY",2),s}var Ti=class{static fromCanvas(e,i){const n=[];for(const s of e.traverseUp())Th(s)&&n.unshift(s);for(const s of n)i=s.fromParent(i);return Th(e)&&(i=e.fromParent(i)),i}static toCanvas(e,i){i==null?i=e.getBBox():Th(e)&&(i=e.toParent(i));for(const n of e.traverseUp())Th(n)&&(i=n.toParent(i));return i}static fromCanvasPoint(e,i,n){const s=[];for(const a of e.traverseUp())Th(a)&&s.unshift(a);for(const a of s)({x:i,y:n}=a.fromParentPoint(i,n));return Th(e)&&({x:i,y:n}=e.fromParentPoint(i,n)),{x:i,y:n}}static toCanvasPoint(e,i,n){Th(e)&&({x:i,y:n}=e.toParentPoint(i,n));for(const s of e.traverseUp())Th(s)&&({x:i,y:n}=s.toParentPoint(i,n));return{x:i,y:n}}},B0,ET=class Zy extends Oc{constructor(e){super(e),this.childNodes=new Set,this.dirty=!1,this.dirtyZIndex=!1,this.clipRect=void 0,this.opacity=1,this._childFontDirty=!0,this.layer=void 0,this.image=void 0,this._lastWidth=Number.NaN,this._lastHeight=Number.NaN,this._lastDevicePixelRatio=Number.NaN,this.isContainerNode=!0,this.renderToOffscreenCanvas=e?.renderToOffscreenCanvas===!0,this.optimizeForInfrequentRedraws=e?.optimizeForInfrequentRedraws===!0}static is(e){return e instanceof Zy}static computeChildrenBBox(e,i=!0){return Tt.merge(Oc.extractBBoxes(e,i))}static compareChildren(e,i){return cG(e.__zIndex,i.__zIndex)||e.serialNumber-i.serialNumber}containsPoint(e,i){return!0}computeBBox(){return Zy.computeChildrenBBox(this.children())}computeSafeClippingBBox(e){const i=this.computeBBox();if(i?.isFinite()!==!0)return;let n=0;const s=4;for(const g of this.descendants())g instanceof Ip&&(n=Math.max(n,g.strokeWidth));const a=Math.max(1,n/2*s),{x:o,y:r}=Ti.toCanvasPoint(this,0,0),l=Gz(e,o+i.x-a)-o,c=Gz(e,r+i.y-a)-r,u=Math.ceil(i.x+i.width-l+a),d=Math.ceil(i.y+i.height-c+a);return new Tt(l,c,u,d)}prepareSharedCanvas(e,i,n){return B0?.pixelRatio===n?B0.resize(e,i,n):B0=new NT({width:e,height:i,pixelRatio:n}),B0}setScene(e){const i=this.scene;super.setScene(e),this.layer&&i&&i!==e&&(i.layersManager.removeLayer(this.layer),this.layer=void 0);for(const n of this.children())n.setScene(e)}resolveFont(){if(!this.renderToOffscreenCanvas)return this.resolveChildFont()}resolveChildFont(){if(this._childFontDirty){this._cachedChildFont=void 0;for(const e of this.children()){const i=e.resolveFont();if(i!=null){this._cachedChildFont=i;break}}this._childFontDirty=!1}return this._cachedChildFont}markDirty(e){this.dirty=!0,this._childFontDirty=!0,super.markDirty(e)}markDirtyChildrenOrder(){super.markDirtyChildrenOrder(),this.dirtyZIndex=!0,this.markDirty()}append(e){for(const i of H4(e))i.remove(),this.childNodes.add(i),i.parentNode=this,i.setScene(this.scene);this.markDirtyChildrenOrder(),this.markDirty()}appendChild(e){return this.append(e),e}removeChild(e){if(!this.childNodes?.delete(e))throw new Error(`AG Charts - internal error, unknown child node ${e.name??e.id} in $${this.name??this.id}`);e.parentNode=void 0,e.setScene(),this.markDirtyChildrenOrder(),this.markDirty()}clear(){for(const e of this.children())delete e.parentNode,e.setScene();this.childNodes?.clear(),this.markDirty()}pickNode(e,i){if(!(!this.visible||this.pointerEvents===1||!this.containsPoint(e,i))){if(this.childNodes!=null&&this.childNodes.size!==0){const n=[...this.children()];for(let s=n.length-1;s>=0;s--){const o=n[s].pickNode(e,i);if(o!=null)return o}}else if(!this.isContainerNode)return this}}pickNodes(e,i,n=[]){if(!this.visible||this.pointerEvents===1||!this.containsPoint(e,i))return n;this.isContainerNode||n.push(this);for(const s of this.children())s.pickNodes(e,i,n);return n}isDirty(e){const{width:i,height:n,devicePixelRatio:s}=e,{dirty:a,layer:o}=this,r=o!=null&&(this._lastWidth!==i||this._lastHeight!==n),l=this._lastDevicePixelRatio!==s;return this._lastWidth=i,this._lastHeight=n,this._lastDevicePixelRatio=s,a||r||l}preRender(e){let i;if(this.dirty){i=super.preRender(e,0);for(const n of this.children()){const s=n.preRender(e);i.groups+=s.groups,i.nonGroups+=s.nonGroups,i.complexity+=s.complexity}i.groups+=1,i.nonGroups-=1}else i=this.childNodeCounts;return this.renderToOffscreenCanvas&&!this.optimizeForInfrequentRedraws&&i.nonGroups>0&&this.getVisibility()?this.layer??(this.layer=this.layerManager?.addLayer({name:this.name})):this.layer!=null&&(this.layerManager?.removeLayer(this.layer),this.layer=void 0),i}render(e){const{layer:i,renderToOffscreenCanvas:n}=this,s={...e},a=this.isDirty(e);if(this.dirty=!1,!n){this.renderInContext(s),super.render(s);return}const{ctx:o,stats:r,devicePixelRatio:l}=e;let{image:c}=this;if(a){c?.bitmap.close(),c=void 0;const d=i?void 0:this.computeSafeClippingBBox(l),g=(f,...y)=>{const x=f.context;x.direction=s.direction,s.ctx=x,f.clear(),x.save();try{x.setTransform(...y),x.globalAlpha=1,this.renderInContext(s)}finally{x.restore(),x.verifyDepthZero?.()}};if(i)g(i,o.getTransform());else if(d){const{x:f,y,width:x,height:S}=d,D=Math.floor(x*l),A=Math.floor(S*l);if(D>0&&A>0){const I=this.prepareSharedCanvas(x,S,l);g(I,l,0,0,l,-f*l,-y*l),c={bitmap:I.transferToImageBitmap(),x:f,y,width:x,height:S}}}this.image=c,r&&r.layersRendered++}else r&&r.layersSkipped++;const{globalAlpha:u}=o;if(o.globalAlpha=u*this.opacity,i){o.save();try{o.resetTransform(),i.drawImage(o)}finally{o.restore()}}else if(c){const{bitmap:d,x:g,y:f,width:y,height:x}=c;o.drawImage(d,0,0,y*l,x*l,g,f,y,x)}o.globalAlpha=u,super.render(s)}applyClip(e,i){const{x:n,y:s,width:a,height:o}=i;e.beginPath(),e.rect(n,s,a,o),e.clip()}renderInContext(e){const{ctx:i,stats:n}=e;this.dirtyZIndex&&(this.sortChildren(Zy.compareChildren),this.dirtyZIndex=!1),i.save();try{i.globalAlpha*=this.opacity;const s=this.resolveChildFont();s!=null&&i.font!==s&&(i.font=s),this.clipRect!=null&&(this.applyClip(i,this.clipRect),e.clipBBox=Ti.toCanvas(this,this.clipRect));for(const a of this.children()){if(!a.visible){n&&(n.nodesSkipped+=a.childNodeCounts.nonGroups+a.childNodeCounts.groups,n.opsSkipped+=a.childNodeCounts.complexity);continue}a.isolatedRender(e)}}finally{i.restore()}}sortChildren(e){if(!this.childNodes)return;const i=[...this.childNodes].sort(e);this.childNodes.clear();for(const n of i)this.childNodes.add(n)}*children(){yield*this.childNodes}*excludeChildren(e){for(const i of this.children())(e.instance&&!(i instanceof e.instance)||e.name&&i.name!==e.name)&&(yield i)}*descendants(){for(const e of this.children())yield e,e instanceof Zy&&(yield*e.descendants())}setClipRect(e){this.clipRect=e?Ti.fromCanvas(this,e):void 0}setClipRectCanvasSpace(e){this.clipRect=e}getVisibility(){for(const e of this.traverseUp(!0))if(!e.visible)return!1;return!0}toSVG(){if(!this.visible)return;const e=[],i=[];for(const n of this.children()){const s=n.toSVG();s!=null&&(i.push(...s.elements),s.defs!=null&&e.push(...s.defs))}return{elements:i,defs:e}}};ET.className="Group";T([ut({convertor:t=>Nt(0,t,1)})],ET.prototype,"opacity",2);var ee=ET,gZ=class extends PD(ee){};(class extends Qf(ee){});var Ds=class extends Jf(ee){},jg=class extends Qf(Jf(ee)){},fZ=class{constructor(){this.stats=new Map,this.lastLogTime=Date.now(),this.LOG_INTERVAL_MS=1e4,this.startPeriodicLogging()}startPeriodicLogging(){Gt.check("scene:stats","scene:stats:verbose")&&(this.stopPeriodicLogging(),this.intervalId=setInterval(()=>{this.logAccumulatedStats()},this.LOG_INTERVAL_MS))}stopPeriodicLogging(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0)}recordTiming(t,e){const i=this.stats.get(t);i?(i.min=Math.min(i.min,e),i.max=Math.max(i.max,e),i.sum+=e,i.count+=1):this.stats.set(t,{min:e,max:e,sum:e,count:1})}recordTimings(t){for(const[e,i]of Object.entries(t))e!=="start"&&typeof i=="number"&&this.recordTiming(e,i)}logAccumulatedStats(){if(this.stats.size===0)return;const t=(Date.now()-this.lastLogTime)/1e3,e=Array.from(this.stats.keys()).sort((a,o)=>a==="⏱️"?-1:o==="⏱️"?1:a.localeCompare(o)),i=[];for(const a of e){const o=this.stats.get(a),r=o.sum/o.count;i.push(`${a}[${o.min.toFixed(1)}/${r.toFixed(1)}/${o.max.toFixed(1)}]ms`)}const s=this.stats.get("⏱️")?.count??0;pt.log(`📊 Stats (${t.toFixed(0)}s, ${s} renders): ${i.join(" ")}`),this.stats.clear(),this.lastLogTime=Date.now()}destroy(){this.stopPeriodicLogging(),this.stats.clear()}},lf,Ud=0;function mZ(){return lf??(lf=new fZ),lf}function yZ(){Ud++;let t=!1;return()=>{t||Ud===0||(t=!0,Ud--,Ud===0&&xG())}}function bZ(t){for(const e of["B","KB","MB","GB"]){if(t<1536)return`${t.toFixed(1)}${e}`;t/=1024}return`${t.toFixed(1)}TB}`}function xZ(){if(!("memory"in performance))return;const{totalJSHeapSize:t,usedJSHeapSize:e,jsHeapSizeLimit:i}=performance.memory,n=[];for(const s of[e,t,i])typeof s=="number"&&n.push(bZ(s));return`Heap ${n.join(" / ")}`}function Kz(t,e,i,n,s={},a=Tt.zero,o){if(!Gt.check("scene:stats","scene:stats:verbose"))return;const{layersRendered:r=0,layersSkipped:l=0,nodesRendered:c=0,nodesSkipped:u=0,opsPerformed:d=0,opsSkipped:g=0}=n??{},f=performance.now(),{start:y,...x}=e,S=f-y,D=mZ();D.recordTimings(x),D.recordTiming("⏱️",S);const A=Object.entries(x).map(([W,q])=>Yz(W,q)).filter(W=>W!=null).join(" + "),I=Object.entries(s).map(([W,q])=>`${W}: ${JSON.stringify(q)}`).join(" ; "),w=Gt.check("scene:stats:verbose"),N=w?xZ():null,O=w?Vr.flush():{},L=Object.entries(O),R=[],P=[];for(const[W,q]of L)W.endsWith(":aggregation")&&Array.isArray(q)?R.push(`${W.replace(":aggregation","")}(${q.join(",")})`):W.endsWith(":nodeData")&&typeof q=="number"&&P.push(`${W.replace(":nodeData","")}(${q})`);const B=R.length>0?`Aggregation: ${R.join(", ")}`:null,F=P.length>0?`NodeData: ${P.join(", ")}`:null,H=[`${Yz("⏱️",y,f)} (${A})`,`${I}`,B,F,`Layers: ${w?AC(r,l):t.size}`,w?`Nodes: ${AC(c,u)}`:null,w?`Ops: ${AC(d,g)}`:null,N].filter(zi),$=new pT(i),Y=new Map(H.map(W=>[W,$.measureText(W)])),U=Math.max(...Array.from(Y.values(),W=>W.width)),V=IZ(Y.values(),W=>W.height),Z=2+a.x;i.save();try{i.fillStyle=o?.background??"white",i.fillRect(Z,0,U,V),i.fillStyle=o?.foreground??"black";let W=0;for(const[q,nt]of Y.entries())W+=nt.height,i.fillText(q,Z,W)}catch(W){pt.warnOnce("Error during debug stats rendering",W)}finally{i.restore()}}function vZ(t){const e=dx(Ml("agChartsSceneDebug")),i=[];for(const n of e)n==="layout"?i.push("seriesRoot","legend","root",/Axis-\d+-axis/):i.push(n);t.debugNodeSearch=i}function SZ(t,e){t.save();try{for(const[i,n]of Object.entries(e)){const s=Ti.toCanvas(n);if(!s){pt.log(`Scene.render() - no bbox for debugged node [${i}].`);continue}t.globalAlpha=.8,t.strokeStyle="red",t.lineWidth=1,t.strokeRect(s.x,s.y,s.width,s.height),t.fillStyle="red",t.strokeStyle="white",t.font="16px sans-serif",t.textBaseline="top",t.textAlign="left",t.lineWidth=2,t.strokeText(i,s.x,s.y,s.width),t.fillText(i,s.x,s.y,s.width)}}catch(i){pt.warnOnce("Error during debug rendering",i)}finally{t.restore()}}var MZ=new Set,DZ=new Set(["gradient","zIndex","clipRect","cachedBBox","childNodeCounts","path","__zIndex","name","__scalingCenterX","__scalingCenterY","__rotationCenterX","__rotationCenterY","_previousDatum","__fill","__lineDash","borderPath","borderClipPath","_clipPath"]);function AZ(t){const{...e}=t;for(const i of Object.keys(e))DZ.has(i)||typeof e[i]!="number"&&typeof e[i]!="string"&&typeof e[i]!="boolean"&&(MZ.add(i),delete e[i]);return e}function _S(t,e){if(!Gt.check(!0,"scene"))return{};let i=0;return{node:e==="json"?AZ(t):t,name:t.name??t.id,dirty:t instanceof ee?t.dirty:void 0,...Array.from(t instanceof ee?t.children():[],n=>_S(n,e)).reduce((n,s)=>{let{name:a}=s;const{node:{visible:o,opacity:r,zIndex:l,translationX:c,translationY:u,rotation:d,scalingX:g,scalingY:f},node:y}=s;(!o||r<=0)&&(a=`(${a})`),ee.is(y)&&y.renderToOffscreenCanvas&&(a=`*${a}*`);const x=Array.isArray(l)?`(${l.join(", ")})`:l,S=[`${(i++).toString().padStart(3,"0")}|`,`${a??""}`,`z: ${x}`,c&&`x: ${c}`,u&&`y: ${u}`,d&&`r: ${d}`,g!=null&&g!==1&&`sx: ${g}`,f!=null&&f!==1&&`sy: ${f}`].filter(I=>!!I).join(" ");let D=S,A=1;for(;n[D]!=null&&A<100;)D=`${S} (${A++})`;return n[D]=s,n},{})}}function bG(t){const e=t instanceof ee?t.dirty:void 0;if(!e)return{dirtyTree:{},paths:[]};const i=Array.from(t instanceof ee?t.children():[],a=>bG(a)).filter(a=>a.paths.length>0),n=ee.is(t)?t.name??t.id:t.id,s=i.length?i.flatMap(a=>a.paths).map(a=>`${n}.${a}`):[n];return{dirtyTree:{name:n,node:t,dirty:e,...i.map(a=>a.dirtyTree).filter(a=>a.dirty!=null).reduce((a,o)=>(a[o.name??""]=o,a),{})},paths:s}}function AC(t,e){const i=t+e;return`${t} / ${i} (${Math.round(100*t/i)}%)`}function Yz(t,e,i){const n=i==null?e:i-e;return`${t}: ${Math.round(n*100)/100}ms`}function IZ(t,e){let i=0;for(const n of t)i+=e(n);return i}function xG(t=!1){if(!lf){t&&(Ud=0);return}!t&&Ud>0||(lf.destroy(),lf=void 0,t&&(Ud=0))}var kZ=class{constructor(){this.available=!0,this.acquireQueue=[]}acquire(t){return new Promise((e,i)=>{this.acquireQueue.push([t,e,i]),this.available&&this.dispatchNext().catch(i)})}async acquireImmediately(t){return this.available?(await this.acquire(t),!0):!1}async waitForClearAcquireQueue(){return this.acquire(()=>Promise.resolve(void 0))}async dispatchNext(){this.available=!1;let[t,e,i]=this.acquireQueue.shift()??[];for(;t;){try{await t(),e?.()}catch(n){i?.(n)}[t,e,i]=this.acquireQueue.shift()??[]}this.available=!0}},vG=class{constructor(){this.eventListeners=new Map}addEventListener(t,e){if(typeof e!="function")throw new TypeError("AG Charts - listener must be a Function");const i=this.eventListeners.get(t);i?i.add(e):this.eventListeners.set(t,new Set([e]))}removeEventListener(t,e){const i=this.eventListeners.get(t);i!=null&&(i.delete(e),i.size===0&&this.eventListeners.delete(t))}hasEventListener(t){return this.eventListeners.has(t)}clearEventListeners(){this.eventListeners.clear()}fireEvent(t){const e=this.eventListeners.get(t.type);if(e)for(const i of e)i(t)}};function CZ(t,e){function i(s,a){return t.requestAnimationFrame(s)}function n(s){t.cancelAnimationFrame(s)}return SG(i,e,n)}function RT(t){function e(n,s=0){if(s===0){queueMicrotask(n);return}return setTimeout(n,s)}function i(n){clearTimeout(n)}return SG(e,t,i)}function SG(t,e,i){let n=0,s=!1,a,o,r;function l(){return s}function c(){s=!1,r=void 0,o?.(),o=void 0,a=void 0,n>0&&(r=t(u))}function u(){const x=n;n=0,s=!0;const S=e({count:x});if(!S){c();return}S.then(c,c)}function d(x){n===0&&!l()&&(r=t(u,x)),n++}function g(){r!=null&&i&&(i(r),r=void 0,n=0)}async function f(){if(l())for(a??(a=new Promise(y));l();)await a}function y(x){o=x}return{schedule:d,cancel:g,waitForCompletion:f}}var qy=(t,{x0:e,y0:i,x1:n,y1:s,cx:a,cy:o},r,l)=>{if(l&&t.moveTo(e,i),e!==n||i!==s){const c=Math.atan2(i-o,e-a),u=Math.atan2(s-o,n-a);t.arc(a,o,r,c,u)}else t.lineTo(e,i)},Tn=class extends Ip{constructor(){super(...arguments),this.path=new Cf,this._clipX=Number.NaN,this._clipY=Number.NaN,this.clip=!1,this._dirtyPath=!0,this.lastPixelRatio=Number.NaN}set clipX(e){this._clipX=e,this.dirtyPath=!0}set clipY(e){this._clipY=e,this.dirtyPath=!0}set dirtyPath(e){this._dirtyPath!==e&&(this._dirtyPath=e,e&&this.markDirty("path"))}get dirtyPath(){return this._dirtyPath}checkPathDirty(){this._dirtyPath||(this.dirtyPath=this.path.isDirty()||(this.fillShadow?.isDirty()??!1)||(this._clipPath?.isDirty()??!1))}resetPathDirty(){this.path.clear(!0),this._dirtyPath=!1}isPathDirty(){return this.path.isDirty()}onChangeDetection(e){this._dirtyPath||(this._dirtyPath=!0,super.onChangeDetection(e))}computeBBox(){return this.updatePathIfDirty(),this.path.computeBBox()}isPointInPath(e,i){return this.updatePathIfDirty(),this.path.closedPath&&this.path.isPointInPath(e,i)}distanceSquared(e,i){return this.distanceSquaredTransformedPoint(e,i)}svgPathData(e){return this.updatePathIfDirty(),this.path.toSVG(e)}distanceSquaredTransformedPoint(e,i){return this.updatePathIfDirty(),this.path.closedPath&&this.path.isPointInPath(e,i)?0:this.path.distanceSquared(e,i)}isDirtyPath(){return!1}updatePath(){}updatePathIfDirty(){(this.dirtyPath||this.isDirtyPath())&&(this.updatePath(),this.dirtyPath=!1)}preRender(e){return e.devicePixelRatio!==this.lastPixelRatio&&(this.dirtyPath=!0),this.lastPixelRatio=e.devicePixelRatio,this.updatePathIfDirty(),super.preRender(e,this.path.commands.length)}render(e){const{ctx:i}=e;if(this.clip&&!Number.isNaN(this._clipX)&&!Number.isNaN(this._clipY)){i.save();try{const n=this.strokeWidth/2;this._clipPath??(this._clipPath=new Cf),this._clipPath.clear(),this._clipPath.rect(-n,-n,this._clipX+n,this._clipY+n+n),i.clip(this._clipPath?.getPath2D()),this._clipX>0&&this._clipY>0&&this.drawPath(i)}finally{i.restore()}}else this._clipPath=void 0,this.drawPath(i);this.fillShadow?.markClean(),super.render(e)}drawPath(e){this.fillStroke(e,this.path.getPath2D())}toSVG(){if(!this.visible)return;const e=$i("path");e.setAttribute("d",this.svgPathData());const i=this.applySvgFillAttributes(e,[]);return this.applySvgStrokeAttributes(e),{elements:[e],defs:i}}};Tn.className="Path";T([ut()],Tn.prototype,"clip",2);T([ut()],Tn.prototype,"clipX",1);T([ut()],Tn.prototype,"clipY",1);function V0(t,e,i,n,s){let a=!1,o=!1,r=n-Math.sqrt(Math.max(s**2-i**2,0)),l=0,c=0,u=i-Math.sqrt(Math.max(s**2-n**2,0));return r>t?(a=!0,r=t,l=i-Math.sqrt(Math.max(s**2-(n-t)**2))):be(r,0)&&(r=0),u>e?(o=!0,c=n-Math.sqrt(Math.max(s**2-(i-e)**2)),u=e):be(u,0)&&(u=0),{leading0:r,leading1:l,trailing0:c,trailing1:u,leadingClipped:a,trailingClipped:o}}function FS(t,e,i,n,s,a,o){let{topLeft:r,topRight:l,bottomRight:c,bottomLeft:u}=a;const d=Math.max(r+u,l+c),g=Math.max(r+l,u+c);if(d<=0&&g<=0){if(o==null)t.rect(e,i,n,s);else{const L=Math.max(e,o.x),R=Math.min(e+n,o.x+o.width),P=Math.max(i,o.y),B=Math.min(i+s,o.y+o.height);t.rect(L,P,R-L,B-P)}return}else if(o==null&&r===l&&r===c&&r===u){t.roundRect(e,i,n,s,r);return}if(n<0&&(e+=n,n=Math.abs(n)),s<0&&(i+=s,s=Math.abs(s)),n<=0||s<=0)return;if(o==null)o=new Tt(e,i,n,s);else{const L=Math.max(e,o.x),R=Math.min(e+n,o.x+o.width),P=Math.max(i,o.y),B=Math.min(i+s,o.y+o.height);o=new Tt(L,P,R-L,B-P)}const f=Math.max(d/s,g/n,1);f>1&&(r/=f,l/=f,c/=f,u/=f);let y=!0,x=!0,S=!0,D=!0,A,I,w,N;if(y){const L=V0(o.height,o.width,Math.max(e+r-o.x,0),Math.max(i+r-o.y,0),r);L.leadingClipped&&(D=!1),L.trailingClipped&&(x=!1);const R=Math.max(o.x+L.leading1,o.x),P=Math.max(o.y+L.leading0,o.y),B=Math.max(o.x+L.trailing1,o.x),F=Math.max(o.y+L.trailing0,o.y),H=e+r,$=i+r;A={x0:R,y0:P,x1:B,y1:F,cx:H,cy:$}}if(x){const L=V0(o.width,o.height,Math.max(i+l-o.y,0),Math.max(o.x+o.width-(e+n-l),0),l);L.leadingClipped&&(y=!1),L.trailingClipped&&(S=!1);const R=Math.min(o.x+o.width-L.leading0,o.x+o.width),P=Math.max(o.y+L.leading1,o.y),B=Math.min(o.x+o.width-L.trailing0,o.x+o.width),F=Math.max(o.y+L.trailing1,o.y),H=e+n-l,$=i+l;I={x0:R,y0:P,x1:B,y1:F,cx:H,cy:$}}if(S){const L=V0(o.height,o.width,Math.max(o.x+o.width-(e+n-c),0),Math.max(o.y+o.height-(i+s-c),0),c);L.leadingClipped&&(x=!1),L.trailingClipped&&(D=!1);const R=Math.min(o.x+o.width-L.leading1,o.x+o.width),P=Math.min(o.y+o.height-L.leading0,o.y+o.height),B=Math.min(o.x+o.width-L.trailing1,o.x+o.width),F=Math.min(o.y+o.height-L.trailing0,o.y+o.height),H=e+n-c,$=i+s-c;w={x0:R,y0:P,x1:B,y1:F,cx:H,cy:$}}if(D){const L=V0(o.width,o.height,Math.max(o.y+o.height-(i+s-u),0),Math.max(e+u-o.x,0),u);L.leadingClipped&&(S=!1),L.trailingClipped&&(y=!1);const R=Math.max(o.x+L.leading0,o.x),P=Math.min(o.y+o.height-L.leading1,o.y+o.height),B=Math.max(o.x+L.trailing0,o.x),F=Math.min(o.y+o.height-L.trailing1,o.y+o.height),H=e+u,$=i+s-u;N={x0:R,y0:P,x1:B,y1:F,cx:H,cy:$}}let O=!1;y&&A!=null&&(qy(t,A,r,!O),O||(O=!0)),x&&I!=null&&(qy(t,I,l,!O),O||(O=!0)),S&&w!=null&&(qy(t,w,c,!O),O||(O=!0)),D&&N!=null&&qy(t,N,u,!O),t.closePath()}var On=class extends Tn{constructor(){super(...arguments),this.borderPath=new Cf,this.x=0,this.y=0,this.width=10,this.height=10,this.topLeftCornerRadius=0,this.topRightCornerRadius=0,this.bottomRightCornerRadius=0,this.bottomLeftCornerRadius=0,this.clipBBox=void 0,this.crisp=!1,this.lastUpdatePathStrokeWidth=this.__strokeWidth,this.effectiveStrokeWidth=this.__strokeWidth,this.hittester=super.isPointInPath.bind(this),this.distanceCalculator=super.distanceSquaredTransformedPoint.bind(this),this.microPixelEffectOpacity=1}set cornerRadius(e){this.topLeftCornerRadius=e,this.topRightCornerRadius=e,this.bottomRightCornerRadius=e,this.bottomLeftCornerRadius=e}isDirtyPath(){return this.lastUpdatePathStrokeWidth!==this.__strokeWidth||!!(this.path.isDirty()||this.borderPath.isDirty())}updatePath(){const{path:e,borderPath:i,__crisp:n,__topLeftCornerRadius:s,__topRightCornerRadius:a,__bottomRightCornerRadius:o,__bottomLeftCornerRadius:r}=this;let{__x:l,__y:c,__width:u,__height:d,__strokeWidth:g,__clipBBox:f}=this;const x=1/(this.layerManager?.canvas.pixelRatio??1);let S=1;if(e.clear(),i.clear(),u===0||d===0){this.effectiveStrokeWidth=0,this.lastUpdatePathStrokeWidth=0,this.microPixelEffectOpacity=0;return}if(n&&(u<=x&&(S*=u/x),d<=x&&(S*=d/x),u=this.align(l,u),d=this.align(c,d),l=this.align(l),c=this.align(c),f=f==null?void 0:new Tt(this.align(f.x),this.align(f.y),this.align(f.x,f.width),this.align(f.y,f.height))),g)if(u0?s-g:0,topRight:a>0?a-g:0,bottomRight:o>0?o-g:0,bottomLeft:r>0?r-g:0};this.borderClipPath=void 0,u>0&&d>0&&(A==null||A?.width>0&&A?.height>0)&&(FS(e,l,c,u,d,I,A),FS(i,l,c,u,d,I,A))}else this.borderClipPath=this.borderClipPath??new Cf,this.borderClipPath.clear(),this.borderClipPath.rect(l,c,u,d),i.rect(l,c,u,d);else{const D={topLeft:s,topRight:a,bottomRight:o,bottomLeft:r};this.borderClipPath=void 0,FS(e,l,c,u,d,D,f)}if([s,a,o,r].every(wZ)){let D=function(w,N){return I.getBBox().distanceSquared(w,N)};const A=this.getBBox();this.hittester=A.containsPoint.bind(A);const I=this;this.distanceSquared=D}else this.hittester=super.isPointInPath,this.distanceCalculator=super.distanceSquaredTransformedPoint;this.effectiveStrokeWidth=g,this.lastUpdatePathStrokeWidth=g,this.microPixelEffectOpacity=S}computeBBox(){const{__x:e,__y:i,__width:n,__height:s,__clipBBox:a}=this;return a?.clone()??new Tt(e,i,n,s)}isPointInPath(e,i){return this.hittester(e,i)}get midPoint(){return{x:this.__x+this.__width/2,y:this.__y+this.__height/2}}setStaticProperties(e,i,n,s,a,o,r,l){this.__drawingMode=e,this.__topLeftCornerRadius=i,this.__topRightCornerRadius=n,this.__bottomRightCornerRadius=s,this.__bottomLeftCornerRadius=a,this.__visible=o,this.__crisp=r,this.__fillShadow=l,this.dirtyPath=!0,this.markDirty()}resetAnimationProperties(e,i,n,s,a,o){this.__x=e,this.__y=i,this.__width=n,this.__height=s,this.__opacity=a,this.__clipBBox=o,this.dirtyPath=!0,this.markDirty()}distanceSquared(e,i){return this.distanceCalculator(e,i)}applyFillAndAlpha(e){super.applyFillAndAlpha(e),e.globalAlpha*=this.microPixelEffectOpacity}applyStrokeAndAlpha(e){super.applyStrokeAndAlpha(e),e.globalAlpha*=this.microPixelEffectOpacity}renderStroke(e){const{stroke:i,effectiveStrokeWidth:n}=this;if(i&&n){const{globalAlpha:s}=e,{lineDash:a,lineDashOffset:o,lineCap:r,lineJoin:l,borderPath:c,borderClipPath:u}=this;u&&e.clip(u.getPath2D()),this.applyStrokeAndAlpha(e),e.lineWidth=n,a&&e.setLineDash(a),o&&(e.lineDashOffset=o),r&&(e.lineCap=r),l&&(e.lineJoin=l),e.stroke(c.getPath2D()),e.globalAlpha=s}}};On.className="Rect";T([fe()],On.prototype,"x",2);T([fe()],On.prototype,"y",2);T([fe()],On.prototype,"width",2);T([fe()],On.prototype,"height",2);T([fe()],On.prototype,"topLeftCornerRadius",2);T([fe()],On.prototype,"topRightCornerRadius",2);T([fe()],On.prototype,"bottomRightCornerRadius",2);T([fe()],On.prototype,"bottomLeftCornerRadius",2);T([fe({})],On.prototype,"clipBBox",2);T([fe()],On.prototype,"crisp",2);function wZ(t){return t===0}var Ua=class Aa extends Ip{constructor(e){super(e),this.x=0,this.y=0,this.lines=[],this.text=void 0,this.fontCache=void 0,this.fontSize=Aa.defaultFontSize,this.fontFamily="sans-serif",this.textAlign="start",this.textBaseline="alphabetic",this.boxPadding=0,this.trimText=e?.trimText??!0}onTextChange(){if(this.richText?.clear(),this.textMap?.clear(),qt(this.text))this.lines=[],this.richText??(this.richText=new ee),this.richText.setScene(this.scene),this.richText.append(this.text.flatMap(e=>bi(e.text).split(au)).filter(Boolean).map(()=>new Aa({trimText:!1})));else{const e=bi(this.text).split(au);this.lines=this.trimText?e.map(i=>i.trim()):e}}get font(){return this.fontCache??(this.fontCache=v1(this)),this.fontCache}resolveFont(){if(this.hasRenderableText())return this.font}static measureBBox(e,i,n,s){if(qt(e)){const{font:a,lineHeight:o,textAlign:r,textBaseline:l}=s,{width:c,height:u,lineMetrics:d}=Va(e,a),g=o?o*d.length:u,f=Aa.calcTopOffset(g,d[0],l),y=Aa.calcLeftOffset(c,r);return new Tt(i-y,n-f,c,g)}else return Aa.computeBBox(bi(e).split(au),i,n,s)}static computeBBox(e,i,n,s){const{font:a,lineHeight:o,textAlign:r,textBaseline:l,isRtl:c}=s,{width:u,height:d,lineMetrics:g}=Ve(a).measureLines(e),f=o?o*g.length:d,y=Aa.calcTopOffset(f,g[0],l),x=Aa.calcLeftOffset(u,r,c);return new Tt(i-x,n-y,u,f)}static calcTopOffset(e,i,n){switch(n){case"alphabetic":return i?.ascent??0;case"middle":return e/2;case"bottom":return e;default:return 0}}static calcSegmentedTopOffset(e,i,n){switch(n){case"alphabetic":return i[0]?.ascent??0;case"middle":return i.length===1?i[0].ascent+i[0].segments.reduce((s,a)=>Math.min(s,Ve(a).baselineDistance("middle")),0):e/2;case"bottom":return e;default:return 0}}static calcLeftOffset(e,i,n){let s=0;switch(i){case"center":s=.5;break;case"right":case(n?"start":"end"):s=1}return e*s}getBBox(){const e=super.getBBox();if(!this.textMap?.size||!qt(this.text))return e;const{height:i,lineMetrics:n}=Va(this.text,this),s=Aa.calcSegmentedTopOffset(i,n,this.textBaseline),a=this.y-s;return e.y===a?e:new Tt(e.x,a,e.width,e.height)}computeBBox(){if(!this.hasRenderableText())return new Tt(this.x,this.y,0,0);if(this.generateTextMap(),this.textMap?.size){const l=Tt.merge(this.textMap.values());return l.x=this.x-Aa.calcLeftOffset(l.width,this.textAlign),l.y=this.y,l}const e=this.scene?.isRtl,{x:i,y:n,lines:s,textBaseline:a,textAlign:o}=this,r=Aa.computeBBox(s,i,n,{font:this,textBaseline:a,textAlign:o,isRtl:e});return this.boxing!=null&&r.grow(this.boxPadding),r}getTextMeasureBBox(){return this.computeBBox()}getPlainText(){return ce(this.text)}isPointInPath(e,i){return this.getBBox()?.containsPoint(e,i)??!1}setScene(e){this.richText?.setScene(e),super.setScene(e)}generateTextMap(){if(!qt(this.text)||this.textMap?.size)return;this.textMap??(this.textMap=new Map);let e=0;const i=this.richText.children();for(const{width:n,height:s,ascent:a,segments:o}of Va(this.text,this).lineMetrics){let r=0;for(const{color:l,textMetrics:c,...u}of o){const d=i.next().value;d.x=this.x-n/2+r,d.y=a+e,d.setProperties({...u,fill:l??this.fill});const g=d.getBBox();this.textMap.set(d,g),r+=c.width}e+=s}}render(e){const{ctx:i,stats:n}=e;if(!this.layerManager||!this.hasRenderableText()){n&&(n.nodesSkipped+=1);return}if(qt(this.text)&&this.richText){this.generateTextMap();const s=this.richText.getBBox(),{width:a,height:o,lineMetrics:r}=Va(this.text,this);let l=0;switch(this.textAlign){case"left":case"start":l=a/2;break;case"right":case"end":l=a/-2}const c=this.y-Aa.calcSegmentedTopOffset(o,r,this.textBaseline);this.renderBoxing(e,s.clone().translate(l,c)),i.save(),i.translate(l,c),this.richText.opacity=this.opacity,this.richText.render(e),i.restore()}else this.renderText(e);if(Aa.debug.check()){const s=this.getBBox();i.lineWidth=this.textMap?.size?2:1,i.strokeStyle=this.textMap?.size?"blue":"red",i.strokeRect(s.x,s.y,s.width,s.height)}super.render(e)}markDirty(e){return this.textMap?.clear(),super.markDirty(e)}renderText(e){const{fill:i,stroke:n,strokeWidth:s,font:a,textAlign:o}=this;if(!i&&!(n&&s)||!this.layerManager)return super.render(e);const{ctx:r}=e;r.font!==a&&(r.font=a),r.textAlign=o,this.renderBoxing(e),this.fillStroke(r)}renderBoxing(e,i){if(!this.boxing)return;const n=i??Aa.computeBBox(this.lines,this.x,this.y,this);if(n.width===0||n.height===0)return;const{x:s,y:a,width:o,height:r}=n.grow(this.boxPadding);this.boxing.opacity=this.opacity,this.boxing.x=s,this.boxing.y=a,this.boxing.width=o,this.boxing.height=r,this.boxing.preRender(e),this.boxing.render(e)}executeFill(e){this.renderLines((i,n,s)=>e.fillText(i,n,s))}executeStroke(e){this.renderLines((i,n,s)=>e.strokeText(i,n,s))}renderLines(e){const{x:i,y:n,lines:s}=this;if(!Number.isFinite(i)||!Number.isFinite(n))return;const a=Ve(this),{lineMetrics:o}=a.measureLines(s),{textBaseline:r,lineHeight:l=a.lineHeight()}=this;let c=0;r==="top"?c=o[0].ascent:(r==="middle"||r==="bottom")&&(c=l*(1-s.length),r==="middle"?(c/=2,c-=a.baselineDistance(r)):c-=o[0].descent);for(const u of o)e(u.text,i,n+c),c+=l}setFont(e){this.fontFamily=e.fontFamily,this.fontSize=e.fontSize,this.fontStyle=e.fontStyle,this.fontWeight=e.fontWeight}setAlign(e){this.textAlign=e.textAlign,this.textBaseline=e.textBaseline}setBoxing(e){const i=e.border?.enabled?e.border?.stroke:void 0;e.fill!=null||i!=null?(this.boxing??(this.boxing=new On({scene:this.scene})),this.boxing.fill=e.fill,this.boxing.fillOpacity=e.fillOpacity??1,this.boxing.cornerRadius=e.cornerRadius??0,this.boxing.stroke=i,this.boxing.strokeWidth=e.border?.strokeWidth??0,this.boxing.strokeOpacity=e.border?.strokeOpacity??1,this.boxPadding=e.padding??0):this.boxing&&(this.boxing.destroy(),this.boxing=void 0)}hasBoxing(){return this.boxing!=null}getBoxingProperties(){const{fill:e,fillOpacity:i,cornerRadius:n,stroke:s,strokeWidth:a,strokeOpacity:o}=this.boxing??{};return{border:{enabled:s!=null,stroke:s,strokeWidth:a,strokeOpacity:o},cornerRadius:n,fill:e,fillOpacity:i,padding:this.boxPadding}}toSVG(){if(!this.visible||!this.hasRenderableText())return;const e=this.text;if(e==null)return;const i=$i("text");if(qt(e))for(const n of e){const s=$i("tspan");Wz(s,{fontSize:n.fontSize??this.fontSize,fontFamily:n.fontFamily??this.fontFamily,fontWeight:n.fontWeight??this.fontWeight,fontStyle:n.fontStyle??this.fontStyle}),this.applySvgFillAttributes(s),s.textContent=bi(n.text),i.append(s)}else this.applySvgFillAttributes(i),Wz(i,this),i.setAttribute("text-anchor",{center:"middle",left:"start",right:"end",start:"start",end:"end"}[this.textAlign??"start"]),i.setAttribute("alignment-baseline",this.textBaseline),i.setAttribute("x",String(this.x)),i.setAttribute("y",String(this.y)),i.textContent=bi(e);return{elements:[i]}}hasRenderableText(){const{text:e}=this;return e==null?!1:qt(e)?!0:bi(e)!==""}};Ua.className="Text";Ua.debug=Gt.create(!0,"scene:text");Ua.defaultFontSize=10;T([ut()],Ua.prototype,"x",2);T([ut()],Ua.prototype,"y",2);T([TD({changeCb:t=>t.onTextChange()})],Ua.prototype,"text",2);T([ut({changeCb:t=>{t.fontCache=void 0}})],Ua.prototype,"fontStyle",2);T([ut({changeCb:t=>{t.fontCache=void 0}})],Ua.prototype,"fontWeight",2);T([ut({changeCb:t=>{t.fontCache=void 0}})],Ua.prototype,"fontSize",2);T([ut({changeCb:t=>{t.fontCache=void 0}})],Ua.prototype,"fontFamily",2);T([ut()],Ua.prototype,"textAlign",2);T([ut()],Ua.prototype,"textBaseline",2);T([ut()],Ua.prototype,"lineHeight",2);var Pa=Ua,MG=class extends Qf(Pa){},wf=class extends Qf(Jf(Pa)){},tm=class extends Ln{constructor(e){super(),this.ctx=e,this.rectNode=new On,this.textNode=new Pa,this.fill="white",this.node=this.createNode(),this.node.append([this.rectNode,this.textNode]),this.visible=!0,this.cleanup.register(e.scene.attachNode(this.node),e.eventsHub.on("layout:complete",i=>this.onLayoutComplete(i)))}createNode(){return new ee({name:"background",zIndex:pe.CHART_BACKGROUND})}onLayoutComplete(e){const{width:i,height:n}=e.chart;this.rectNode.width=i,this.rectNode.height=n}};T([b,pi("node","visible")],tm.prototype,"visible",2);T([b,pi("rectNode","fill")],tm.prototype,"fill",2);T([b],tm.prototype,"image",2);T([b,pi("textNode")],tm.prototype,"text",2);var Ri=class extends xt{constructor(){super(...arguments),this.id=Nn(this),this.node=new MG({zIndex:1}).setProperties({textAlign:"center",pointerEvents:1}),this.enabled=!1,this.textAlign="center",this.fontSize=zc.SMALLER,this.fontFamily="sans-serif",this.wrapping="always",this.truncate=!0,this.padding=0,this.layoutStyle="block",this.truncated=!1}registerInteraction(t,e){return t.eventsHub.on("layout:complete",()=>this.updateA11yText(t,e))}computeTextWrap(t,e){const{text:i,padding:n,wrapping:s,truncate:a}=this,o=a?t:1/0,r=a?e:1/0,l=Math.min(this.maxWidth??1/0,o)-n*2,c=this.maxHeight??r-n*2,u={maxWidth:l,maxHeight:c,font:this,textWrap:s};if(!Number.isFinite(l)&&!Number.isFinite(c)){this.node.text=i;return}let d;qt(i)?(d=gT(i,u),this.truncated=d.some(JM)):(d=kc(bi(i),u),this.truncated=wu(d)),this.node.text=d}updateA11yText(t,e){const{proxyInteractionService:i}=t;if(!this.enabled||!this.text){this.destroyProxyText();return}const n=Ti.toCanvas(this.node);if(!n)return;const{id:s}=this;this.proxyText==null&&(this.proxyText=i.createProxyElement({type:"text",domManagerId:s,where:e}),this.proxyTextListeners=[this.proxyText.addListener("mousemove",r=>this.handleMouseMove(t,r)),this.proxyText.addListener("mouseleave",r=>this.handleMouseLeave(t,r))]);const a=ce(this.text);a!==this.lastProxyTextContent&&(this.proxyText.textContent=a,this.lastProxyTextContent=a);const{lastProxyBBox:o}=this;(o==null||n.x!==o.x||n.y!==o.y||n.width!==o.width||n.height!==o.height)&&(this.proxyText.setBounds(n),this.lastProxyBBox={x:n.x,y:n.y,width:n.width,height:n.height})}handleMouseMove(t,e){if(e!=null&&this.enabled&&this.truncated){const{x:i,y:n}=Ti.toCanvas(this.node),s=e.sourceEvent.offsetX+i,a=e.sourceEvent.offsetY+n;t.tooltipManager.updateTooltip(this.id,{canvasX:s,canvasY:a,showArrow:!1},[{type:"structured",title:ce(this.text)}])}}handleMouseLeave(t,e){t.tooltipManager.removeTooltip(this.id,void 0,!0)}destroy(){this.destroyProxyText()}destroyProxyText(){if(this.proxyText!=null){for(const t of this.proxyTextListeners??[])t();this.proxyTextListeners=void 0,this.proxyText.destroy(),this.proxyText=void 0,this.lastProxyTextContent=void 0,this.lastProxyBBox=void 0}}};Ri.className="Caption";T([b,pi("node","visible")],Ri.prototype,"enabled",2);T([b,pi("node")],Ri.prototype,"text",2);T([b,pi("node")],Ri.prototype,"textAlign",2);T([b,pi("node")],Ri.prototype,"fontStyle",2);T([b,pi("node")],Ri.prototype,"fontWeight",2);T([b,pi("node")],Ri.prototype,"fontSize",2);T([b,pi("node")],Ri.prototype,"fontFamily",2);T([b,pi("node","fill")],Ri.prototype,"color",2);T([b],Ri.prototype,"spacing",2);T([b],Ri.prototype,"maxWidth",2);T([b],Ri.prototype,"maxHeight",2);T([b],Ri.prototype,"wrapping",2);T([b],Ri.prototype,"truncate",2);T([b],Ri.prototype,"padding",2);T([b],Ri.prototype,"layoutStyle",2);var zD=class extends Array{destroy(){for(const t of this)t.destroy();this.length=0}findById(t){return this.find(e=>e.id===t)}matches(t){return this.length===Object.keys(t).length&&j4(t,(e,i)=>Bt(i)&&"type"in i&&this.findById(e)?.type===i.type)}getById(t){const e=this.findById(t);if(!e)throw new Error(`Could not find axis by id [${t}].`);return e}},NZ=class extends zD{get[z.X](){return this.getById(z.X)}get[z.Y](){return this.getById(z.Y)}perpendicular(t){const e=t.direction===z.X?z.Y:z.X;return this[e]}},TZ=class extends zD{get[z.Angle](){return this.getById(z.Angle)}get[z.Radius](){return this.getById(z.Radius)}},BD=class{constructor(){this.title=new Ri,this.subtitle=new Ri,this.footnote=new Ri}positionCaptions({layoutBox:t}){const{title:e,subtitle:i,footnote:n}=this,s=t.height/10;e.enabled&&(this.positionCaption("top",e,t,s),this.shrinkLayoutByCaption("top",e,t)),i.enabled&&(this.positionCaption("top",i,t,s),this.shrinkLayoutByCaption("top",i,t)),n.enabled&&(this.positionCaption("bottom",n,t,s),this.shrinkLayoutByCaption("bottom",n,t))}positionAbsoluteCaptions(t){const{title:e,subtitle:i,footnote:n}=this,{rect:s}=t.series;for(const a of[e,i,n])if(a.layoutStyle==="overlay"){if(a.textAlign==="left")a.node.x=s.x+a.padding;else if(a.textAlign==="right"){const o=a.node.getBBox();a.node.x=s.x+s.width-o.width-a.padding}}}computeX(t,e){return t==="left"?e.x:t==="right"?e.x+e.width:e.x+e.width/2}positionCaption(t,e,i,n){if(!e.text)return;const{lineMetrics:s}=qt(e.text)?Va(e.text,e):Ve(e).measureLines(bi(e.text)),a=Math.max(s[0].height,n);e.node.x=this.computeX(e.textAlign,i)+e.padding,e.node.y=i.y+(t==="top"?0:i.height)+e.padding,e.node.textBaseline=t,e.computeTextWrap(i.width,a)}shrinkLayoutByCaption(t,e,i){if(e.layoutStyle==="block"){const n=e.node.getBBox().clone(),{spacing:s=0}=e;t==="bottom"&&qt(e.text)&&(n.y-=n.height),i.shrink(Math.ceil(t==="top"?n.y-i.y+n.height+s:i.y+i.height-n.y+s),t)}}};T([b],BD.prototype,"title",2);T([b],BD.prototype,"subtitle",2);T([b],BD.prototype,"footnote",2);var LZ=["candlestick","hollow-candlestick","ohlc","line","step-line","hlc","high-low"],OZ=class{constructor(t){this.chartService=t,this.mementoOriginatorKey="chartType"}createMemento(){let t=this.chartService.publicApi?.getOptions()?.chartType;return t??(t="candlestick"),t}guardMemento(t){return t==null||LZ.includes(t)}restoreMemento(t,e,i){if(i==null)return;const n={chartType:i};this.chartService.publicApi?.updateDelta(n).catch(s=>pt.error("error restoring state",s))}},oi="13.2.1",$z=Symbol("previous-memento-not-found"),EZ=class{constructor(t){this.history=[],this.historyIndex=-1,this.originators=new Map,this.clearState=new Map,this.maxHistoryLength=100,this.debug=Gt.create(!0,"history"),this.cleanup=new qe,this.cleanup.register(t.on("series:undo",this.undo.bind(this)),t.on("series:redo",this.redo.bind(this)))}destroy(){this.cleanup.flush()}addMementoOriginator(t){this.originators.set(t.mementoOriginatorKey,t),this.clearState.set(t.mementoOriginatorKey,t.createMemento()),this.debugEvent("History add originator:",t.mementoOriginatorKey)}clear(){this.debug("History clear:",Object.keys(this.originators)),this.history=[],this.historyIndex=-1;for(const[t,e]of this.originators.entries())this.clearState.set(t,e.createMemento())}record(t,...e){this.historyIndexthis.maxHistoryLength&&(this.history=this.history.slice(-this.maxHistoryLength));const i=new Map;for(const n of e){if(!this.originators.has(n.mementoOriginatorKey))throw new Error(`Originator [${n.mementoOriginatorKey}] has not been added to the HistoryManager.`);i.set(n.mementoOriginatorKey,n.createMemento())}this.history.push({label:t,mementos:i}),this.historyIndex=this.history.length-1,this.debugEvent(`History record: [${t}]`)}undo(){const t=this.history[this.historyIndex];if(t){for(const e of t.mementos.keys()){const i=this.findPreviousMemento(e);if(i===$z)throw new Error(`Could not find previous memento for [${e}].`);this.restoreMemento(e,i)}this.historyIndex-=1,this.debugEvent(`History undo: [${t.label}]`)}}redo(){const t=this.history[this.historyIndex+1];if(t){for(const[e,i]of t.mementos.entries())this.restoreMemento(e,i);this.historyIndex+=1,this.debugEvent(`History redo: [${t.label}]`)}}findPreviousMemento(t){for(let e=this.historyIndex-1;e>=0;e--)if(this.history[e].mementos.has(t))return this.history[e].mementos.get(t);return this.clearState.has(t)?this.clearState.get(t):$z}restoreMemento(t,e){this.originators.get(t)?.restoreMemento(oi,oi,e)}debugEvent(...t){this.debug(...t,this.history.map((e,i)=>i===this.historyIndex?`** ${e.label} **`:e.label))}},RZ=class{constructor(){this.caretaker=new H1(oi),this.state=new Map}setState(t,e){ks(this.state.get(t.mementoOriginatorKey),e)||this.setStateAndRestore(t,e)}setStateAndRestore(t,e){this.state.set(t.mementoOriginatorKey,e),this.restoreState(t)}restoreState(t){const{caretaker:e,state:i}=this;if(!i.has(t.mementoOriginatorKey))return;const n=i.get(t.mementoOriginatorKey);e.restore({version:e.version,[t.mementoOriginatorKey]:n},t)}},PZ=`.ag-charts-wrapper,.ag-charts-wrapper:after,.ag-charts-wrapper:before,.ag-charts-wrapper *,.ag-charts-wrapper *:after,.ag-charts-wrapper *:before{box-sizing:border-box}.ag-charts-wrapper{--align-items: center;--justify-content: center;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ag-charts-wrapper--safe-horizontal{--justify-content: flex-start}.ag-charts-wrapper--safe-vertical{--align-items: flex-start}.ag-charts-tab-guard{width:0;height:0;position:absolute;pointer-events:none}.ag-charts-canvas-background{position:absolute}.ag-charts-canvas-center{position:absolute;touch-action:auto;pointer-events:auto;display:flex;align-items:var(--align-items);justify-content:var(--justify-content)}.ag-charts-canvas-container,.ag-charts-canvas{position:relative;user-select:none;-webkit-user-select:none}.ag-charts-canvas-container>*,.ag-charts-canvas>*{pointer-events:none}.ag-charts-canvas canvas{display:block}.ag-charts-series-area{outline:none;pointer-events:auto;position:absolute}.ag-charts-swapchain{top:0;left:0;outline:none;opacity:0;pointer-events:none;position:absolute;width:100%;height:100%}.ag-charts-swapchain:focus-visible{opacity:1}.ag-charts-canvas-proxy,.ag-charts-canvas-overlay{position:absolute;inset:0;pointer-events:none;user-select:none;-webkit-user-select:none}.ag-charts-canvas-overlay>*{position:absolute;pointer-events:auto}.ag-charts-canvas-overlay>[role=presentation]{left:0}.ag-charts-theme-default,.ag-charts-theme-default-dark{--ag-charts-accent-color: #2196f3;--ag-charts-background-color: #fff;--ag-charts-border-color: #dddddd;--ag-charts-border-radius: 4px;--ag-charts-chart-background-color: #fff;--ag-charts-chart-padding: 20px;--ag-charts-focus-color: #e4f2fe;--ag-charts-focus-shadow: 0 0 0 3px #2196f3;--ag-charts-foreground-color: #181d1f;--ag-charts-font-family: Verdana, sans-serif;--ag-charts-font-size: 12px;--ag-charts-font-weight: 400;--ag-charts-popup-shadow: 0 0 16px rgba(0, 0, 0, .15);--ag-charts-subtle-text-color: #8c8c8c;--ag-charts-text-color: #181d1f;--ag-charts-chrome-background-color: #fafafa;--ag-charts-chrome-font-family: Verdana, sans-serif;--ag-charts-chrome-font-size: 12px;--ag-charts-chrome-font-weight: 400;--ag-charts-chrome-subtle-text-color: #8c8c8c;--ag-charts-chrome-text-color: #181d1f;--ag-charts-button-background-color: #fff;--ag-charts-button-border-width: 1px;--ag-charts-button-font-weight: normal;--ag-charts-button-text-color: inherit;--ag-charts-input-background-color: #fff;--ag-charts-input-border-width: 1px;--ag-charts-input-text-color: #181d1f;--ag-charts-menu-background-color: #fafafa;--ag-charts-menu-border-width: 1px;--ag-charts-menu-text-color: #181d1f;--ag-charts-panel-background-color: #fafafa;--ag-charts-panel-text-color: #181d1f;--ag-charts-tooltip-background-color: #fafafa;--ag-charts-tooltip-border-width: 1px;--ag-charts-tooltip-text-color: #181d1f;--ag-charts-tooltip-subtle-text-color: #8c8c8c;--ag-charts-crosshair-label-background-color: #fafafa;--ag-charts-crosshair-label-text-color: #181d1f;--ag-charts-spacing: 4px;--ag-charts-icon-size: 16px;--ag-charts-input-border-radius: var(--ag-charts-border-radius);--ag-charts-input-focus-border-color: var(--ag-charts-accent-color);--ag-charts-input-focus-text-color: var(--ag-charts-accent-color);--ag-charts-input-disabled-background-color: color-mix( in srgb, var(--ag-charts-chrome-background-color), var(--ag-charts-foreground-color) 6% );--ag-charts-input-disabled-border-color: var(--ag-charts-border-color);--ag-charts-input-disabled-text-color: color-mix( in srgb, var(--ag-charts-chrome-background-color), var(--ag-charts-input-text-color) 50% );--ag-charts-input-placeholder-text-color: color-mix( in srgb, var(--ag-charts-input-background-color), var(--ag-charts-input-text-color) 60% );--ag-charts-button-border-radius: var(--ag-charts-border-radius);--ag-charts-button-focus-background-color: color-mix( in srgb, var(--ag-charts-button-background-color), var(--ag-charts-accent-color) 12% );--ag-charts-button-focus-border-color: var(--ag-charts-accent-color);--ag-charts-button-focus-text-color: var(--ag-charts-accent-color);--ag-charts-button-disabled-background-color: color-mix( in srgb, var(--ag-charts-chrome-background-color), var(--ag-charts-foreground-color) 6% );--ag-charts-button-disabled-border-color: var(--ag-charts-border-color);--ag-charts-button-disabled-text-color: color-mix( in srgb, var(--ag-charts-chrome-background-color), var(--ag-charts-chrome-text-color) 50% );--ag-charts-checkbox-background-color: color-mix( in srgb, var(--ag-charts-background-color), var(--ag-charts-foreground-color) 35% );--ag-charts-checkbox-checked-background-color: var(--ag-charts-accent-color);--ag-charts-tooltip-border-radius: var(--ag-charts-border-radius);--ag-charts-menu-border-radius: var(--ag-charts-border-radius);--ag-charts-chrome-font-size-small: var(--ag-charts-chrome-font-size);--ag-charts-chrome-font-size-medium: calc(var(--ag-charts-chrome-font-size) * (13 / 12));--ag-charts-chrome-font-size-large: calc(var(--ag-charts-chrome-font-size) * (14 / 12));--ag-charts-border-width: 1px;--ag-charts-border: var(--ag-charts-border-width) solid var(--ag-charts-border-color);--ag-charts-focus-border: 1px solid var(--ag-charts-accent-color);--ag-charts-focus-border-shadow: 0 0 0 3px color-mix(in srgb, transparent, var(--ag-charts-accent-color) 20%);--ag-charts-layer-menu: 6;--ag-charts-layer-ui-overlay: 5;--ag-charts-layer-tooltip: 4;--ag-charts-layer-toolbar: 3;--ag-charts-layer-crosshair: 2;--ag-charts-layer-annotations: 1}.ag-chart-canvas-wrapper .ag-charts-theme-default{--ag-charts-border-radius: var(--ag-border-radius, 4px);--ag-charts-border: var(--ag-borders-critical, solid 1px) var(--ag-charts-border-color);--ag-charts-focus-shadow: var(--ag-focus-shadow, 0 0 0 3px var(--ag-charts-accent-color));--ag-charts-focus-border-shadow: var( --ag-focus-shadow, 0 0 0 3px color-mix(in srgb, transparent, var(--ag-charts-accent-color) 20%) )}.ag-charts-icon{display:block;width:20px;height:20px;speak:none;speak:never;mask:var(--icon) center / contain no-repeat;background-color:currentColor;transition:background-color .25s ease-in-out}.ag-charts-icon-align-center{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNNyAxMGg2djFIN3pNNCA3aDEydjFINHptMSA2aDEwdjFINXoiLz48L3N2Zz4=)}.ag-charts-icon-align-left{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNNCAxMGg2djFINHptMC0zaDEydjFINHptMCA2aDEwdjFINHoiLz48L3N2Zz4=)}.ag-charts-icon-align-right{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTAgMTBoNnYxaC02ek00IDdoMTJ2MUg0em0yIDZoMTB2MUg2eiIvPjwvc3ZnPg==)}.ag-charts-icon-arrow-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1LjI5MyA0LjVIMTIuNXYtMUgxN3Y0aC0xVjUuMjA3bC05LjY0NiA5LjY0Ny0uNzA4LS43MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03IDE2YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwbS0yLjUgMS41YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzIiBmaWxsPSIjMDAwIi8+PC9zdmc+)}.ag-charts-icon-arrow-down-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02IDhMMS41IDhMMTAgMThMMTguNSA4TDE0IDhMMTQgM0w2IDNMNiA4Wk03IDRMNyA5SDMuNjYyNDRMMTAgMTYuNDU2TDE2LjMzNzYgOUwxMyA5TDEzIDRMNyA0WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==)}.ag-charts-icon-arrow-up-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNCAxMkgxOC41TDEwIDJMMS41IDEySDZMNi4wMDAwMiAxN0gxNFYxMlpNMTMgMTZWMTFIMTYuMzM3NkwxMCAzLjU0NDA1TDMuNjYyNDQgMTFIN0w3LjAwMDAyIDE2SDEzWiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==)}.ag-charts-icon-callout-annotation{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMyA0LjVBMS41IDEuNSAwIDAgMSA0LjUgM2gxMUExLjUgMS41IDAgMCAxIDE3IDQuNXY4YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtNC41MTRhMjYgMjYgMCAwIDAtMi4wMTcgMS41NGwtLjMxNC4yNmMtLjU1LjQ1Ny0xLjExNS45MjYtMS43NiAxLjQtLjY2OS40OTEtMS41NjItLjAxMi0xLjU2Mi0uOFYxNEg0LjVBMS41IDEuNSAwIDAgMSAzIDEyLjV6TTQuNSA0YS41LjUgMCAwIDAtLjUuNXY4YS41LjUgMCAwIDAgLjUuNWgxLjgzM3YzLjM3MmEzNiAzNiAwIDAgMCAxLjY3OC0xLjMzOGwuMzItLjI2NWEyNiAyNiAwIDAgMSAyLjIyNS0xLjY4NWwuMTI2LS4wODRIMTUuNWEuNS41IDAgMCAwIC41LS41di04YS41LjUgMCAwIDAtLjUtLjV6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-candlestick-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNyAxdjNoMnYxMkg3djNINnYtM0g0VjRoMlYxek01IDVoM3YxMEg1ek0xMSAxNFY2aDJWMy4yNWgxVjZoMnY4aC0ydjIuNzVoLTFWMTR6bTEtN2gzdjZoLTN6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-chevron-filled-down{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy42NjcgNS4zMzQgOCAxMC42NjdsNC4zMzQtNS4zMzN6IiBmaWxsPSIjMTgxZDFmIi8+PC9zdmc+)}.ag-charts-icon-chevron-right{--icon: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjQ3IDUuNDdhLjc1Ljc1IDAgMCAxIDEuMDYgMGw0IDRhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtNCA0YS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTAuOTQgMTAgNy40NyA2LjUzYS43NS43NSAwIDAgMSAwLTEuMDYiIGZpbGw9IiMwMDAiLz48L3N2Zz4=)}.ag-charts-icon-close{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNSA1IDEwIDEwTTUgMTUgMTUgNSIgc3Ryb2tlPSIjMDAwIi8+PC9zdmc+)}.ag-charts-icon-comment-annotation{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNy41MTMgMy45OTVhNi41IDYuNSAwIDAgMSA2LjA5OCAxMS40MWMtLjU4OC4zOTMtMS4yMTcuNTM2LTEuODI5LjU4NWExMyAxMyAwIDAgMS0xLjI3LjAxN0EyNyAyNyAwIDAgMCAxMCAxNkg0LjVhLjUuNSAwIDAgMS0uNS0uNVYxMHEwLS4yNDctLjAwNy0uNTEzYy0uMDA4LS40MTYtLjAxNi0uODU3LjAxNy0xLjI2OS4wNS0uNjEyLjE5Mi0xLjI0LjU4NS0xLjgzYTYuNSA2LjUgMCAwIDEgMi45MTgtMi4zOTNtMy41Ni42MWE1LjUgNS41IDAgMCAwLTUuNjQ2IDIuMzRjLS4yNjYuMzk3LS4zNzkuODQyLS40MiAxLjM1NC0uMDMuMzYtLjAyMi43MTgtLjAxNSAxLjEwOFE1IDkuNjg5IDUgMTB2NWg1cS4zMTEuMDAxLjU5My4wMDhjLjM5LjAwNy43NDcuMDE1IDEuMTA4LS4wMTUuNTEyLS4wNDEuOTU3LS4xNTQgMS4zNTUtLjQyYTUuNSA1LjUgMCAwIDAtMS45ODMtOS45NjciIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-crosshair-add-line{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTEwIDUuNWEuNS41IDAgMCAxIC41LjV2My41aDMuODc1YS41LjUgMCAwIDEgMCAxSDEwLjV2NC4yNWEuNS41IDAgMSAxLTEgMFYxMC41SDUuNjI1YS41LjUgMCAxIDEgMC0xSDkuNVY2YS41LjUgMCAwIDEgLjUtLjUiLz48L3N2Zz4=)}.ag-charts-icon-date-range-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyaDF2MTZIMnptMTUgMGgxdjE2aC0xeiIgZmlsbD0iIzE4MUQxRiIvPjxwYXRoIGQ9Ik0xMy4xNTcgMTFINXYtMWg3Ljc5M0wxMSA4LjIwN2wuNzA3LS43MDcgMy4xODIgMy4xODItMy4xODIgMy4xODItLjcwNy0uNzA3eiIgZmlsbD0iIzAwMCIvPjwvc3ZnPg==)}.ag-charts-icon-date-price-range-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMyAySDJ2MTZoMXptMy41MDcgNC44OUw4LjUgNC44OTVWMTBINXYxaDMuNXY3aDF2LTdoNS4wODhsLTEuOTU3IDEuOTU3LjcwNy43MDcgMy4xODItMy4xODJMMTMuMzM4IDcuM2wtLjcwNy43MDdMMTQuNjI0IDEwSDkuNVY0LjkzMmwxLjk1NyAxLjk1Ny43MDctLjcwN0w4Ljk4MiAzIDUuOCA2LjE4MnoiIGZpbGw9IiMxODFEMUYiLz48L3N2Zz4=)}.ag-charts-icon-delete{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZD0iTTguNDk2IDguOTk2QS41LjUgMCAwIDEgOSA5LjQ5MnY0YS41LjUgMCAxIDEtMSAuMDA4di00YS41LjUgMCAwIDEgLjQ5Ni0uNTA0TTEyIDkuNWEuNS41IDAgMCAwLTEgMHY0YS41LjUgMCAwIDAgMSAweiIvPjxwYXRoIGZpbGw9IiMxMzE3MjIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTYgNVYzLjVBMi41IDIuNSAwIDAgMSA4LjUgMWgzQTIuNSAyLjUgMCAwIDEgMTQgMy41VjVoMi44MzNhLjUuNSAwIDAgMSAwIDFIMTV2MTAuMjVjMCAuNDE1LS4wNjYuODYzLS4zIDEuMjIxLS4yNTcuMzk0LS42NzIuNjEyLTEuMi42MTJoLTdjLS41MjggMC0uOTQzLS4yMTgtMS4yLS42MTItLjIzNC0uMzU4LS4zLS44MDYtLjMtMS4yMjFWNkgzLjMzM2EuNS41IDAgMCAxIDAtMXptMS0xLjVBMS41IDEuNSAwIDAgMSA4LjUgMmgzQTEuNSAxLjUgMCAwIDEgMTMgMy41VjVIN3pNNiAxNi4yNVY2aDh2MTAuMjVjMCAuMzM1LS4wNTkuNTU0LS4xMzguNjc1LS4wNTUuMDg1LS4xNC4xNTgtLjM2Mi4xNThoLTdjLS4yMjIgMC0uMzA3LS4wNzMtLjM2Mi0uMTU4LS4wOC0uMTIxLS4xMzgtLjM0LS4xMzgtLjY3NSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ag-charts-icon-disjoint-channel,.ag-charts-icon-disjoint-channel-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTkuMDI4IDE3LjQ2YTIuMjUgMi4yNSAwIDAgMC00LjA5Mi0xLjg1bC05LjUxMS0yLjM3OGEyLjI1IDIuMjUgMCAxIDAtLjIyNS45NzRsOS40NzUgMi4zNjlhMi4yNTEgMi4yNTEgMCAwIDAgNC4zNTMuODg2bS0xLjY2Mi0xLjk2NWExLjI1IDEuMjUgMCAxIDEtLjg4NSAyLjMzOCAxLjI1IDEuMjUgMCAwIDEgLjg4NS0yLjMzOE00LjM0MyAxMy42NjlhMS4yNSAxLjI1IDAgMSAwLTIuMzM4LS44ODUgMS4yNSAxLjI1IDAgMCAwIDIuMzM4Ljg4NU0zLjk3IDguNzY5YTIuMjUgMi4yNSAwIDAgMCAxLjQ1NS0yLjExbDkuNTExLTIuMzc4YTIuMjUgMi4yNSAwIDEgMC0uMjYtLjk2NUw1LjIgNS42ODVhMi4yNSAyLjI1IDAgMSAwLTEuMjMgMy4wODRtLjM3My0yLjU0N2ExLjI1IDEuMjUgMCAxIDEtMi4zMzguODg1IDEuMjUgMS4yNSAwIDAgMSAyLjMzOC0uODg1bTEzLjc1LTMuNDM4YTEuMjUgMS4yNSAwIDEgMS0yLjMzOC44ODUgMS4yNSAxLjI1IDAgMCAxIDIuMzM4LS44ODUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-drag-handle{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI1Ljc1IiBjeT0iNy43NSIgcj0iLjc1IiBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9Ii41Ii8+PGNpcmNsZSBjeD0iOS43NSIgY3k9IjcuNzUiIHI9Ii43NSIgZmlsbD0iIzAwMCIgZmlsbC1vcGFjaXR5PSIuNSIvPjxjaXJjbGUgY3g9IjEzLjc1IiBjeT0iNy43NSIgcj0iLjc1IiBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9Ii41Ii8+PGNpcmNsZSBjeD0iMTMuNzUiIGN5PSIxMS43NSIgcj0iLjc1IiBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9Ii41Ii8+PGNpcmNsZSBjeD0iOS43NSIgY3k9IjExLjc1IiByPSIuNzUiIGZpbGw9IiMwMDAiIGZpbGwtb3BhY2l0eT0iLjUiLz48Y2lyY2xlIGN4PSI1Ljc1IiBjeT0iMTEuNzUiIHI9Ii43NSIgZmlsbD0iIzAwMCIgZmlsbC1vcGFjaXR5PSIuNSIvPjwvc3ZnPg==)}.ag-charts-icon-fibonacci-retracement-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiA1aDEydjFIMnoiLz48Y2lyY2xlIGN4PSIxNS43NSIgY3k9IjUuNSIgcj0iMS43NSIgc3Ryb2tlPSIjMDAwIi8+PGNpcmNsZSBjeD0iNC4yNSIgY3k9IjE0LjUiIHI9IjEuNzUiIHN0cm9rZT0iIzAwMCIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0xOCAxNUg2di0xaDEyem0wLTQuNUgydi0xaDE2eiIvPjwvc3ZnPg==)}.ag-charts-icon-fibonacci-retracement-trend-based-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJtNC45OTYgMTIuNjc0IDMuMjkxLTUuNzQzLjg2OC40OTctMy4yOTEgNS43NDN6Ii8+PGNpcmNsZSBjeD0iOS43NSIgY3k9IjUuNSIgcj0iMS43NSIgc3Ryb2tlPSIjMDAwIi8+PGNpcmNsZSBjeD0iNC4zNTEiIGN5PSIxNC41IiByPSIxLjc1IiBzdHJva2U9IiMwMDAiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTggNmgtN1Y1aDd6bTAgNC41aC03di0xaDd6bTAgNC41SDZ2LTFoMTJ6Ii8+PC9zdmc+)}.ag-charts-icon-fill-color{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtOC4wNzEgNC4wNi0uOTI0LS45MjQuNzA3LS43MDcgNy4yODggNy4yODgtNC45NSA0Ljk1YTMuNSAzLjUgMCAwIDEtNC45NSAwbC0xLjQxNC0xLjQxNGEzLjUgMy41IDAgMCAxIDAtNC45NXptLjcwNy43MDhMNC41MzYgOS4wMWEyLjUgMi41IDAgMCAwIDAgMy41MzZMNS45NSAxMy45NmEyLjUgMi41IDAgMCAwIDMuNTM1IDBsNC4yNDMtNC4yNDN6bTYuOSA3LjIwMi0uMzQ1LjM2My0uMzQ0LS4zNjNhLjUuNSAwIDAgMSAuNjg4IDBtLS4zNDUgMS4wOGE4IDggMCAwIDAtLjI4LjMyMyA0LjMgNC4zIDAgMCAwLS40MDkuNTgyYy0uMTEzLjIwMS0uMTQ0LjMyNi0uMTQ0LjM3OGEuODMzLjgzMyAwIDAgMCAxLjY2NyAwYzAtLjA1Mi0uMDMxLS4xNzctLjE0NC0uMzc4YTQuMyA0LjMgMCAwIDAtLjQxLS41ODIgOCA4IDAgMCAwLS4yOC0uMzIybS0uMzQ0LTEuMDguMzQ0LjM2My4zNDQtLjM2My4wMDIuMDAyLjAwNC4wMDQuMDEzLjAxMmE2IDYgMCAwIDEgLjIwNi4yMDhjLjEzMS4xMzYuMzA4LjMyNy40ODUuNTQ1LjE3Ni4yMTUuMzYzLjQ2Ny41MDcuNzI0LjEzNy4yNDMuMjczLjU1My4yNzMuODY4YTEuODMzIDEuODMzIDAgMSAxLTMuNjY3IDBjMC0uMzE1LjEzNi0uNjI1LjI3My0uODY4LjE0NC0uMjU3LjMzLS41MDkuNTA3LS43MjRhOSA5IDAgMCAxIC42NDUtLjcwOGwuMDQ2LS4wNDUuMDEzLS4wMTIuMDA0LS4wMDR6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-high-low-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNyA0aDJ2MTJINFY0aDNNNSA1aDN2MTBINXpNMTEgMTRWNmg1djhoLTVtMS03aDN2NmgtM3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-hlc-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMTguMTYzIDEuODM3LTUuMzM0IDExLjYyMUw2Ljk1NyA4LjEybC00LjE5OSA5LjYyMi0uOTE2LS40IDQuNzU2LTEwLjlMMTIuNDkgMTEuOCAxNy4yNTQgMS40MnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiMwMDAiIGZpbGwtb3BhY2l0eT0iLjQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuODI1IDIuNzA0LjU1IDEzLjc4NWwuOTAyLjQzIDQuNzI0LTkuOTE5IDYuMDM0IDUuMDI5IDMuMjU1LTguMTQtLjkyOC0uMzctMi43NDUgNi44NnptNy44NTIgMTQuNjM2IDUuNzgtMTMuMTM5LS45MTUtLjQwMi01LjIxOSAxMS44Ni02LjAwNS01LjUwNC0zLjI3OCA3LjY0OC45Mi4zOTQgMi43MjItNi4zNTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-hollow-candlestick-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1vcGFjaXR5PSIuMTUiIGQ9Ik01IDVoM3YxMEg1eiIvPjxwYXRoIGZpbGw9IiMxMzE3MjIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcgMXYzaDJ2MTJIN3YzSDZ2LTNINFY0aDJWMXpNNSA1aDN2MTBINXptNyAyaDN2NmgtM3ptLTEgN1Y2aDJWMy4yNWgxVjZoMnY4aC0ydjIuNzVoLTFWMTR6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-horizontal-line,.ag-charts-icon-horizontal-line-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNLjUgOS41aDcuMzA2YTIuMjUgMi4yNSAwIDAgMSA0LjM4OCAwSDE5LjV2MWgtNy4zMDZhMi4yNSAyLjI1IDAgMCAxLTQuMzg4IDBILjV6bTkuNSAxLjc1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-line-color{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTQuMjQyIDIuNzIyYy0uNjEyIDAtMS4yLjI0My0xLjYzMi42NzVsLTEuMzQzIDEuMzQ0YS41LjUgMCAwIDAtLjExMi4xMTJMNC4wNSAxMS45NTljLS4yMDcuMjA3LS4zNi40Ni0uNDQ2Ljc0di4wMDFsLS42OSAyLjc2N3YuMDAyYS44Mi44MiAwIDAgMCAxLjAyMiAxLjAyMWguMDAybDIuNjM0LS44MjJjLjI4LS4wODUuNTM0LS4yMzcuNzQtLjQ0M2w3LjEwNy03LjEwOGEuNS41IDAgMCAwIC4xMTItLjExMmwxLjM0My0xLjM0M2EyLjMwOCAyLjMwOCAwIDAgMC0xLjYzMi0zLjk0TTE0LjEyMiA3bDEuMDQ0LTEuMDQ1YTEuMzA4IDEuMzA4IDAgMSAwLTEuODQ5LTEuODVMMTIuMjcxIDUuMTV6bS0yLjU1OC0xLjE0Mi02LjgwNyA2LjgwOWEuOC44IDAgMCAwLS4xOTYuMzI1bC0uNzUgMi40NjggMi40Ny0uNzQ5YS44LjggMCAwIDAgLjMyNS0uMTk0bDYuODA4LTYuODF6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-line-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMTcuMzYyIDQuODczLTQuNTk0IDYuNjU0LTQuODUtMy4zMTctNC4yNTEgNi45NzctLjg1NC0uNTJMNy42MTIgNi43OWw0Ljg5OSAzLjM1IDQuMDI4LTUuODM2eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ag-charts-icon-line-style-dashed{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiA5aDR2MUgyem0xMiAwaDR2MWgtNHpNOCA5aDR2MUg4eiIvPjwvc3ZnPg==)}.ag-charts-icon-line-style-dotted{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSIyLjUiIGN5PSI5LjUiIHI9Ii41IiBmaWxsPSIjMDAwIi8+PGNpcmNsZSBjeD0iNC41IiBjeT0iOS41IiByPSIuNSIgZmlsbD0iIzAwMCIvPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjkuNSIgcj0iLjUiIGZpbGw9IiMwMDAiLz48Y2lyY2xlIGN4PSI4LjUiIGN5PSI5LjUiIHI9Ii41IiBmaWxsPSIjMDAwIi8+PGNpcmNsZSBjeD0iMTAuNSIgY3k9IjkuNSIgcj0iLjUiIGZpbGw9IiMwMDAiLz48Y2lyY2xlIGN4PSIxMi41IiBjeT0iOS41IiByPSIuNSIgZmlsbD0iIzAwMCIvPjxjaXJjbGUgY3g9IjE0LjUiIGN5PSI5LjUiIHI9Ii41IiBmaWxsPSIjMDAwIi8+PGNpcmNsZSBjeD0iMTYuNSIgY3k9IjkuNSIgcj0iLjUiIGZpbGw9IiMwMDAiLz48L3N2Zz4=)}.ag-charts-icon-line-style-solid{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiA5aDE2djFIMnoiLz48L3N2Zz4=)}.ag-charts-icon-line-with-markers-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMTguMTk4IDQuODg4LTMuNTU2IDQuOTE4YTIuMjUgMi4yNSAwIDEgMS0zLjg2Ni43NWwtMS40MzItLjlhMi4yNCAyLjI0IDAgMCAxLTIuMDA5LjQzNWwtMy44MjggNi40MjgtLjg2LS41MTJMNi40NSA5LjYyM2EyLjI1IDIuMjUgMCAxIDEgMy41MS0uNzYxbDEuMzI5LjgzNWEyLjI0IDIuMjQgMCAwIDEgMi41NTctLjQ5N2wzLjU0Mi00Ljg5OHptLTQuOTYgNS4xNTNhMS4yNSAxLjI1IDAgMSAwLS42NCAyLjQxOSAxLjI1IDEuMjUgMCAwIDAgLjY0LTIuNDE5TTkuMSA4LjMyMXEuMDY2LS4xOTIuMDY3LS40MDRhMS4yNSAxLjI1IDAgMSAwLS4wNjcuNDA0IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-lock,.ag-charts-icon-locked{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAuMjA3IDMuNzY0YTIuODk0IDIuODk0IDAgMCAwLTIuODk1IDIuODk0VjloNS43ODlWNi42NThhMi44OTQgMi44OTQgMCAwIDAtMi44OTUtMi44OTRNMTQuMSA5VjYuNjU4YTMuODk0IDMuODk0IDAgMSAwLTcuNzg5IDB2Mi4zNDlBMi41IDIuNSAwIDAgMCA0IDExLjV2M0EyLjUgMi41IDAgMCAwIDYuNSAxN2g4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM0EyLjUgMi41IDAgMCAwIDE0LjUgOXpNNi41IDEwQTEuNSAxLjUgMCAwIDAgNSAxMS41djNBMS41IDEuNSAwIDAgMCA2LjUgMTZoOGExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTNhMS41IDEuNSAwIDAgMC0xLjUtMS41eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ag-charts-icon-measurer-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibTQuNDYxIDEyLjcxIDEuNTMyLTEuNTMxIDEuNDE0IDEuNDE0LjcwNy0uNzA3TDYuNyAxMC40NzJsMS41MzItMS41MzMgMiAyIC43MDctLjcwNy0yLTIgNi4wMS02LjAxIDIuODMgMi44MjhMNS4wNSAxNy43NzggMi4yMjIgMTQuOTVsMS41MzItMS41MzIgMS40MTQgMS40MTQuNzA3LS43MDd6TS44MDggMTQuOTVsLjcwNy0uNzA3TDE0LjI0MyAxLjUxNWwuNzA3LS43MDcuNzA3LjcwNyAyLjgyOCAyLjgyOC43MDcuNzA3LS43MDcuNzA3TDUuNzU3IDE4LjQ4NWwtLjcwNy43MDctLjcwNy0uNzA3LTIuODI4LTIuODI4em0xMS4wNzgtNi44MzVMMTAuNDcgNi43bC43MDctLjcwNyAxLjQxNSAxLjQxNHptLjgyNC0zLjY1NCAxIDEgLjcwOC0uNzA3LTEtMXoiIGZpbGw9IiMxODFEMUYiLz48L3N2Zz4=)}.ag-charts-icon-note-annotation{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMyA0LjVBMS41IDEuNSAwIDAgMSA0LjUgM2gxMUExLjUgMS41IDAgMCAxIDE3IDQuNXY4YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMy4yMWwtMS40NjkgMi41N2ExIDEgMCAwIDEtMS42ODIuMDg1TDcuMjQzIDE0SDQuNUExLjUgMS41IDAgMCAxIDMgMTIuNXpNNC41IDRhLjUuNSAwIDAgMC0uNS41djhhLjUuNSAwIDAgMCAuNS41aDMuMjU3bDIuMTk2IDMuMDc0TDExLjcxIDEzaDMuNzlhLjUuNSAwIDAgMCAuNS0uNXYtOGEuNS41IDAgMCAwLS41LS41eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi41IDYuNUEuNS41IDAgMCAxIDcgNmg2YS41LjUgMCAwIDEgMCAxSDdhLjUuNSAwIDAgMS0uNS0uNU02LjUgOS41QS41LjUgMCAwIDEgNyA5aDZhLjUuNSAwIDAgMSAwIDFIN2EuNS41IDAgMCAxLS41LS41IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-ohlc-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZD0iTTEzIDExaC0zdi0xaDNWM2gxdjJoNHYxaC00djExaC0xek02IDE3di0yaDN2LTFINlY0SDV2MUgydjFoM3YxMXoiLz48L3N2Zz4=)}.ag-charts-icon-pan-end{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZD0ibTYuNjQ2IDEzLjgxMy0uMzUzLjM1NC43MDcuNzA3LjM1NC0uMzU0ek0xMS4xNjYgMTBsLjM1NC4zNTQuMzU0LS4zNTQtLjM1NC0uMzU0ek03LjM1NSA1LjQ4IDcgNS4xMjZsLS43MDcuNzA3LjM1My4zNTR6bTAgOS4wNCA0LjE2Ni00LjE2Ni0uNzA3LS43MDgtNC4xNjcgNC4xNjd6bTQuMTY2LTQuODc0TDcuMzU0IDUuNDhsLS43MDguNzA3IDQuMTY3IDQuMTY3ek0xMy4wODMgNXYxMGgxVjV6Ii8+PC9zdmc+)}.ag-charts-icon-pan-left{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTIuNzkgNS44MzMgOC42MjUgMTBsNC4xNjYgNC4xNjctLjcwNy43MDdMNy4yMSAxMGw0Ljg3My00Ljg3NHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-pan-right{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNy4yMSAxNC4xNjcgMTEuMzc2IDEwIDcuMjEgNS44MzNsLjcwNy0uNzA3TDEyLjc5IDEwbC00Ljg3MyA0Ljg3NHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-pan-start{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTYgNXYxMGgxVjV6TTkuNjI0IDEwbDQuMTY2LTQuMTY3LS43MDctLjcwN0w4LjIxIDEwbDQuODc0IDQuODc0LjcwNy0uNzA3eiIvPjwvc3ZnPg==)}.ag-charts-icon-parallel-channel,.ag-charts-icon-parallel-channel-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTcuNzIgNS4zMzFBMi4yNSAyLjI1IDAgMSAwIDE0LjcwNSAzLjZsLTkuNDkgNC41NjJhMi4yNSAyLjI1IDAgMSAwIC4yMDkgMS4wMWw5LjY2Mi00LjY0NmEyLjI1IDIuMjUgMCAwIDAgMi42MzQuODA1bS4zNzMtMi41NDdhMS4yNSAxLjI1IDAgMSAxLTIuMzM4Ljg4NSAxLjI1IDEuMjUgMCAwIDEgMi4zMzgtLjg4NU00LjM0MyA4LjY3YTEuMjUgMS4yNSAwIDEgMS0yLjMzOC44ODUgMS4yNSAxLjI1IDAgMCAxIDIuMzM4LS44ODVNNS4zMDcgMTYuNzI4YTIuMjUgMi4yNSAwIDEgMS0uNTI1LS44NThsOS45MjMtNC43N2EyLjI1IDIuMjUgMCAxIDEgLjM4MS45MjZ6bS0uOTY0LjI3NGExLjI1IDEuMjUgMCAxIDEtMi4zMzguODg1IDEuMjUgMS4yNSAwIDAgMSAyLjMzOC0uODg1bTEzLjAyMy01LjEwNmExLjI1IDEuMjUgMCAxIDAtLjg4NS0yLjMzOSAxLjI1IDEuMjUgMCAwIDAgLjg4NSAyLjMzOSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ag-charts-icon-position-bottom{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9Ii4yNSIgZD0iTTMgMTBoMTR2MUgzem0zLTNoOHYxSDZ6Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTYgMTNoOHYxSDZ6Ii8+PC9zdmc+)}.ag-charts-icon-position-center{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMyAxMGgxNHYxSDN6Ii8+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1vcGFjaXR5PSIuMjUiIGQ9Ik02IDdoOHYxSDZ6bTAgNmg4djFINnoiLz48L3N2Zz4=)}.ag-charts-icon-position-top{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9Ii4yNSIgZD0iTTMgMTBoMTR2MUgzeiIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik02IDdoOHYxSDZ6Ii8+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1vcGFjaXR5PSIuMjUiIGQ9Ik02IDEzaDh2MUg2eiIvPjwvc3ZnPg==)}.ag-charts-icon-price-label-annotation{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNC41IDNBMS41IDEuNSAwIDAgMCAzIDQuNVYxM2ExLjUgMS41IDAgMCAwIDEuNSAxLjVoLjgzM3YuMDU3Yy4yNDItLjI5OS41OTctLjUwMyAxLS41NDhWMTMuNUg0LjVBLjUuNSAwIDAgMSA0IDEzVjQuNWEuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtNC44MThsLS4xMjYuMDg0YTI2IDI2IDAgMCAwLTIuMjI1IDEuNjg1bC0uMzIuMjY1LS4wNjguMDU2YTEuNSAxLjUgMCAwIDEtMi42MDkgMS4zNTRjLjAzMy43NjMuOTA1IDEuMjM4IDEuNTYuNzU2LjY0Ni0uNDc0IDEuMjEtLjk0MyAxLjc2MS0xLjRsLjMxMy0uMjZBMjYgMjYgMCAwIDEgMTAuOTg2IDE0SDE1LjVhMS41IDEuNSAwIDAgMCAxLjUtMS41di04QTEuNSAxLjUgMCAwIDAgMTUuNSAzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC43MTYgMTQuODE1YTIuMjUgMi4yNSAwIDEgMS00LjIxIDEuNTkzIDIuMjUgMi4yNSAwIDAgMSA0LjIxLTEuNTkzbS0xLjY2MiAxLjk2NmExLjI1IDEuMjUgMCAxIDAtLjg4NS0yLjMzOSAxLjI1IDEuMjUgMCAwIDAgLjg4NSAyLjMzOSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ag-charts-icon-price-range-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOS4wNDYgMTVWNS44NzdoLjk0MlYxNXoiIGZpbGw9IiMxODFEMUYiLz48cGF0aCBkPSJNOS4wNDYgMTVWNS44NzdoLjk0MlYxNXoiIGZpbGw9IiMxODFEMUYiLz48cGF0aCBkPSJNOS41IDYuMjI4IDcuMTY3IDguMzc2IDYuNSA3Ljc2MiA5LjUgNWwzIDIuNzYyLS42NjcuNjE0eiIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yIDE4di0xaDE2djF6TTIgM1YyaDE2djF6IiBmaWxsPSIjMTgxRDFGIi8+PC9zdmc+)}.ag-charts-icon-reset{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTIuMDQgNC40NDVhNS44MSA1LjgxIDAgMCAwLTcuMjU3IDIuNDUzLjUuNSAwIDAgMS0uODY1LS41MDJBNi44MSA2LjgxIDAgMSAxIDMgOS44MTNhLjUuNSAwIDAgMSAxIDAgNS44MSA1LjgxIDAgMSAwIDguMDQtNS4zNjgiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuMjg5IDMuMDAyYS41LjUgMCAwIDEgLjUuNXYyLjY1NWgyLjY1NWEuNS41IDAgMCAxIDAgMUg0LjI5YS41LjUgMCAwIDEtLjUtLjVWMy41MDJhLjUuNSAwIDAgMSAuNS0uNSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.ag-charts-icon-settings{--icon: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkIj48cGF0aCBkPSJNMTAgMTNhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2bTAtMWEyIDIgMCAxIDEtLjAwMS0zLjk5OUEyIDIgMCAwIDEgMTAgMTIiLz48cGF0aCBkPSJNMi4zMSAxNC4zNDVjLS44MTctMS40OTEuMDI3LTIuNDk5LjQ3NC0yLjg2NS41MzEtLjQzNC45NjktLjM2NS45NzItMS40OC0uMDAzLTEuMTE1LS40NDEtMS4wNDYtLjk3Mi0xLjQ4MS0uNDU0LS4zNzEtMS4zMTctMS40MDUtLjQzNC0yLjkzNmwuMDA1LS4wMDljLjg4NC0xLjUyIDIuMjA3LTEuMjkgMi43NTUtMS4wODMuNjQxLjI0My44MDEuNjU2IDEuNzY4LjEwMS45NjQtLjU2LjY4Ni0uOTA0Ljc5Ni0xLjU4Mi4wOTQtLjU3OC41NTktMS44NDMgMi4zMjYtMS44NDNoLjAxYzEuNzU5LjAwNSAyLjIyMiAxLjI2NiAyLjMxNiAxLjg0My4xMS42NzgtLjE2OCAxLjAyMi43OTYgMS41ODIuOTY3LjU1NSAxLjEyNy4xNDIgMS43NjgtLjEwMS41NDktLjIwOCAxLjg3Ni0uNDM4IDIuNzYgMS4wOTJzLjAyIDIuNTY1LS40MzQgMi45MzZjLS41MzEuNDM1LS45NjkuMzY2LS45NzIgMS40ODEuMDAzIDEuMTE1LjQ0MSAxLjA0Ni45NzIgMS40OC40NTQuMzcyIDEuMzE3IDEuNDA2LjQzNCAyLjkzN2wtLjAwNS4wMDljLS44ODQgMS41Mi0yLjIwNyAxLjI5LTIuNzU1IDEuMDgzLS42NDEtLjI0My0uODAxLS42NTYtMS43NjgtLjEwMS0uOTY0LjU2LS42ODYuOTA0LS43OTYgMS41ODEtLjA5NC41NzktLjU1OSAxLjg0NC0yLjMyNiAxLjg0NGgtLjAxYy0xLjc1OS0uMDA1LTIuMjIyLTEuMjY2LTIuMzE2LTEuODQ0LS4xMS0uNjc3LjE2OC0xLjAyMS0uNzk2LTEuNTgxLS45NjctLjU1NS0xLjEyNy0uMTQyLTEuNzY4LjEwMS0uNTQ5LjIwOC0xLjg3Ni40MzgtMi43Ni0xLjA5MmwtLjAyLS4wMzZ6TTkuOTg0IDIuMTYySDEwYzEuMzU1IDAgMS4zNDIgMS4wMzkgMS4zNTMgMS40MjUuMDA4LjMxMi4wNCAxLjE2IDEuMjU5IDEuODcybC4wMTUuMDA4YzEuMjI1LjcgMS45NzYuMzA0IDIuMjUxLjE1NS4zMzctLjE4MyAxLjIyNi0uNzExIDEuOTAyLjQ0NWwuMDA4LjAxNGMuNjc4IDEuMTczLS4yMjkgMS42ODItLjU1OCAxLjg4NC0uMjY2LjE2My0uOTg0LjYxNS0uOTkxIDIuMDI3di4wMTZjLjAwNyAxLjQxMi43MjUgMS44NjQuOTkxIDIuMDI3LjMyOC4yMDEgMS4yMjkuNzA3LjU2NiAxLjg3bC0uMDA4LjAxNGMtLjY3NyAxLjE3NC0xLjU3MS42NDMtMS45MS40NTktLjI3NS0uMTQ5LTEuMDI2LS41NDUtMi4yNTEuMTU0bC0uMDE1LjAwOWMtMS4yMTkuNzEyLTEuMjUxIDEuNTYtMS4yNTkgMS44NzItLjAxMS4zODYuMDAyIDEuNDI1LTEuMzUzIDEuNDI1cy0xLjM0Mi0xLjAzOS0xLjM1My0xLjQyNWMtLjAwOC0uMzEyLS4wNC0xLjE2LTEuMjU5LTEuODcybC0uMDE1LS4wMDljLTEuMjI1LS42OTktMS45NzYtLjMwMy0yLjI1MS0uMTU0LS4zMzYuMTgzLTEuMjE5LjcwNi0xLjg5NC0uNDMybC0uMDE2LS4wMjdjLS42NzgtMS4xNzQuMjI5LTEuNjgyLjU1OC0xLjg4NC4yNjYtLjE2My45ODQtLjYxNS45OTEtMi4wMjd2LS4wMTZjLS4wMDctMS40MTItLjcyNS0xLjg2NC0uOTkxLTIuMDI3LS4zMjgtLjIwMS0xLjIyOS0uNzA3LS41NjYtMS44N2wuMDA4LS4wMTRjLjY3Ny0xLjE3NCAxLjU3MS0uNjQzIDEuOTEtLjQ1OS4yNzUuMTQ5IDEuMDI2LjU0NSAyLjI1MS0uMTU1bC4wMTUtLjAwOGMxLjIxOS0uNzEyIDEuMjUxLTEuNTYgMS4yNTktMS44NzIuMDEtLjM4NC0uMDAyLTEuNDE3IDEuMzM3LTEuNDI1Ii8+PC9zdmc+)}.ag-charts-icon-step-line-series{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzE4MUQxRiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNiA0aDV2OGgzVjhoNXYxaC00djRoLTVWNUg3djEwSDJ2LTFoNHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-text-annotation{--icon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDRIMTZWN0gxNVY1SDEwLjVWMTVIMTRWMTZINlYxNUg5LjVWNUg1VjdINFY0WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==)}.ag-charts-icon-trend-line,.ag-charts-icon-trend-line-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS4zMTQgMTAuOTM4YTIuMjUgMi4yNSAwIDEgMSAuMDEtMWg5LjM1MmEyLjI1IDIuMjUgMCAxIDEgLjAxIDF6bS0yLjE4OS43MjlhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNW0xMy43NSAwYTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-unlock,.ag-charts-icon-unlocked{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAuNjUxIDMuNWEyLjg5NCAyLjg5NCAwIDAgMC0yLjg5NCAyLjg5NFY5SDE0LjVhMi41IDIuNSAwIDAgMSAyLjUgMi41djNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC04QTIuNSAyLjUgMCAwIDEgNCAxNC41di0zQTIuNSAyLjUgMCAwIDEgNi41IDloLjI1N1Y2LjM5NGEzLjg5NCAzLjg5NCAwIDEgMSA3Ljc4OSAwIC41LjUgMCAwIDEtMSAwQTIuODk0IDIuODk0IDAgMCAwIDEwLjY1IDMuNU02LjUgMTBBMS41IDEuNSAwIDAgMCA1IDExLjV2M0ExLjUgMS41IDAgMCAwIDYuNSAxNmg4YTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtM2ExLjUgMS41IDAgMCAwLTEuNS0xLjV6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ag-charts-icon-vertical-line,.ag-charts-icon-vertical-line-drawing{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAuNSA3LjgwNmEyLjI1IDIuMjUgMCAwIDEgMCA0LjM4OFYxOS41aC0xdi03LjMwNmEyLjI1IDIuMjUgMCAwIDEgMC00LjM4OFYuNWgxem0tLjUuOTQ0YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-zoom-in{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTEwIDUuNWEuNS41IDAgMCAxIC41LjV2My41aDMuODc1YS41LjUgMCAwIDEgMCAxSDEwLjV2NC4yNWEuNS41IDAgMSAxLTEgMFYxMC41SDUuNjI1YS41LjUgMCAxIDEgMC0xSDkuNVY2YS41LjUgMCAwIDEgLjUtLjUiLz48L3N2Zz4=)}.ag-charts-icon-zoom-out{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNS41IDEwYS41LjUgMCAwIDEgLjUtLjVoOGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEtLjUtLjUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==)}.ag-charts-icon-zoom-in-alt{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXpvb20taW4iPjxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiLz48bGluZSB4MT0iMjEiIHgyPSIxNi42NSIgeTE9IjIxIiB5Mj0iMTYuNjUiLz48bGluZSB4MT0iMTEiIHgyPSIxMSIgeTE9IjgiIHkyPSIxNCIvPjxsaW5lIHgxPSI4IiB4Mj0iMTQiIHkxPSIxMSIgeTI9IjExIi8+PC9zdmc+)}.ag-charts-icon-zoom-out-alt{--icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXpvb20tb3V0Ij48Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4Ii8+PGxpbmUgeDE9IjIxIiB4Mj0iMTYuNjUiIHkxPSIyMSIgeTI9IjE2LjY1Ii8+PGxpbmUgeDE9IjgiIHgyPSIxNCIgeTE9IjExIiB5Mj0iMTEiLz48L3N2Zz4=)}.ag-charts-input{--input-layer-active: 1;--input-layer-focus: 2;--input-padding: calc(var(--ag-charts-spacing) * 2);--input-padding-large: calc(var(--ag-charts-spacing) * 2.5);color:var(--ag-charts-input-text-color);font-family:var(--ag-charts-chrome-font-family);font-size:var(--ag-charts-chrome-font-size-large);transition-duration:.25s;transition-property:none;transition-timing-function:ease-out}.ag-charts-input:focus-visible{outline:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow);z-index:var(--input-layer-focus)}.ag-charts-button{background:var(--ag-charts-button-background-color);border-color:var(--ag-charts-border-color);border-radius:var(--ag-charts-button-border-radius);border-style:solid;border-width:var(--ag-charts-button-border-width);color:var(--ag-charts-button-text-color);cursor:pointer;padding:var(--input-padding);transition-property:background,border-color}.ag-charts-button:hover{background:var(--ag-charts-focus-color)}.ag-charts-button:has(.ag-charts-icon){padding:2px}.ag-charts-checkbox{--checkbox-transition-duration: .1s;appearance:none;background:var(--ag-charts-checkbox-background-color);border-radius:calc(var(--ag-charts-border-radius) * 9);cursor:pointer;height:18px;margin:0;transition-duration:var(--checkbox-transition-duration);transition-property:margin;width:29px}.ag-charts-checkbox:before{display:block;background:var(--ag-charts-input-background-color);border-radius:calc(var(--ag-charts-border-radius) * 7);content:" ";height:14px;margin:2px;transition-duration:var(--checkbox-transition-duration);transition-property:margin;transition-timing-function:var(--ag-charts-input-transition-easing);width:14px}.ag-charts-checkbox:checked{background:var(--ag-charts-checkbox-checked-background-color)}.ag-charts-checkbox:checked:before{margin-inline-start:13px}.ag-charts-select{background:var(--ag-charts-input-background-color);border-color:var(--ag-charts-border-color);border-radius:var(--ag-charts-input-border-radius);border-style:solid;border-width:var(--ag-charts-input-border-width);padding:3px 2px 4px;font-size:inherit}.ag-charts-textarea{--textarea-line-height: 1.38;background:var(--ag-charts-input-background-color);border-color:var(--ag-charts-border-color);border-radius:var(--ag-charts-input-border-radius);border-style:solid;border-width:var(--ag-charts-input-border-width);line-height:var(--textarea-line-height);font-family:var(--ag-charts-chrome-font-family);font-size:var(--ag-charts-chrome-font-size-large);padding:var(--input-padding-large) var(--input-padding)}.ag-charts-textarea::placeholder{color:var(--ag-charts-input-placeholder-text-color)}.ag-charts-proxy-container{pointer-events:none;position:absolute}.ag-charts-proxy-legend-toolbar{pointer-events:auto}.ag-charts-proxy-legend-toolbar>div[role=listitem]{pointer-events:none}.ag-charts-proxy-elem{-webkit-appearance:none;appearance:none;background:none;border:none;color:#0000;overflow:hidden;pointer-events:auto;position:absolute}.ag-charts-proxy-elem::-moz-range-thumb,.ag-charts-proxy-elem::-moz-range-track{opacity:0}.ag-charts-proxy-elem::-webkit-slider-runnable-track,.ag-charts-proxy-elem::-webkit-slider-thumb{opacity:0}.ag-charts-proxy-elem[data-focus-override=true],.ag-charts-proxy-elem:focus-visible{outline:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow)}.ag-charts-proxy-elem[data-focus-override=false]{outline:none;box-shadow:none}.ag-charts-proxy-elem svg{display:block}.ag-charts-proxy-scrollbar-slider:focus-visible{outline:none;box-shadow:none}.ag-charts-proxy-scrollbar-thumb-focus{border:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow);box-sizing:border-box;opacity:0;pointer-events:none}.ag-charts-proxy-scrollbar-slider:focus-visible~.ag-charts-proxy-scrollbar-thumb-focus{opacity:1}.ag-charts-focus-indicator{position:absolute;display:block;pointer-events:none;user-select:none;-webkit-user-select:none;width:100%;height:100%}.ag-charts-focus-indicator>div{position:absolute;outline:solid 1px var(--ag-charts-chrome-background-color);box-shadow:var(--ag-charts-focus-shadow)}.ag-charts-focus-indicator>svg{width:100%;height:100%;fill:none;overflow:visible}.ag-charts-focus-svg-outer-path{stroke:var(--ag-charts-chrome-background-color);stroke-width:4px}.ag-charts-focus-svg-inner-path{stroke:var(--ag-charts-accent-color);stroke-width:2px}.ag-charts-overlay{color:#181d1f;pointer-events:none}.ag-charts-overlay.ag-charts-dark-overlay{color:#fff}.ag-charts-overlay--loading{color:#8c8c8c}.ag-charts-overlay__loading-background{background:#fff;pointer-events:none}.ag-charts-overlay.ag-charts-dark-overlay .ag-charts-overlay__loading-background{background:#192232}.ag-charts-tooltip{--tooltip-arrow-size: 8px;--tooltip-row-spacing: 8px;--tooltip-column-spacing: 16px;position:fixed;inset:unset;margin:0;padding:0;overflow:visible;top:var(--top, 0px);left:var(--left, 0px);width:max-content;max-width:100%;font-family:var(--ag-charts-chrome-font-family);font-size:var(--ag-charts-chrome-font-size);font-weight:var(--ag-charts-chrome-font-weight);color:var(--ag-charts-tooltip-text-color);background:var(--ag-charts-tooltip-background-color);border-color:var(--ag-charts-border-color);border-radius:var(--ag-charts-tooltip-border-radius);border-style:solid;border-width:var(--ag-charts-tooltip-border-width);box-shadow:var(--ag-charts-popup-shadow)}.ag-charts-tooltip--compact .ag-charts-tooltip-content{--tooltip-row-spacing: 2px;--tooltip-column-spacing: 8px;padding:3px 6px}.ag-charts-tooltip--arrow-top:before,.ag-charts-tooltip--arrow-right:before,.ag-charts-tooltip--arrow-bottom:before,.ag-charts-tooltip--arrow-left:before{content:"";position:absolute;display:block;width:var(--tooltip-arrow-size);height:var(--tooltip-arrow-size);border:inherit;border-bottom-color:transparent;border-right-color:transparent;background:inherit;clip-path:polygon(0 0,100% 0,100% 1px,1px 100%,0 100%)}.ag-charts-tooltip--arrow-top:before{bottom:100%;left:50%;transform:translate(-50%) translateY(calc(var(--tooltip-arrow-size) * .5)) rotate(45deg)}.ag-charts-tooltip--arrow-bottom:before{top:100%;left:50%;transform:translate(-50%) translateY(calc(var(--tooltip-arrow-size) * -.5)) rotate(225deg)}.ag-charts-tooltip--arrow-left:before{right:100%;top:50%;transform:translateY(-50%) translate(calc(var(--tooltip-arrow-size) * .5)) rotate(315deg)}.ag-charts-tooltip--arrow-right:before{left:100%;top:50%;transform:translateY(-50%) translate(calc(var(--tooltip-arrow-size) * -.5)) rotate(135deg)}.ag-charts-tooltip--no-interaction{pointer-events:none;user-select:none;-webkit-user-select:none}.ag-charts-tooltip--wrap-always{overflow-wrap:break-word;word-break:break-word;hyphens:none}.ag-charts-tooltip--wrap-hyphenate{overflow-wrap:break-word;word-break:break-word;hyphens:auto}.ag-charts-tooltip--wrap-on-space{overflow-wrap:normal;word-break:normal}.ag-charts-tooltip--wrap-never{white-space:nowrap}.ag-charts-tooltip-heading,.ag-charts-tooltip-title,.ag-charts-tooltip-label,.ag-charts-tooltip-value{overflow:hidden;text-overflow:ellipsis}.ag-charts-tooltip-content{display:grid;grid:auto-flow minmax(1em,auto) / 1fr;padding:8px 12px;gap:var(--tooltip-row-spacing)}.ag-charts-tooltip-content:has(.ag-charts-tooltip-symbol){grid:auto-flow minmax(1em,auto) / auto 1fr}.ag-charts-tooltip-heading{grid-column:1 / -1}.ag-charts-tooltip-symbol{grid-column:1 / 2;place-self:center}.ag-charts-tooltip-symbol svg{display:block}.ag-charts-tooltip-title{grid-column:-2 / -1}.ag-charts-tooltip-row{grid-column:1 / -1;display:flex;gap:var(--tooltip-column-spacing);align-items:baseline;justify-content:space-between;overflow:hidden}.ag-charts-tooltip-row--inline{grid-column:-2 / -1}.ag-charts-tooltip-label{flex:1;min-width:0}.ag-charts-tooltip-value{min-width:0}.ag-charts-tooltip-footer{grid-column:1 / -1;color:var(--ag-charts-tooltip-subtle-text-color);text-align:center}.ag-charts-popover{position:absolute;border-color:var(--ag-charts-border-color);border-radius:var(--ag-charts-border-radius);border-style:solid;border-width:var(--ag-charts-border-width);background:var(--ag-charts-panel-background-color);color:var(--ag-charts-chrome-text-color);font-family:var(--ag-charts-chrome-font-family);font-size:var(--ag-charts-chrome-font-size);font-weight:var(--ag-charts-chrome-font-weight);box-shadow:var(--ag-charts-popup-shadow);z-index:var(--ag-charts-layer-ui-overlay)}.ag-charts-menu{--item-padding: 6px 12px;--icon-color: var(--ag-charts-menu-text-color);display:grid;grid:auto-flow auto / 1fr;column-gap:12px;font-size:var(--ag-charts-chrome-font-size)}.ag-charts-menu:has(.ag-charts-menu__icon,.ag-charts-menu__row--stroke-width-visible){grid:auto-flow auto / auto 1fr}.ag-charts-menu__row--stroke-width-visible:before{content:"";height:var(--strokeWidth);width:12px;background:var(--icon-color)}.ag-charts-menu__row--stroke-width-visible[aria-disabled=true]:before{filter:grayscale(1);opacity:.5}.ag-charts-menu__row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;padding:var(--item-padding)}.ag-charts-menu__row:not(.ag-charts-menu__row--active){cursor:pointer}.ag-charts-menu__row:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.ag-charts-menu__row:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.ag-charts-menu__row:focus{background:var(--ag-charts-focus-color)}.ag-charts-menu__row:focus-visible{outline:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow);z-index:var(--ag-charts-layer-menu)}.ag-charts-menu__row--active{--icon-color: var(--ag-charts-accent-color);background:var(--ag-charts-focus-color);color:var(--ag-charts-accent-color)}.ag-charts-menu__row[aria-disabled=true]{background:var(--ag-charts-button-disabled-background-color);color:var(--ag-charts-button-disabled-text-color);cursor:default}.ag-charts-menu__label{grid-column:-1 / span 1;text-wrap:nowrap}.ag-charts-toolbar{--toolbar-size: 34px;--toolbar-border-radius: var(--ag-charts-border-radius);--toolbar-button-background-color: var(--ag-charts-chrome-background-color);--toolbar-button-border-color: var(--ag-charts-border-color);--toolbar-button-border-width: var(--ag-charts-button-border-width);--toolbar-button-gap: 0;--toolbar-button-padding: 6px;--toolbar-button-text-color: var(--ag-charts-button-text-color);--toolbar-button-background-color--active: var(--ag-charts-focus-color);--toolbar-button-border-color--active: var(--ag-charts-accent-color);--toolbar-button-text-color--active: var(--ag-charts-accent-color);--toolbar-button-background-color--disabled: var(--ag-charts-button-disabled-background-color);--toolbar-button-border-color--disabled: var(--toolbar-button-border-color);--toolbar-button-text-color--disabled: var(--ag-charts-button-disabled-text-color);--toolbar-button-background-color--hover: var(--ag-charts-focus-color);--toolbar-button-border-color--hover: var(--toolbar-button-border-color);--toolbar-button-text-color--hover: var(--toolbar-button-text-color);align-items:center;display:flex;flex-wrap:nowrap;gap:var(--toolbar-button-gap);position:absolute}.ag-charts-toolbar__button{align-items:center;background:var(--toolbar-button-background-color);border-color:var(--toolbar-button-border-color);border-style:solid;border-width:var(--toolbar-button-border-width);color:var(--toolbar-button-text-color);cursor:pointer;display:flex;font-family:var(--ag-charts-chrome-font-family);font-size:var(--ag-charts-chrome-font-size-medium);font-weight:var(--ag-charts-chrome-font-weight);justify-content:center;min-height:var(--toolbar-size);min-width:var(--toolbar-size);padding:var(--toolbar-button-padding);position:relative;transition:background-color .25s ease-in-out,border-color .25s ease-in-out,color .25s ease-in-out;white-space:nowrap}.ag-charts-toolbar__button:hover{background:var(--toolbar-button-background-color--hover);border-color:var(--toolbar-button-border-color--hover);color:var(--toolbar-button-text-color--hover);z-index:1}.ag-charts-toolbar__button:focus-visible{outline:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow);z-index:calc(var(--ag-charts-layer-ui-overlay) + 1)}.ag-charts-toolbar__button--active,.ag-charts-toolbar__button--active:hover{background:var(--toolbar-button-background-color--active);border-color:var(--toolbar-button-border-color--active);color:var(--toolbar-button-text-color--active);z-index:2}.ag-charts-toolbar__button[aria-disabled=true]{background:var(--toolbar-button-background-color--disabled);border-color:var(--toolbar-button-border-color--disabled);color:var(--toolbar-button-text-color--disabled);cursor:default}.ag-charts-toolbar--horizontal{flex-direction:row;.ag-charts-toolbar__button{border-inline-end-width:0}.ag-charts-toolbar__button--first{border-end-start-radius:var(--toolbar-border-radius);border-start-start-radius:var(--toolbar-border-radius);margin:0}.ag-charts-toolbar__button--last{border-end-end-radius:var(--toolbar-border-radius);border-start-end-radius:var(--toolbar-border-radius);border-inline-end-width:var(--toolbar-button-border-width);margin-inline-end:0}.ag-charts-toolbar__button:hover,.ag-charts-toolbar__button--active,.ag-charts-toolbar__button--active:hover{border-inline-end-width:var(--toolbar-button-border-width);margin-inline-end:calc(-1 * var(--toolbar-button-border-width));&.ag-charts-toolbar__button--last{margin-inline-end:0}}.ag-charts-toolbar__button:hover+.ag-charts-toolbar__button:not(.ag-charts-toolbar__button--active){border-inline-start-color:var(--toolbar-button-border-color--hover)}.ag-charts-toolbar__button--active+.ag-charts-toolbar__button{border-inline-start-color:var(--toolbar-button-border-color--active)}}.ag-charts-toolbar--vertical{flex-direction:column;.ag-charts-toolbar__button{margin:-1px 0 0;max-width:100%}.ag-charts-toolbar__button--first{border-start-start-radius:var(--ag-charts-border-radius);border-start-end-radius:var(--ag-charts-border-radius);margin:0}.ag-charts-toolbar__button--last{border-end-start-radius:var(--ag-charts-border-radius);border-end-end-radius:var(--ag-charts-border-radius)}}.ag-charts-toolbar__icon+.ag-charts-toolbar__label{margin-inline-start:calc(var(--ag-charts-spacing) * 2)}.ag-charts-toolbar__label+.ag-charts-toolbar__icon{margin-inline-start:calc(var(--ag-charts-spacing) * 2)}.ag-charts-toolbar__icon,.ag-charts-toolbar__label{pointer-events:none}.ag-charts-floating-toolbar{border:none;display:flex;.ag-charts-toolbar{align-items:unset;position:unset}.ag-charts-toolbar__button:hover{border-inline-end-width:0;margin-inline-end:0;+.ag-charts-toolbar__button:not(.ag-charts-toolbar__button--active){border-inline-start-width:var(--toolbar-button-border-width);border-inline-start-color:var(--toolbar-button-border-color--hover)}&.ag-charts-toolbar__button--last{margin-inline-end:0}}.ag-charts-toolbar__button--active,.ag-charts-toolbar__button--active:hover{border-inline-end-width:0;margin-inline-end:0;+.ag-charts-toolbar__button:not(.ag-charts-toolbar__button--active){border-inline-start-width:var(--toolbar-button-border-width);border-inline-start-color:var(--toolbar-button-border-color--active)}&.ag-charts-toolbar__button--last{margin-inline-end:0}}}.ag-charts-floating-toolbar__drag-handle{align-items:center;background:var(--ag-charts-chrome-background-color);border-color:var(--ag-charts-border-color);border-style:solid;border-width:var(--ag-charts-border-width);border-end-start-radius:var(--ag-charts-border-radius);border-start-start-radius:var(--ag-charts-border-radius);border-inline-end-width:0;cursor:grab;display:flex;justify-content:center;min-width:24px;padding-inline-start:0;padding-inline-end:0}.ag-charts-floating-toolbar__drag-handle--dragging{cursor:grabbing} +`,PT=class{constructor(){this.cleanup=new qe,this.destroyed=!1}destroy(){this.cleanup.flush(),this.destroyed=!0}},zZ=class HS{constructor(e,i,n){this.element=e,this.topTabGuard=i,this.bottomTabGuard=n,this.cleanup=new qe,this.guardTabIndex=0,this.hasFocus=!1,this.initTabGuard(this.topTabGuard,!1),this.initTabGuard(this.bottomTabGuard,!0),this.element.addEventListener("focus",()=>this.onFocus(),{capture:!0}),this.element.addEventListener("blur",s=>this.onBlur(s),{capture:!0})}set tabIndex(e){this.guardTabIndex=e,this.guardTabIndex===0?this.setGuardIndices(void 0):this.hasFocus||this.setGuardIndices(this.guardTabIndex)}destroy(){this.cleanup.flush()}initTabGuard(e,i){this.cleanup.register(Qe(e,"focus",()=>this.onTab(e,i)))}setGuardIndices(e){const i=e;ye(this.topTabGuard,"tabindex",i),ye(this.bottomTabGuard,"tabindex",i)}onFocus(){this.hasFocus=!0,this.guardTabIndex!==0&&this.setGuardIndices(0)}onBlur({relatedTarget:e}){const{topTabGuard:i,bottomTabGuard:n}=this;this.hasFocus=!1,this.guardTabIndex!==0&&e!==i&&e!==n&&this.setGuardIndices(this.guardTabIndex)}onTab(e,i){if(this.guardTabIndex!==0){let n;e.tabIndex===0?(n=this.findExitTarget(!i),this.setGuardIndices(this.guardTabIndex)):n=this.findEnterTarget(i),n?.focus()}}static queryFocusable(e,i){const n=e.ownerDocument.defaultView;return Array.from(e.querySelectorAll(i)).filter(s=>{if(Eb(s)){const a=n.getComputedStyle(s);return a.display!=="none"&&a.visibility!=="none"}return!1})}findEnterTarget(e){const i=HS.queryFocusable(this.element,'[tabindex="0"]'),n=e?i.length-1:0;return i[n]}findExitTarget(e){const i=HS.queryFocusable(this.element.ownerDocument.body,"[tabindex]").filter(a=>a.tabIndex>0).sort((a,o)=>a.tabIndex-o.tabIndex),{before:n,after:s}=HS.findBeforeAndAfter(i,this.guardTabIndex);return e?n:s}static findBeforeAndAfter(e,i){let n=0,s=e.length-1,a,o;for(;n<=s;){const r=Math.floor((n+s)/2),l=e[r].tabIndex;if(l===i){a=e[r-1]||void 0,o=e[r+1]||void 0;break}else l{i.matches||(this.devicePixelRatio=this.agDocument.devicePixelRatio,this.unregisterDevicePixelRatioListener(),this.registerDevicePixelRatioListener(),this.callback(this.pixelRatio))},this.devicePixelRatio=t.devicePixelRatio}get pixelRatio(){return this.devicePixelRatio}observe(){this.registerDevicePixelRatioListener()}disconnect(){this.unregisterDevicePixelRatioListener()}unregisterDevicePixelRatioListener(){this.devicePixelRatioMediaQuery?.removeEventListener("change",this.devicePixelRatioListener),this.devicePixelRatioMediaQuery=void 0}registerDevicePixelRatioListener(){const t=this.agDocument.matchMedia(`(resolution: ${this.pixelRatio}dppx)`);t?.addEventListener("change",this.devicePixelRatioListener),this.devicePixelRatioMediaQuery=t}},VZ=class{constructor(t){this.elements=new Map,this.documentReady=!1,this.queuedObserveRequests=[],this.onLoad=()=>{this.documentReady=!0;for(const[i,n,s]of this.queuedObserveRequests)this.observe(i,n,s);this.queuedObserveRequests=[],this.observeWindow()},this.resizeObserver=t.createResizeObserver(i=>{for(const{target:n,contentRect:{width:s,height:a}}of i){const o=this.elements.get(n);this.checkSize(o,n,s,a)}});let e;this.pixelRatioObserver=new BZ(t,()=>{clearTimeout(e),e=setTimeout(()=>this.checkPixelRatio(),0)}),this.documentReady=t.isReady(),this.documentReady?this.observeWindow():this.removeLoadListener=t.attachListener("load",this.onLoad)}destroy(){this.removeLoadListener?.(),this.removeLoadListener=void 0,this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.pixelRatioObserver?.disconnect(),this.pixelRatioObserver=void 0}observeWindow(){this.pixelRatioObserver?.observe()}checkPixelRatio(){const t=this.pixelRatioObserver?.pixelRatio??1;for(const[e,i]of this.elements)if(i.size!=null&&i.size.pixelRatio!==t){const{width:n,height:s}=i.size;i.size={width:n,height:s,pixelRatio:t},i.cb(i.size,e)}}checkSize(t,e,i,n){if(t&&(i!==t.size?.width||n!==t.size?.height)){const s=this.pixelRatioObserver?.pixelRatio??1;t.size={width:i,height:n,pixelRatio:s},t.cb(t.size,e)}}observe(t,e,i){if(!this.documentReady){this.queuedObserveRequests.push([t,e,i]);return}this.elements.has(t)?this.removeFromQueue(t):this.resizeObserver?.observe(t);const n={cb:e};if(this.elements.set(t,n),!i?.skipInitialRead){const s=t.ownerDocument.defaultView?.getComputedStyle(t),a=t.clientWidth-(Number.parseFloat(s?.paddingLeft??"0")+Number.parseFloat(s?.paddingRight??"0")),o=t.clientHeight-(Number.parseFloat(s?.paddingTop??"0")+Number.parseFloat(s?.paddingBottom??"0"));(a>0||o>0)&&this.checkSize(n,t,a,o)}}unobserve(t){this.resizeObserver?.unobserve(t),this.elements.delete(t),this.removeFromQueue(t),this.elements.size||this.destroy()}removeFromQueue(t){this.queuedObserveRequests=this.queuedObserveRequests.filter(([e])=>e!==t)}},DM=class extends Map{constructor(t,e){super(),this.defaultValue=t,this.defaultState=e}set(t,e){return this.delete(t),e!==void 0&&super.set(t,e),delete this.cachedState,delete this.cachedValue,this}delete(t){return delete this.cachedState,delete this.cachedValue,super.delete(t)}stateId(){return this.cachedState??(this.cachedState=Array.from(this.keys()).pop()??this.defaultState),this.cachedState}stateValue(){return this.cachedValue??(this.cachedValue=Array.from(this.values()).pop()??this.defaultValue),this.cachedValue}},_Z=["translate"],jS=class{constructor(t,e){this.element=t,this.cache={},this.pendingWrites=new Map,this.deferredMode=e?.deferredMode,this.sizeMonitor=e?.sizeMonitor,this.skipInitialRead=e?.skipInitialRead??!1}get isConnected(){return this.element.isConnected}scheduleFlush(){this.deferredMode?this.deferredMode.scheduleFlush():this.flush()}contains(t){return this.element.contains(t)}addEventListener(t,e,i){this.element.addEventListener(t,e,i)}removeEventListener(t,e,i){this.element.removeEventListener(t,e,i)}get innerHTML(){return this.pendingWrites?this.cache.innerHTML??"":this.element.innerHTML}changed(t,e){return this.cache[t]===e?!1:(this.cache[t]=e,!0)}invalidate(t){delete this.cache[t]}setProperty(t,e){const i=`p:${t}`;if(this.changed(i,e)){if(_Z.includes(t)){this.element.style.setProperty(t,e);return}this.pendingWrites.set(i,()=>{this.element.style.setProperty(t,e)}),this.scheduleFlush()}}toggleClass(t,e){const i=`c:${t}`;this.changed(i,e)&&(this.pendingWrites.set(i,()=>{this.element.classList.toggle(t,e)}),this.scheduleFlush())}setAttr(t,e){const i=`a:${t}`;this.changed(i,e)&&(this.pendingWrites.set(i,()=>{e==null?this.element.removeAttribute(t):this.element.setAttribute(t,e)}),this.scheduleFlush())}setData(t,e){const i=`d:${t}`;this.changed(i,e)&&(this.pendingWrites.set(i,()=>{this.element.dataset[t]=e}),this.scheduleFlush())}getData(t){const e=`d:${t}`;return this.pendingWrites?this.cache[e]:this.element.dataset[t]}setInnerHTML(t){return this.changed("innerHTML",t)?(this.pendingWrites.set("innerHTML",()=>{this.element.innerHTML=t}),this.scheduleFlush(),this.invalidate("contentStyles"),!0):!1}setContentStyles(t){if(this.changed("contentStyles",JSON.stringify(t))){const e=()=>{const i=this.element.firstElementChild??this.element;Object.assign(i.style,t)};this.pendingWrites.set("contentStyles",e),this.scheduleFlush()}}flush(){if(this.pendingWrites){for(const t of this.pendingWrites.values())t();this.pendingWrites.clear()}}flushKey(t){const e=this.pendingWrites.get(t);e&&(e(),this.pendingWrites.delete(t))}togglePopover(t){t?this.changed("popover",!0)&&(this.pendingWrites.set("popover",()=>{this.element.togglePopover(!0)}),this.scheduleFlush()):(this.pendingWrites.delete("popover"),this.changed("popover",!1)&&this.element.togglePopover(!1))}appendChild(t){this.element.appendChild(t)}set innerText(t){this.element.innerText=t,this.invalidate("innerHTML")}addResizeListener(t){const{sizeMonitor:e,element:i,skipInitialRead:n}=this;if(e==null)throw new Error("AG Charts - addResizeListener requires a SizeMonitor");return e.observe(i,s=>t(s),{skipInitialRead:n}),()=>e.unobserve(i)}reset(){this.cache={}}},FZ='',HZ=["styles","canvas","canvas-background","canvas-center","canvas-container","canvas-overlay","canvas-proxy","series-area","tooltip-container"],jZ=new Set(["styles","canvas-container","canvas","tooltip-container"]),Xz={safeHorizontal:"ag-charts-wrapper--safe-horizontal",safeVertical:"ag-charts-wrapper--safe-vertical"},GZ=new Map([["styles",{childElementType:"style"}],["canvas",{childElementType:"canvas"}],["canvas-proxy",{childElementType:"div"}],["canvas-overlay",{childElementType:"div"}],["canvas-center",{childElementType:"div"}],["series-area",{childElementType:"div"}],["tooltip-container",{childElementType:"div"}]]);function UZ(t,e,i){const n=t.createIntersectionObserver(s=>{for(const a of s)a.target===e&&i(a.intersectionRatio)},{root:e});return n?.observe(e),n}var DG={x:0,y:0,width:0,height:0,top:0,bottom:0,left:0,right:0,toJSON(){return DG}};function Zz(t,e){const i=$t("div");return i.className="ag-charts-tab-guard",t.insertAdjacentElement(e,i),i}var VD=class Bd extends PT{constructor(e,i,n,s,a,o,r="normal"){super(),this.eventsHub=e,this.chart=i,this.agDocument=n,this.styleContainer=a,this.skipCss=o,this.mode=r,this.anchorName=`--${Nn(this)}`,this.styles=new Map,this.pendingContainer=void 0,this.container=void 0,this.documentRoot=void 0,this.initiallyConnected=void 0,this.containerSize=void 0,this.cursorState=new DM("default"),this._lastCursor=void 0,this._lastCenterSize=void 0,this.deferredProxies=new Map,this.deferredMode={scheduleFlush:this.scheduleFlush.bind(this)},this.minWidth=0,this.minHeight=0,this._isRtl=!1,this._deferring=!1,this.sizeMonitor=new VZ(n),this.element=this.initDOM(),this.elementProxy=new jS(this.element,{deferredMode:this.deferredMode}),this.rootElements=this.initRootElements(),this.rootElements.canvas.element.style.setProperty("anchor-name",this.anchorName),this.sizeMonitor.observe(this.rootElements.canvas.element,()=>this.invalidateRectCaches(),{skipInitialRead:this.mode==="minimal"});let l=!1;if(this.observer=UZ(n,this.element,c=>{c===0&&!l&&this.eventsHub.emit("dom:hidden",null),l=c===0}),this.setSizeOptions(),this.updateContainerSize(),this.addStyles("ag-charts-community",PZ),this.setContainer(s),this.cleanup.register(vj(this.element)),this.setupGlobalListeners(),this.mode==="normal"){const c=this.rootElements["canvas-center"].element;if(c==null)throw new Error("Error initializing tab guards");const u=Zz(c,"beforebegin"),d=Zz(c,"afterend");this.tabGuards=new zZ(c,u,d)}}initDOM(){if(this.mode==="normal"){const n=$t("div");return n.innerHTML=FZ,n.firstChild}const e=$t("div");e.role="presentation",e.dataset.agCharts="",e.classList.add("ag-charts-wrapper");const i=$t("div");return e.appendChild(i),i.role="presentation",i.classList.add("ag-charts-series-area"),e}initRootElements(){const{mode:e,element:i}=this,n={};for(const s of HZ){const a=`ag-charts-${s}`;let o;if(e==="normal"?o=i.classList.contains(a)?i:i.getElementsByClassName(a)[0]:jZ.has(s)?o=i:o=i.getElementsByClassName(a)[0]??$t("div"),o==null)throw new Error(`AG Charts - unable to find DOM element ${a}`);n[s]={element:o,children:new Map,listeners:[]}}return n}destroy(){super.destroy(),this.observer?.unobserve(this.element),this.sizeMonitor.unobserve(this.rootElements.canvas.element),this.container&&this.sizeMonitor.unobserve(this.container),this.pendingContainer=void 0;for(const e of Object.values(this.rootElements)){for(const i of e.children.values())i.remove();e.element.remove()}this.element.remove()}scheduleFlush(){this._deferring||this._pendingFlush==null&&(this._pendingFlush=setTimeout(()=>{this._pendingFlush=void 0,!this._deferring&&this.flushDeferredProxies()}))}flushDeferredProxies(){this._pendingFlush!=null&&(clearTimeout(this._pendingFlush),this._pendingFlush=void 0),this.elementProxy.flush();for(const e of this.deferredProxies.values())e.flush();this.updateStylesLocation(),this.mode!=="minimal"&&(this.pendingContainer==null||this.pendingContainer===this.container||(Bd.batchedUpdateContainer.length===0&&setTimeout(this.applyBatchedUpdateContainer.bind(this),0),Bd.batchedUpdateContainer.push(this)))}applyBatchedUpdateContainer(){for(const e of Bd.batchedUpdateContainer)e.destroyed||e.updateContainer();Bd.batchedUpdateContainer.splice(0)}updateStylesLocation(){if(!(this.initiallyConnected===!0||this.container?.isConnected===!1)){this.documentRoot=this.getShadowDocumentRoot(this.container),this.initiallyConnected=!0;for(const e of this.rootElements.styles.children.keys())this.removeChild("styles",e);for(const[e,i]of this.styles)this.addStyles(e,i)}}setSizeOptions(e=300,i=300,n,s){const{style:a}=this.element;this.minWidth=n??e,this.minHeight=s??i,a.minWidth=`${this.minWidth}px`,a.minHeight=`${this.minHeight}px`,this.updateContainerClassName()}updateContainerSize(){const e=this.containerSize==null?"hidden":"",i=this.containerSize?`${this.containerSize.width??0}px`:"",n=this.containerSize?`${this.containerSize.height??0}px`:"",s=this._lastCenterSize;if(s==null||s.visibility!==e||s.width!==i||s.height!==n){this._lastCenterSize={visibility:e,width:i,height:n};const{style:a}=this.rootElements["canvas-center"].element;a.visibility=e,a.width=i,a.height=n}this.updateContainerClassName()}setTabGuardIndex(e){this.tabGuards&&(this.tabGuards.tabIndex=e)}setContainer(e){e!==this.container&&(this.pendingContainer=e,(this.mode==="minimal"||this.container==null)&&this.updateContainer())}updateContainer(){const{pendingContainer:e}=this;if(!(e==null||e===this.container)){if(this.container&&(this.element.remove(),this.sizeMonitor.unobserve(this.container)),this.documentRoot!=null)for(const i of this.rootElements.styles.children.keys())this.removeChild("styles",i);this.container=e,this.pendingContainer=void 0,this.agDocument.setContainer(e),this.documentRoot=this.getShadowDocumentRoot(e),this.initiallyConnected=e.isConnected;for(const[i,n]of this.styles)this.addStyles(i,n);e.appendChild(this.element),this.sizeMonitor.observe(e,i=>{this.containerSize=i,this.updateContainerSize(),this.invalidateRectCaches(),this.eventsHub.emit("dom:resize",null)},{skipInitialRead:this.mode==="minimal"}),this.invalidateAllCaches(),this.updateRtl(),this.eventsHub.emit("dom:container-change",null)}}setThemeClass(e){const i="ag-charts-theme-";for(const n of Array.from(this.element.classList))n.startsWith(i)&&n!==e&&this.element.classList.remove(n);this.element.classList.add(e)}setThemeParameters(e){this.setCSSVariables("--ag-charts",void 0,void 0,e)}setModuleCSSVariables(e,i,n,s,a){this.setCSSVariables(`--ag-charts-${e}`,i,n,s,a)}setCSSVariables(e,i,n,s,a){for(const[o,r]of Xe(s)){let l=o,c=`${r}`;o.endsWith("Size")||o.endsWith("Radius")||a?.includes(o)?c=`${r}px`:o.endsWith("Border")&&typeof r=="boolean"&&(l=`${o}Width`,c=r?"var(--ag-charts-border-width)":"0"),l=`${e}${i?"__":""}${i??""}-${g4(l)}${n?"--":""}${n??""}`,this.element.style.setProperty(l,c)}}updateCanvasLabel(e){ye(this.rootElements["canvas-proxy"].element,"aria-label",e)}getEventElement(e,i){return["focus","blur","keydown","keyup"].includes(i)?this.rootElements["series-area"].element:e}addEventListener(e,i,n){const s=this.getEventElement(this.element,e);return Qe(s,e,i,n)}removeEventListener(e,i,n){this.getEventElement(this.element,e).removeEventListener(e,i,n)}getBoundingClientRect(){return this._cachedCanvasRect??(this._cachedCanvasRect=this.rootElements.canvas.element.getBoundingClientRect()),this._cachedCanvasRect}getOverlayClientRect(){const{innerWidth:e,innerHeight:i}=this.agDocument,n=new Tt(0,0,e,i),s=this.getRawOverlayClientRect();return n.intersection(s)?.toDOMRect()??DG}findScrollableContainer(){if(this._cachedScrollableContainer!==void 0)return this._cachedScrollableContainer;let e=this.element;const i=this.element.getRootNode()?.fullscreenElement;for(;e!=null;){let n;if(i!=null&&e===i)n=!0;else{const a=e.computedStyleMap?.()?.get("overflow-y")?.toString();n=a==="auto"||a==="scroll"}if(n)return this._cachedScrollableContainer=e,e;e=e.parentElement}return this._cachedScrollableContainer=null,null}getRawOverlayClientRect(){if(this._cachedRawOverlayRect!=null)return this._cachedRawOverlayRect;const e=this.findScrollableContainer();if(e!=null)return this._cachedRawOverlayRect=Tt.fromObject(e.getBoundingClientRect()),this._cachedRawOverlayRect;if(this.documentRoot!=null)return this._cachedRawOverlayRect=Tt.fromObject(this.documentRoot.getBoundingClientRect()),this._cachedRawOverlayRect;const{innerWidth:i,innerHeight:n}=this.agDocument;return this._cachedRawOverlayRect=new Tt(0,0,i,n),this._cachedRawOverlayRect}getShadowDocumentRoot(e=this.container){const i=e?.ownerDocument?.body??this.agDocument.body;for(;e!=null;){if(e===i)return;if(YH(e.parentNode))return e;e=e.parentNode}}getParent(e){return this.rootElements[e].element}getChildBoundingClientRect(e){const{children:i}=this.rootElements[e],n=[];for(const s of i.values())n.push(Tt.fromObject(s.getBoundingClientRect()));return Tt.merge(n)}isManagedChildDOMElement(e,i,n){const{children:s}=this.rootElements[i],a=s?.get(n);return a!=null&&e.contains(a)}contains(e,i){return i==null?this.element.contains(e):this.rootElements[i].element.contains(e)}addStyles(e,i){const n="data-ag-charts";if(this.styles.set(e,i),this.container==null||this.skipCss)return;const s=r=>r.getAttribute(n)===e,a=r=>{const l=new Set(["TITLE","META"]);let c=!0,u;for(const g of r.children){if(c&&l.has(g.tagName)){u=g;continue}if(c=!1,s(g))return;g.hasAttribute(n)&&(u=g)}const d=$t("style");return this.chart.styleNonce!=null&&(d.nonce=this.chart.styleNonce),u==null?r.prepend(d):r.insertBefore(d,u.nextSibling),d};let o;this.styleContainer?o=a(this.styleContainer):this.initiallyConnected===!1?o=this.addChild("styles",e):this.documentRoot==null&&!Bd.headStyles.has(e)?(o=a(this.agDocument.head),Bd.headStyles.add(e)):this.documentRoot!=null&&(o=this.addChild("styles",e)),!(o==null||s(o))&&(o.setAttribute(n,e),o.innerHTML=i)}removeStyles(e){this.removeChild("styles",e)}updateCursor(e,i){this.cursorState.set(e,i);const n=this.cursorState.stateValue();n!==this._lastCursor&&(this._lastCursor=n,this.element.style.cursor=n)}getCursor(){return this.element.style.cursor}get isRtl(){return this._isRtl}setEnableRtl(e){this.enableRtl=e,this.updateRtl()}updateRtl(){const e=this.enableRtl??(this.mode==="minimal"?!1:ff(this.container??this.pendingContainer));e!==this._isRtl&&(this._isRtl=e,this.element.dir=e?"rtl":"ltr",this.eventsHub.emit("rtl:change",null))}addChild(e,i,n,s){const{element:a,children:o,listeners:r}=this.rootElements[e];if(!o)throw new Error("AG Charts - unable to create DOM elements after destroy()");if(o.has(i))return o.get(i);const{childElementType:l="div"}=GZ.get(e)??{};if(n&&n.tagName.toLowerCase()!==l.toLowerCase())throw new Error("AG Charts - mismatching DOM element type");const c=n??$t(l);for(const[u,d,g]of r)c.addEventListener(u,d,g);if(o.set(i,c),l==="style"&&this.chart.styleNonce!=null&&(c.nonce=this.chart.styleNonce),s){const u=a.querySelector(s.query);if(u==null)throw new Error(`AG Charts - addChild query failed ${s.query}`);u.insertAdjacentElement(s.where,c)}else a?.appendChild(c);return c}addProxyChild(e,i){const n=this.addChild(e,i),s=this.mode==="minimal";return new jS(n,{sizeMonitor:this.sizeMonitor,skipInitialRead:s})}addDeferredProxyChild(e,i){const n=this.addChild(e,i),s=this.mode==="minimal",a=new jS(n,{deferredMode:this.deferredMode,sizeMonitor:this.sizeMonitor,skipInitialRead:s});return this.deferredProxies.set(`${e}:${i}`,a),a}setDeferring(e){this.mode!=="minimal"&&(this._deferring=e,e||this.flushDeferredProxies())}removeChild(e,i){const{children:n}=this.rootElements[e];n&&(n.get(i)?.remove(),n.delete(i),this.deferredProxies.delete(`${e}:${i}`))}incrementDataCounter(e){const i=this.elementProxy.getData(e)??"0";this.elementProxy.setData(e,String(Number(i)+1))}setDataBoolean(e,i){this.elementProxy.setData(e,String(i))}setDataNumber(e,i){this.elementProxy.setData(e,String(i))}getDocument(){return this.agDocument}invalidateRectCaches(){this._cachedCanvasRect=void 0,this._cachedRawOverlayRect=void 0}invalidateAllCaches(){this.invalidateRectCaches(),this._cachedScrollableContainer=void 0}setupGlobalListeners(){const e=this.element.ownerDocument.defaultView;if(e==null)return;const i=()=>this.invalidateRectCaches(),n=()=>this.invalidateAllCaches();e.addEventListener("scroll",i,{capture:!0,passive:!0}),e.addEventListener("resize",i,{capture:!0,passive:!0}),this.element.ownerDocument.addEventListener("fullscreenchange",n),this.cleanup.register(()=>{e.removeEventListener("scroll",i,{capture:!0}),e.removeEventListener("resize",i,{capture:!0}),this.element.ownerDocument.removeEventListener("fullscreenchange",n)})}updateContainerClassName(){const{element:e,containerSize:i,minWidth:n,minHeight:s}=this;e.classList.toggle(Xz.safeHorizontal,n>=(i?.width??1/0)),e.classList.toggle(Xz.safeVertical,s>=(i?.height??1/0))}};VD.className="DOMManager";VD.batchedUpdateContainer=[];VD.headStyles=new Set;var AG=VD;function Lg(t,e,i){const{offsetX:n,offsetY:s,clientX:a,clientY:o}=e,{currentX:r,currentY:l}=cu.calcCurrentXY(i,e);return{type:t,device:"mouse",offsetX:n,offsetY:s,clientX:a,clientY:o,currentX:r,currentY:l,sourceEvent:e}}function _0(t,e,i){return{type:t,sourceEvent:e}}var qz={change:{isNative:!0,allocator(t,e){return{type:"change",sourceEvent:t}}},blur:{isNative:!0,allocator(t,e){return{type:"blur",sourceEvent:t}}},focus:{isNative:!0,allocator(t,e){return{type:"focus",sourceEvent:t}}},keydown:{isNative:!0,allocator(t){return{type:"keydown",sourceEvent:t}}},keyup:{isNative:!0,allocator(t){return{type:"keyup",sourceEvent:t}}},contextmenu:{isNative:!0,allocator(t,e){return Lg("contextmenu",t,e)}},click:{isNative:!0,allocator(t,e){return Lg("click",t,e)}},dblclick:{isNative:!0,allocator(t,e){return Lg("dblclick",t,e)}},mouseenter:{isNative:!0,allocator(t,e){return Lg("mouseenter",t,e)}},mousemove:{isNative:!0,allocator(t,e){return Lg("mousemove",t,e)}},mouseleave:{isNative:!0,allocator(t,e){return Lg("mouseleave",t,e)}},wheel:{isNative:!0,allocator(t,e){const{offsetX:i,offsetY:n,clientX:s,clientY:a}=t,o=t.deltaMode===0?.01:1;let r=t.deltaX*o,l=t.deltaY*o;return Math.abs(t.deltaX)===0&&t.shiftKey&&([r,l]=[l,r]),{type:"wheel",offsetX:i,offsetY:n,clientX:s,clientY:a,deltaX:r,deltaY:l,sourceEvent:t}}},touchstart:{isNative:!0,allocator(t,e){return _0("touchstart",t)}},touchmove:{isNative:!0,allocator(t,e){return _0("touchmove",t)}},touchend:{isNative:!0,allocator(t,e){return _0("touchend",t)}},touchcancel:{isNative:!0,allocator(t,e){return _0("touchcancel",t)}},"drag-start":void 0,"drag-move":void 0,"drag-end":void 0,"collapse-widget":void 0,"expand-widget":void 0,"expand-controlled-widget":void 0},cu=class{static alloc(t,e,i){const n=qz[t].allocator;return n(e,i)}static isHTMLEvent(t){return qz[t]?.isNative===!0}static calcCurrentXY(t,e){const i=t.getBoundingClientRect();return{currentX:e.clientX-i.x,currentY:e.clientY-i.y}}},WZ=class{constructor(){this.widgetListeners={},this.sourceListeners={}}initSourceHandler(t,e){this.sourceListeners??(this.sourceListeners={}),this.sourceListeners[t]=e}lazyGetWidgetListeners(t,e){var i;if(!(t in(this.sourceListeners??{}))){const n=a=>{const o=cu.alloc(t,a,e.getElement());this.dispatch(t,e,o)},s={};(t.startsWith("touch")||t==="wheel")&&(s.passive=!1),this.initSourceHandler(t,n),e.getElement().addEventListener(t,n,s)}return this.widgetListeners??(this.widgetListeners={}),(i=this.widgetListeners)[t]??(i[t]=[]),this.widgetListeners[t]}add(t,e,i){this.lazyGetWidgetListeners(t,e).push(i)}remove(t,e,i){const n=this.lazyGetWidgetListeners(t,e),s=n.indexOf(i);s>-1&&n.splice(s,1)}destroy(t){if(this.widgetListeners=void 0,this.sourceListeners){for(const[e,i]of Xe(this.sourceListeners))t.getElement().removeEventListener(e,i);this.sourceListeners=void 0}}dispatch(t,e,i){for(const n of this.widgetListeners?.[t]??[])n(i,e)}},KZ=class{constructor(t,e,i,n){this.glob=t,this.self=e,this.cleanup=new qe,this.mousegeneral=l=>{l.stopPropagation(),l.stopImmediatePropagation()},this.mousemove=l=>{l.stopPropagation(),l.stopImmediatePropagation(),this.glob.globalMouseDragCallbacks?.mousemove(l)},this.mouseup=l=>{l.button===0&&(l.stopPropagation(),l.stopImmediatePropagation(),this.glob.globalMouseDragCallbacks?.mouseup(l),this.destroy())};const{mousegeneral:s,mousemove:a,mouseup:o}=this,r=n.view;this.cleanup.register(Qe(r,"mousedown",s,{capture:!0}),Qe(r,"mouseenter",s,{capture:!0}),Qe(r,"mouseleave",s,{capture:!0}),Qe(r,"mouseout",s,{capture:!0}),Qe(r,"mouseover",s,{capture:!0}),Qe(r,"mousemove",a,{capture:!0}),Qe(r,"mouseup",o,{capture:!0})),e.mouseDragger=this,t.globalMouseDragCallbacks=i,t.globalMouseDragCallbacks.mousedown(n),n.stopPropagation(),n.stopImmediatePropagation()}destroy(){this.cleanup.flush(),this.glob.globalMouseDragCallbacks=void 0,this.self.mouseDragger=void 0}};function YZ(t,e,i,n){if(t.globalMouseDragCallbacks==null)return new KZ(t,e,i,n)}var $Z=500,XZ=100;function ZZ(t,e){const i=t.clientX-e.clientX,n=t.clientY-e.clientY;return i*i+n*n}var fN=!1,qZ=class{constructor(t,e,i,n,s){this.glob=t,this.self=e,this.initialTouch=n,this.target=s,this.cleanup=new qe,this.longTapInterrupted=!1,this.longtap=()=>{const{target:r,initialTouch:l}=this;if(!this.longTapInterrupted){const c=new qe;r.dispatchEvent(new TouchEvent("touchcancel",{touches:[l],bubbles:!0})),fN=!0;const u=x=>x.preventDefault(),d=x=>{fN=!1,x.preventDefault(),c.flush()};c.register(Qe(r,"touchmove",u,{passive:!1}),Qe(r,"touchend",d,{passive:!1}),Qe(r,"touchcancel",d,{passive:!1}));const{clientX:g,clientY:f}=l,y=new PointerEvent("contextmenu",{bubbles:!0,cancelable:!0,view:r.ownerDocument.defaultView,clientX:g,clientY:f,pointerType:"touch"});r.dispatchEvent(y)}},this.touchmove=r=>{const{glob:l,self:c,initialTouch:u}=this,d=this.findInitialFinger(r.targetTouches);d!=null&&(this.longTapInterrupted=this.longTapInterrupted||ZZ(u,d)>XZ,c.dragTouchEnabled&&l.globalTouchDragCallbacks?.touchmove(r,d))},this.touchend=r=>{this.longTapInterrupted=!0;const l=this.findInitialFinger(r.changedTouches,r.touches);l!=null&&this.glob.globalTouchDragCallbacks?.touchend(r,l),this.destroy()},this.longtapTimer=setTimeout(this.longtap,$Z);const{touchmove:a,touchend:o}=this;this.cleanup.register(Qe(s,"touchmove",a,{passive:!1}),Qe(s,"touchstart",o,{passive:!1}),Qe(s,"touchend",o,{passive:!1}),Qe(s,"touchcancel",o,{passive:!1})),e.touchDragger=this,t.globalTouchDragCallbacks=i}destroy(){clearTimeout(this.longtapTimer),this.cleanup.flush(),this.glob.globalTouchDragCallbacks=void 0,this.self.touchDragger=void 0}findInitialFinger(...t){const e=t.flatMap(i=>Array.from(i));return Array.from(e).find(i=>i.identifier===this.initialTouch.identifier)}};function QZ(t,e,i,n,s){if(!(t.globalTouchDragCallbacks!=null||fN))return new qZ(t,e,i,n,s)}function IC(t,e,i,n){const{currentX:s,currentY:a}=cu.calcCurrentXY(t.getElement(),n),o=n.pageX-i.pageX,r=n.pageY-i.pageY;return{type:e,device:"mouse",offsetX:i.offsetX+o,offsetY:i.offsetY+r,clientX:n.clientX,clientY:n.clientY,currentX:s,currentY:a,originDeltaX:o,originDeltaY:r,sourceEvent:n}}function JZ(t,{pageX:e,pageY:i}){const{x:n,y:s}=t.getElement().getBoundingClientRect();return{offsetX:e-n,offsetY:i-s}}function kC(t,e,i,n,s){const{currentX:a,currentY:o}=cu.calcCurrentXY(t.getElement(),s),r=s.pageX-i.pageX,l=s.pageY-i.pageY;return{type:e,device:"touch",offsetX:i.offsetX+r,offsetY:i.offsetY+l,clientX:s.clientX,clientY:s.clientY,currentX:a,currentY:o,originDeltaX:r,originDeltaY:l,sourceEvent:n}}var Qz={},Jz=class{constructor(t){this.dispatchCallback=t,this.dragTouchEnabled=!0}destroy(){this.dragTriggerRemover?.(),this.dragTriggerRemover=void 0,this.listeners?.clear(),this.mouseDragger?.destroy(),this.touchDragger?.destroy()}getListenerSet(t){this.listeners??(this.listeners=new Map);let e=this.listeners.get(t);return e===void 0&&(e=new Set,this.listeners.set(t,e)),e}add(t,e,i){switch(this.getListenerSet(t).add(i),t){case"drag-start":case"drag-move":case"drag-end":{this.registerDragTrigger(e);break}}}remove(t,e,i){this.getListenerSet(t).delete(i)}registerDragTrigger(t){if(this.dragTriggerRemover==null){const e=t.getElement(),i=new qe;i.register(Qe(e,"mousedown",n=>this.triggerMouseDrag(t,n)),Qe(e,"touchstart",n=>this.triggerTouchDrag(t,n),{passive:!1})),this.dragTriggerRemover=()=>i.flush()}}triggerMouseDrag(t,e){if(e.button===0){if(e.view==null){const i=t.getElement().ownerDocument.defaultView;e=new i.MouseEvent(e.type,{...e,view:i})}this.startMouseDrag(t,e)}}startMouseDrag(t,e){const i={pageX:Number.NaN,pageY:Number.NaN,offsetX:Number.NaN,offsetY:Number.NaN};rM(["pageX","pageY","offsetX","offsetY"],i,e);const n={mousedown:s=>{const a=IC(t,"drag-start",i,s);this.dispatch("drag-start",t,a)},mousemove:s=>{const a=IC(t,"drag-move",i,s);this.dispatch("drag-move",t,a)},mouseup:s=>{const a=IC(t,"drag-end",i,s);this.dispatch("drag-end",t,a),this.endDrag(t,a)}};this.mouseDragger=YZ(Qz,this,n,e)}endDrag(t,{sourceEvent:e,clientX:i,clientY:n}){const s=t.getElement(),a=s.getBoundingClientRect();MD(a,i,n)||(s.dispatchEvent(new MouseEvent("mouseleave",e)),e.target?.dispatchEvent(new MouseEvent("mouseenter",e)))}triggerTouchDrag(t,e){const i=e.targetTouches[0];e.targetTouches.length===1&&i!=null&&this.startOneFingerTouch(t,e,i)}startOneFingerTouch(t,e,i){const n={pageX:Number.NaN,pageY:Number.NaN,...JZ(t,i)};rM(["pageX","pageY"],n,i);const s={touchmove:(r,l)=>{const c=kC(t,"drag-move",n,r,l);this.dispatch("drag-move",t,c)},touchend:(r,l)=>{const c=kC(t,"drag-end",n,r,l);this.dispatch("drag-end",t,c)}},a=t.getElement();this.touchDragger=QZ(Qz,this,s,i,a);const o=kC(t,"drag-start",n,e,i);this.dispatch("drag-start",t,o)}dispatch(t,e,i){for(const n of this.getListenerSet(t))n(i,e);this.dispatchCallback(t,i)}},tq=class{constructor(t){this.elem=t}setBounds(t){tM(this.elemContainer??this.elem,t)}getBounds(){return s4(this.elemContainer??this.elem)}static setElementContainer(t,e){const i=t.getBounds();tM(e,i),ij(t.elem,{width:"100%",height:"100%"}),t.elem.remove(),t.elemContainer=e,t.elemContainer.replaceChildren(t.elem)}},Vu=class extends tq{constructor(){super(...arguments),this.index=Number.NaN,this.children=[]}set id(t){ye(this.elem,"id",t)}get id(){return Jd(this.elem,"id")}getElement(){return this.elem}getBoundingClientRect(){return this.elem.getBoundingClientRect()}get clientWidth(){return this.elem.clientWidth}get clientHeight(){return this.elem.clientHeight}destroy(){this.destroyListener?.(),this.destroyListener=void 0,this.remove();for(const t of this.children)t.parent=void 0,t.destroy();this.children.length=0,this.destructor(),this.remove(),this.internalListener?.destroy(),this.htmlListener?.destroy(this)}remove(){this.elem.remove(),this.elemContainer?.remove()}setHidden(t){Cr(this.elem,"display",t?"none":void 0)}isHidden(){const{defaultView:t}=this.elem.ownerDocument;return t?.getComputedStyle(this.elem).display==="none"}setCursor(t){Cr(this.elem,"cursor",t)}setTextContent(t){this.elem.textContent=t??null}setAriaDescribedBy(t){ye(this.elem,"aria-describedby",t)}setAriaHidden(t){ye(this.elem,"aria-hidden",t)}setAriaLabel(t){ye(this.elem,"aria-label",t)}setAriaExpanded(t){ye(this.elem,"aria-expanded",t)}setAriaControls(t){ye(this.elem,"aria-controls",t)}setAriaHasPopup(t){ye(this.elem,"aria-haspopup",t)}setInnerHTML(t){this.elem.innerHTML=t}setPointerEvents(t){Cr(this.elem,"pointer-events",t)}setCSSVariable(t,e){this.elem.style.setProperty(t,e)}isDisabled(){return Jd(this.elem,"aria-disabled",!1)}hasPopup(){const t=Jd(this.elem,"aria-haspopup");return t!==void 0&&t!=="false"}parseFloat(t){return t===""?0:Number.parseFloat(t)}cssLeft(){return this.parseFloat(this.elem.style.left)}cssTop(){return this.parseFloat(this.elem.style.top)}cssWidth(){return this.parseFloat(this.elem.style.width)}cssHeight(){return this.parseFloat(this.elem.style.height)}focus(t){this.elem.focus(t)}setFocusOverride(t){ye(this.elem,"data-focus-override",t)}setPreventsDefault(t){ye(this.elem,"data-preventdefault",t)}setTabIndex(t){ye(this.elem,"tabindex",t)}addChild(t){this.addChildToDOM(t,this.getBefore(t)),this.children.push(t),t.index=this.children.length-1,t.parent=this,this.onChildAdded(t)}removeChild(t){const e=this.children.indexOf(t);this.children.splice(e,1),this.removeChildFromDOM(t),this.onChildRemoved(t)}moveChild(t,e){t.domIndex!==e&&(t.domIndex=e,this.removeChildFromDOM(t),this.addChildToDOM(t,this.getBefore(t)))}addClass(...t){this.elem.classList.add(...t)}removeClass(...t){this.elem.classList.remove(...t)}toggleClass(t,e){this.elem.classList.toggle(t,e)}appendOrInsert(t,e){e?e.getElement().insertAdjacentElement("beforebegin",t):this.elem.appendChild(t)}addChildToDOM(t,e){this.appendOrInsert(t.getElement(),e)}removeChildFromDOM(t){t.getElement().remove()}onChildAdded(t){}onChildRemoved(t){}getBefore({domIndex:t}){if(t!==void 0)return this.children.filter(e=>e.domIndex!==void 0&&e.domIndex>t).reduce((e,i)=>!e||i.domIndexthis.removeListener(t,e)}removeListener(t,e){cu.isHTMLEvent(t)?this.htmlListener?.remove(t,this,e):this.htmlListener!=null&&this.internalListener?.remove(t,this,e)}setDragTouchEnabled(t){this.internalListener??(this.internalListener=new Jz(this.onDispatch.bind(this))),this.internalListener.dragTouchEnabled=t}onDispatch(t,e){if(!e.sourceEvent?.bubbles)return;let{parent:i}=this;for(;i!=null;){const{internalListener:n}=i;if(n!=null){const s={...e,...cu.calcCurrentXY(i.getElement(),e)};n.dispatch(t,i,s)}i=i.parent}}},eq=class extends Vu{constructor(){super($t("div")),this.textElement=$i("text"),this.textElement.role="presentation",this.svgElement=$i("svg"),this.svgElement.appendChild(this.textElement),this.svgElement.style.width="100%",this.svgElement.style.opacity="0",this.svgElement.role="presentation",this.elem.appendChild(this.svgElement),this.elem.role="presentation"}set textContent(t){this.textElement.textContent=t;const i=this.textElement.getBBox?.();i&&this.svgElement.setAttribute("viewBox",`${i.x} ${i.y} ${i.width} ${i.height}`)}get textContent(){return this.textElement.textContent}destructor(){}},iq=class{constructor(t,e){this.getDispatcher=e,this.onExpanded=()=>{this.controller.setAriaExpanded(!0);const i=this.getDispatcher();if(i&&this.controls){const n={type:"expand-controlled-widget",controlled:this.controls};i.dispatch("expand-controlled-widget",this.controller,n)}},this.onCollapsed=i=>{this.controller.setAriaExpanded(!1),i.mode==="0"&&this.controller.focus()},t.setAriaExpanded(!1),this.controller=t}destroy(){this.controls?.collapse({mode:"2"}),this.setControlled(void 0)}setControlled(t){this.controls&&(this.controls.removeListener("expand-widget",this.onExpanded),this.controls.removeListener("collapse-widget",this.onCollapsed)),this.controls=t,this.controls&&(this.controller.setAriaControls(this.controls.id),this.controls.addListener("expand-widget",this.onExpanded),this.controls.addListener("collapse-widget",this.onCollapsed))}getControlled(){return this.controls}expandControlled(t){this.controller.isDisabled()||this.controls?.expand({controller:this.controller,sourceEvent:void 0,overrideFocusVisible:t?.overrideFocusVisible})}},zT=class extends Vu{constructor(t,e){super(t),ye(this.elem,"role",e),this.setEnabled(!0),this.addListener("keydown",({sourceEvent:i})=>{lT(i)&&(i.preventDefault(),this.htmlListener?.dispatch("click",this,{type:"click",device:"keyboard",sourceEvent:i}))})}lazyControllerImpl(){return this.controllerImpl??(this.controllerImpl=new iq(this,()=>this.internalListener)),this.controllerImpl}destructor(){this.controllerImpl?.destroy()}setEnabled(t){ye(this.elem,"aria-disabled",!t)}setControlled(t){return this.lazyControllerImpl().setControlled(t)}getControlled(){return this.lazyControllerImpl().getControlled()}expandControlled(t){return this.lazyControllerImpl().expandControlled(t)}addListener(t,e){return super.addListener(t,(i,n)=>{(t==="click"||t==="dblclick")&&this.isDisabled()||e(i,n)})}},_D=class extends zT{constructor(){super($t("button"))}},IG=class extends Vu{constructor(){super($t("div")),ye(this.elem,"role","group")}destructor(){}},BT=class extends Vu{constructor(t,e){super($t("div")),this.focusedChildIndex=0,this.onChildFocus=(i,n)=>{const s=this.children[this.focusedChildIndex];this.focusedChildIndex=n.index,s?.setTabIndex(-1),n.setTabIndex(0)},this.onChildKeyDown=(i,n)=>{const s=this.orientation,a=ff(this.elem);let o,r;s==="both"?(o=mb("horizontal",a),r=mb("vertical")):(o=mb(s,a),r=void 0);let l=-1;if(Nx(i.sourceEvent)){const c=i.sourceEvent.key;c===o.nextKey||c===r?.nextKey?l=n.index+1:(c===o.prevKey||c===r?.prevKey)&&(l=n.index-1)}this.children[l]?.focus()},ye(this.elem,"role",e),this.orientation=t}get orientation(){return Jd(this.elem,"aria-orientation")??"both"}set orientation(t){ye(this.elem,"aria-orientation",t==="both"?void 0:t)}focus(){this.children[this.focusedChildIndex]?.focus()}clear(){this.focusedChildIndex=0;for(const t of this.children)this.removeChildListeners(t),t.parent=void 0;this.elem.textContent="",this.children.length=0}addChildListeners(t){t.addListener("focus",this.onChildFocus),t.addListener("keydown",this.onChildKeyDown)}removeChildListeners(t){t.removeListener("focus",this.onChildFocus),t.removeListener("keydown",this.onChildKeyDown)}onChildAdded(t){this.addChildListeners(t),t.setTabIndex(this.children.length===1?0:-1)}onChildRemoved(t){this.removeChildListeners(t);const{focusedChildIndex:e,children:i}=this,n=e===t.index;for(let s=0;sthis.getElement().step=e.attributeValue,n=()=>this.getElement().step=this._step.attributeValue;this._keyboardStep={step:e,onKeyDown:i,onKeyUp:n,onBlur:n},this.addListener("keydown",this._keyboardStep.onKeyDown),this.addListener("keyup",this._keyboardStep.onKeyUp),this.addListener("blur",this._keyboardStep.onBlur)}}get orientation(){return Jd(this.elem,"aria-orientation")??"both"}set orientation(e){ye(this.elem,"aria-orientation",e==="both"?void 0:e),Qy.registerDefaultPreventers(this,e)}destructor(){}clampValueRatio(e,i){const n=this.getValueRatio(),s=Nt(e,n,i);return s!==n&&this.setValueRatio(s),s}setValueRatio(e,i){const{divider:n}=this.step,s=Math.round(e*1e4)/n,{ariaValueText:a=lj(s/n)}=i??{},o=this.getElement();o.value=`${s}`,o.ariaValueText=a,o.ariaValueNow=`${s}`}getValueRatio(){return this.getElement().valueAsNumber/this.step.divider}static registerDefaultPreventers(e,i){i==="both"?e.removeListener("keydown",Qy.onKeyDown):e.addListener("keydown",Qy.onKeyDown)}static onKeyDown(e,i){let n=[];const{orientation:s}=i;s==="horizontal"?n=["ArrowUp","ArrowDown"]:s==="vertical"&&(n=["ArrowLeft","ArrowRight"]),n.includes(e.sourceEvent.code)&&e.sourceEvent.preventDefault()}};VT.STEP_ONE={attributeValue:"1",divider:1};VT.STEP_HUNDRETH={attributeValue:"0.01",divider:100};var _T=VT,sq=class extends _D{constructor(){super(),ye(this.elem,"role","switch"),this.setChecked(!1)}setChecked(t){ye(this.elem,"aria-checked",t)}},FD=class extends BT{constructor(t="horizontal"){super(t,"toolbar")}destructor(){}};function Og(t,e){return e.params?.type===t}function aq(t){if(t==="button")return new _D;if(t==="slider")return new _T;if(t==="toolbar")return new FD;if(t==="group")return new IG;if(t==="list")return new nq;if(t==="region")return new Nf($t("div"));if(t==="text")return new eq;if(t==="listswitch")return new sq;throw new Error("AG Charts - error allocating meta")}function tB(t){const e={params:t,result:void 0};return e.result=aq(e.params.type),e}var oq=class{constructor(t,e,i){this.eventsHub=t,this.localeManager=e,this.domManager=i,this.cleanup=new qe}destroy(){this.cleanup.flush()}addLocalisation(t){t(),this.cleanup.register(this.eventsHub.on("locale:change",t))}createProxyContainer(t){const e=tB(t),{params:i,result:n}=e,s=n.getElement();this.domManager.addChild("canvas-proxy",i.domManagerId,s),s.classList.add(...i.classList,"ag-charts-proxy-container"),s.role=i.role??i.type,Og("toolbar",e)&&(e.result.orientation=e.params.orientation);const{ariaLabel:a}=i;return a&&this.addLocalisation(()=>{s.ariaLabel=this.localeManager.t(a.id,a.params)}),n}createProxyElement(t){const e=tB(t);if(Og("button",e)){const{params:i,result:n}=e,s=n.getElement();if(this.initInteract(i,n),typeof i.textContent=="string")s.textContent=i.textContent;else{const{textContent:a}=i;this.addLocalisation(()=>{s.textContent=this.localeManager.t(a.id,a.params)})}this.setParent(e.params,e.result)}if(Og("slider",e)){const{params:i,result:n}=e,s=n.getElement();this.initInteract(i,n),s.type="range",s.role=i.role??"presentation",s.style.margin="0px",this.addLocalisation(()=>{s.ariaLabel=this.localeManager.t(i.ariaLabel.id,i.ariaLabel.params)}),this.setParent(e.params,e.result)}if(Og("text",e)){const{params:i,result:n}=e;this.initElement(i,n),this.setParent(e.params,e.result)}if(Og("listswitch",e)){const{params:i,result:n}=e;this.initInteract(i,n),n.setTextContent(i.textContent),n.setChecked(i.ariaChecked),n.setAriaDescribedBy(i.ariaDescribedBy),this.setParent(e.params,e.result)}if(Og("region",e)){const{params:i,result:n}=e,s=n.getElement();this.initInteract(i,n),s.role=i.role??"region",this.setParent(e.params,e.result)}return e.result}initElement(t,e){const i=e.getElement();return Cr(i,"cursor",t.cursor),i.classList.toggle("ag-charts-proxy-elem",!0),t.classList?.length&&i.classList.add(...t.classList),i}initInteract(t,e){const{tabIndex:i,domIndex:n}=t,s=this.initElement(t,e);i!==void 0&&(s.tabIndex=i),n!==void 0&&(e.domIndex=n)}setParent(t,e){if("parent"in t)t.parent?.addChild(e);else{const i={where:t.where,query:".ag-charts-series-area"};this.domManager.addChild("canvas-proxy",t.domManagerId,e.getElement(),i),e.destroyListener=()=>{this.domManager.removeChild("canvas-proxy",t.domManagerId)}}}},rq=/\$\{(\w+)}(?:\[(\w+)])?/gi,CC={number:new Intl.NumberFormat("en-US"),percent:new Intl.NumberFormat("en-US",{style:"percent",minimumFractionDigits:2,maximumFractionDigits:2}),percent0to2dp:new Intl.NumberFormat("en-US",{style:"percent",minimumFractionDigits:0,maximumFractionDigits:2}),date:new Intl.DateTimeFormat("en-US",{dateStyle:"full"}),time:new Intl.DateTimeFormat("en-US",{timeStyle:"full"}),datetime:new Intl.DateTimeFormat("en-US",{dateStyle:"full",timeStyle:"full"})},lq=({defaultValue:t,variables:e})=>t?.replaceAll(rq,(i,n,s)=>{const a=e[n],o=s==null?null:CC[s];return s!=null&&o==null&&pt.warnOnce(`Format style [${s}] is not supported`),o!=null?o.format(a):typeof a=="number"?CC.number.format(a):a instanceof Date?CC.datetime.format(a):String(a)}),cq=class{constructor(t){this.eventsHub=t,this.localeText=void 0,this.getLocaleText=void 0}setLocaleText(t){this.localeText!==t&&(this.localeText=t,this.eventsHub.emit("locale:change",null))}setLocaleTextFormatter(t){this.getLocaleText=t,this.getLocaleText!==t&&(this.getLocaleText=t,this.eventsHub.emit("locale:change",null))}t(t,e={}){const{localeText:i=U9,getLocaleText:n}=this,s=i[t];return String(n?.({key:t,defaultValue:s,variables:e})??lq({defaultValue:s,variables:e})??t)}},hq=class{constructor(t){this.width=600,this.height=300,this.direction="ltr";const{width:e,height:i,willReadFrequently:n=!1}=t;this.element=t.canvasElement,this.pixelRatio=t.pixelRatio,this.element.style.display="block",this.element.style.width=(e??this.width)+"px",this.element.style.height=(i??this.height)+"px",this.element.width=Math.round((e??this.width)*this.pixelRatio),this.element.height=Math.round((i??this.height)*this.pixelRatio),this.context=this.element.getContext("2d",{willReadFrequently:n}),this.context.direction=this.direction,this.resize(e??0,i??0,this.pixelRatio),lG(this.context)}drawImage(t,e=0,i=0){return t.drawImage(this.context.canvas,e,i)}toDataURL(t){return this.element.toDataURL(t)}resize(t,e,i){if(!(t>0&&e>0))return;const{element:n,context:s}=this;n.width=Math.round(t*i),n.height=Math.round(e*i),s.setTransform(i,0,0,i,0,0),n.style.width=t+"px",n.style.height=e+"px",this.width=t,this.height=e,this.pixelRatio=i}setDirection(t){this.direction=t?"rtl":"ltr",this.element.dir=this.direction,this.context.direction=this.direction}clear(){rG(this)}destroy(){this.element.remove(),this.element.width=0,this.element.height=0,this.context.clearRect(0,0,0,0),Object.freeze(this)}reset(){this.context.reset(),this.context.verifyDepthZero?.(),this.context.direction=this.direction}},uq=class extends cr{constructor(){super(...arguments),this.cache=new Map,this.imageLoadingCount=0}loadImage(t,e){const i=this.cache.get(t);if(i?.image)return i.image;if(i!=null&&e){i.nodes.add(e);return}if(!e)return;const n={image:void 0,nodes:new Set([e])},s=UH(),a=new s;return this.imageLoadingCount++,a.onload=()=>{n.image=a;for(const o of n.nodes)o.markDirty();n.nodes.clear(),this.imageLoadingCount--,this.emit("image-loaded",{uri:t})},a.onerror=()=>{this.imageLoadingCount--,n.nodes.clear(),this.emit("image-error",{uri:t})},a.src=t,this.cache.set(t,n),n.image}waitingToLoad(){return this.imageLoadingCount>0}destroy(){for(const t of this.cache.values())t.nodes.clear();this.cache.clear()}},dq=class{constructor(t){this.canvas=t,this.debug=Gt.create(!0,"scene"),this.layersMap=new Map,this.nextLayerId=0}get size(){return this.layersMap.size}resize(t,e,i){this.canvas.resize(t,e,i);for(const{canvas:n}of this.layersMap.values())n.resize(t,e,i)}addLayer(t){const{width:e,height:i,pixelRatio:n}=this.canvas,{name:s}=t,a=new NT({width:e,height:i,pixelRatio:n});return this.layersMap.set(a,{id:this.nextLayerId++,name:s,canvas:a}),this.debug("Scene.addLayer() - layers",this.layersMap),a}removeLayer(t){this.layersMap.has(t)&&(this.layersMap.delete(t),t.destroy(),this.debug("Scene.removeLayer() - layers",this.layersMap))}clear(){for(const t of this.layersMap.values())t.canvas.destroy();this.layersMap.clear()}},HD=class extends cr{constructor(t){super(),this.debug=Gt.create(!0,"scene"),this.id=Nn(this),this.imageLoader=new uq,this.root=null,this.pendingSize=null,this.isDirty=!1,this.direction="ltr",this.cleanup=new qe,this.updateDebugFlags(),this.canvas=new hq(t),this.layersManager=new dq(this.canvas),this.cleanup.register(this.imageLoader.on("image-loaded",()=>{this.emit("scene-changed",{})}),this.imageLoader.on("image-error",({uri:e})=>{pt.warnOnce(`Unable to load image ${e}`)}))}waitingForUpdate(){return this.imageLoader?.waitingToLoad()??!1}get width(){return this.pendingSize?.[0]??this.canvas.width}get height(){return this.pendingSize?.[1]??this.canvas.height}get pixelRatio(){return this.pendingSize?.[2]??this.canvas.pixelRatio}get isRtl(){return this.direction==="rtl"}setContainer(t){const{element:e}=this.canvas;return e.remove(),t.appendChild(e),this}setRoot(t){return this.root===t?this:(this.isDirty=!0,this.root?.setScene(),this.root=t,t&&(t.visible=!0,t.setScene(this)),this)}updateDebugFlags(){Gt.inDevelopmentMode(()=>Oc._debugEnabled=!0)}clearCanvas(){this.canvas.clear()}attachNode(t){return this.appendChild(t),()=>t.remove()}appendChild(t){return this.root?.appendChild(t),this}removeChild(t){return t.remove(),this}download(t,e){Ij(this.canvas.toDataURL(e),t?.trim()??"image")}getDataURL(t){return this.canvas.toDataURL(t)}resize(t,e,i){return t=Math.round(t),e=Math.round(e),i??(i=this.pixelRatio),t>0&&e>0&&(t!==this.width||e!==this.height||i!==this.pixelRatio)?(this.pendingSize=[t,e,i],this.isDirty=!0,!0):!1}setDirection(t){this.direction=t?"rtl":"ltr",this.canvas.setDirection(t)}updateBaseFont(){const t=this.root?.resolveFont();t!=null&&t!==this._baseFont&&(this._baseFont=t,this.canvas.context.font=t)}applyPendingResize(){return this.pendingSize?(this.layersManager.resize(...this.pendingSize),this.pendingSize=null,this._baseFont!=null&&(this.canvas.context.font=this._baseFont),!0):!1}render(t){const{debugSplitTimes:e={start:performance.now()},extraDebugStats:i,seriesRect:n,debugColors:s}=t??{},{canvas:a,canvas:{context:o}={},root:r,width:l,height:c,pixelRatio:u}=this;if(!o)return;const d=Gt.check("scene:stats","scene:stats:verbose");d&&this.ensureDebugStatsRegistration();const g=performance.now(),f=this.applyPendingResize();if(r&&!r.visible){this.isDirty=!1;return}let y;if(r instanceof ee&&(y=r.dirty),r!=null&&y===!1&&!this.isDirty){this.debug.check()&&this.debug("Scene.render() - no-op",{tree:_S(r,"console")}),d&&Kz(this.layersManager,e,o,void 0,i,n,s);return}const x={ctx:o,direction:this.direction,width:l,height:c,devicePixelRatio:u,debugNodes:{}};Gt.check("scene:stats:verbose")&&(x.stats={layersRendered:0,layersSkipped:0,nodesRendered:0,nodesSkipped:0,opsPerformed:0,opsSkipped:0}),vZ(x);let S=!1;if((y!==!1||f)&&(S=!0,a.clear()),r&&Gt.check("scene:dirtyTree")){const{dirtyTree:D,paths:A}=bG(r);Gt.create("scene:dirtyTree")("Scene.render() - dirtyTree",{dirtyTree:D,paths:A})}if(r&&S){if(r.visible&&r.preRender(x),this.debug.check()){const D=_S(r,"console");this.debug("Scene.render() - before",{canvasCleared:S,tree:D})}if(r.visible)try{o.save(),r.render(x),o.restore()}catch(D){throw this.canvas.reset(),D}}e["✍️"]=performance.now()-g,o.verifyDepthZero?.(),this.isDirty=!1,d&&Kz(this.layersManager,e,o,x.stats,i,n,s),SZ(o,x.debugNodes),r&&this.debug.check()&&this.debug("Scene.render() - after",{tree:_S(r,"console"),canvasCleared:S})}ensureDebugStatsRegistration(){if(this.releaseDebugStats)return;const t=yZ(),e=()=>{t(),this.releaseDebugStats=void 0};this.releaseDebugStats=e,this.cleanup.register(e)}toSVG(){const{root:t,width:e,height:i}=this;if(t!=null)return Oc.toSVG(t,e,i)}strip(){const{context:t,pixelRatio:e}=this.canvas;t.setTransform(e,0,0,e,0,0),this.layersManager.clear(),this.setRoot(null),this.isDirty=!1,this.clear()}destroy(){this.strip(),this.canvas.destroy(),this.imageLoader.destroy(),this.cleanup.flush(),xG(),Object.assign(this,{canvas:void 0})}};HD.className="Scene";var pq=class{constructor(t,e,i){this.eventsHub=t,this.annotationRoot=e,this.fireChartEvent=i,this.mementoOriginatorKey="annotations",this.annotations=[]}createMemento(){return this.annotations}guardMemento(t){return t==null||qt(t)}restoreMemento(t,e,i){this.annotations=this.cleanData(i??[]).map(n=>{const s=this.getAnnotationTypeStyles(n.type);return Et(n,s)}),this.eventsHub.emit("annotations:restore",{annotations:this.annotations})}updateData(t){this.annotations=this.cleanData(t??[])}fireChangedEvent(){this.fireChartEvent({type:"annotations",annotations:le([...this.annotations])})}attachNode(t){return this.annotationRoot.append(t),()=>(t.remove(),this)}setAnnotationStyles(t){this.styles=t}getAnnotationTypeStyles(t){return this.styles?.[t]}cleanData(t){for(const e of t)"textAlign"in e&&delete e.textAlign;return t}},gq=class{constructor(t,e){this.eventsHub=t,this.sceneRoot=e,this.axes=new Map,this.axisGridGroup=new ee({name:"Axes-Grids",zIndex:pe.AXIS_GRID}),this.axisGroup=new ee({name:"Axes",zIndex:pe.AXIS}),this.axisLabelGroup=new ee({name:"Axes-Labels",zIndex:pe.SERIES_LABEL}),this.axisCrosslineRangeGroup=new ee({name:"Axes-Crosslines-Range",zIndex:pe.SERIES_CROSSLINE_RANGE}),this.axisCrosslineLineGroup=new ee({name:"Axes-Crosslines-Line",zIndex:pe.SERIES_CROSSLINE_LINE}),this.axisCrosslineLabelGroup=new ee({name:"Axes-Crosslines-Label",zIndex:pe.SERIES_LABEL}),this.sceneRoot.appendChild(this.axisGroup),this.sceneRoot.appendChild(this.axisGridGroup),this.sceneRoot.appendChild(this.axisLabelGroup),this.sceneRoot.appendChild(this.axisCrosslineRangeGroup),this.sceneRoot.appendChild(this.axisCrosslineLineGroup),this.sceneRoot.appendChild(this.axisCrosslineLabelGroup)}updateAxes(t,e){const i={axisNode:this.axisGroup,gridNode:this.axisGridGroup,labelNode:this.axisLabelGroup,crossLineRangeNode:this.axisCrosslineRangeGroup,crossLineLineNode:this.axisCrosslineLineGroup,crossLineLabelNode:this.axisCrosslineLabelGroup};for(const n of t)e.includes(n)||(n.detachAxis(i),n.destroy());for(const n of e)t?.includes(n)||n.attachAxis(i);this.axes.clear();for(const n of e){const s=n.createAxisContext();this.axes.has(s.direction)?this.axes.get(s.direction)?.push(s):this.axes.set(s.direction,[s])}this.eventsHub.emit("axis:change",null)}getAxisIdContext(t){for(const[,e]of this.axes)for(const i of e)if(i.axisId===t)return i}getAxisContext(t){return this.axes.get(t)??[]}destroy(){this.axes.clear(),this.axisGroup.remove(),this.axisGridGroup.remove()}},FT=class{constructor(t,e,i){this.eventsHub=t,this.caller=e,this.animationManager=i,this.dispatchOnlyLatest=!0,this.dispatchThrottle=0,this.requestThrottle=300,this.isLoadingInitialData=!1,this.isLoadingData=!1,this.freshRequests=[],this.requestCounter=0,this.pendingData=void 0,this.debug=Gt.create(!0,"data-model","data-source"),this.throttledFetch=this.createThrottledFetch(this.requestThrottle),this.throttledDispatch=this.createThrottledDispatch(this.dispatchThrottle)}updateCallback(t){typeof t=="function"&&(this.debug("DataService - updated data source callback"),this.dataSourceCallback=t,this.isLoadingInitialData=!0,this.animationManager.skip(),this.eventsHub.emit("data:source-change",null))}clearCallback(){this.dataSourceCallback=void 0}load(t){const{pendingData:e}=this;if(e!=null&&(e.params.windowStart==null&&e.params.windowEnd==null||e.params.windowStart?.valueOf()===t.windowStart?.valueOf()&&e.params.windowEnd?.valueOf()===t.windowEnd?.valueOf())){const i=this.requestCounter++;this.isLoadingInitialData=!1,this.dispatch(i,e.data);return}this.isLoadingData=!0,this.throttledFetch(t)}isLazy(){return this.dataSourceCallback!=null}isLoading(){return this.isLazy()&&(this.isLoadingInitialData||this.isLoadingData)}async getData(){const{latestRequest:t}=this;if(!t)return;const{params:e,fetchRequest:i}=t,n=await i;return{params:e,data:n}}restoreData(t){this.pendingData=t}createThrottledFetch(t){return Qw(e=>this.fetch(e).catch(i=>pt.error("callback failed",i)),t,{leading:!1,trailing:!0})}createThrottledDispatch(t){return Qw((e,i)=>this.dispatch(e,i),t,{leading:!0,trailing:!0})}dispatch(t,e){this.debug(`DataService - dispatching 'data-load' | ${t}`),this.eventsHub.emit("data:load",{data:e})}async fetch(t){"context"in this.caller&&(t.context=this.caller.context);const e=Promise.resolve().then(async()=>{if(!this.dataSourceCallback)throw new Error("DataService - [dataSource.getData] callback not initialised");const i=performance.now(),n=this.requestCounter++;this.debug(`DataService - requesting | ${n}`);let s;try{s=await this.dataSourceCallback(t),this.debug(`DataService - response | ${performance.now()-i}ms | ${n}`)}catch(o){this.debug(`DataService - request failed | ${n}`),pt.errorOnce(`DataService - request failed | [${o}]`)}this.isLoadingInitialData=!1;const a=this.freshRequests.indexOf(e);return a===-1||this.dispatchOnlyLatest&&a!==this.freshRequests.length-1?(this.debug(`DataService - discarding stale request | ${n}`),s):(this.freshRequests=this.freshRequests.slice(a+1),this.freshRequests.length===0&&(this.isLoadingData=!1),Array.isArray(s)?this.throttledDispatch(n,s):this.eventsHub.emit("data:error",null),s)});this.latestRequest={params:t,fetchRequest:e},this.freshRequests.push(e),await e}};T([Pe({newValue(t){this.throttledDispatch=this.createThrottledDispatch(t)}})],FT.prototype,"dispatchThrottle",2);T([Pe({newValue(t){this.throttledFetch=this.createThrottledFetch(t)}})],FT.prototype,"requestThrottle",2);var fq=class{constructor(t,e){this.domManager=t,this.eventsHub=e,this.observers=[]}updateFonts(t){if(!(!t||t.size===0)){this.loadFonts(t);for(const e of t)this.observeFontStatus(e)}}destroy(){for(const t of this.observers)t.disconnect();this.observers=[]}loadFonts(t){const e=Array.from(t).map(a=>encodeURIComponent(a)),i=":wght@100;200;300;400;500;600;700;800;900",n=`${i}&family=`,s=`@import url('https://fonts.googleapis.com/css2?family=${e.join(n)}${i}&display=swap'); +`;this.domManager.addStyles(`google-font-${e.join("-")}`,s)}observeFontStatus(t){const e=WH();if(e===void 0)return;const n=this.domManager.getDocument().createElement("div",{position:"absolute",top:"0",margin:"0",padding:"0",overflow:"hidden",visibility:"hidden",width:"auto",maxWidth:"none",fontSynthesis:"none",fontFamily:t,fontSize:"16px",whiteSpace:"nowrap"});n.textContent="UVWxyz",this.domManager.addChild("canvas-container",`font-check-${encodeURIComponent(t)}`,n);const s=new e(a=>{const o=a?.at(0)?.contentBoxSize.at(0)?.inlineSize;o!=null&&o>0&&(Ve.clear(),this.eventsHub.emit("font:load",null))});s.observe(n),this.observers.push(s)}},kG=class{constructor(){this.registeredListeners=new Map}addListener(t,e){const i={symbol:Symbol(t),handler:e};return this.registeredListeners.has(t)?this.registeredListeners.get(t).push(i):this.registeredListeners.set(t,[i]),()=>this.removeListener(i.symbol)}removeListener(t){for(const[e,i]of this.registeredListeners.entries()){const n=i.findIndex(s=>s.symbol===t);if(n>=0){i.splice(n,1),i.length===0&&this.registeredListeners.delete(e);break}}}dispatch(t,...e){for(const i of this.getListenersByType(t))try{i.handler(...e)}catch(n){pt.errorOnce(n)}}getListenersByType(t){return this.registeredListeners.get(t)??[]}destroy(){this.registeredListeners.clear()}},il={millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e",month:"%b",year:"%Y"},mq={millisecond:"%Y %b %e %H:%M:%S.%L",second:"%Y %b %e %H:%M:%S",minute:"%Y %b %e %H:%M",hour:"%Y %b %e %H:%M",day:"%Y %b %e",month:"%Y %b",year:"%Y"},Rs={year:0,month:1,day:2,hour:3,minute:4,second:5,millisecond:6},yq=/%[-_0]?L/,bq=/%[-_0]?S/,xq=/%[-_0]?M/,vq=/%[-_0]?[HI]/,Sq=/^%[-_0]?[de]$/,Mq=/^%[-_0]?[Bbm]$/,Dq=/^%[-_0]?[Yy]$/;function Aq(t,e,i){if(typeof t=="string")return t;t??(t=il);const{millisecond:n=il.millisecond,second:s=il.second,minute:a=il.minute,hour:o=il.hour,day:r=il.day,month:l=il.month,year:c=il.year}=t,u=Rs[e],d=mq[e],g=i?Rs[i]:-1;if(g=Rs.year&&!Dq.test(c)||g=Rs.month&&!Mq.test(l)||g=Rs.day&&!Sq.test(r))return d;let f;switch(e){case"year":return c;case"month":return g=Rs.hour&&!vq.test(f)||u>=Rs.minute&&!xq.test(f)||u>=Rs.second&&!bq.test(f)||u>=Rs.millisecond&&!yq.test(f))return d;let y;return g{const o=GS.mergeSpecifiers(e,i)??il;return GS.getFormatter("date",o,n,s,{truncateDate:a})}),this.formatter=void 0}static mergeSpecifiers(...e){let i;for(const n of e)Ie(n)&&Ie(i)?i={...i,...n}:i=n;return i}static getFormatter(e,i,n,s="long",{truncateDate:a}={}){if(Ie(i)){if(e!=="date"){pt.warn("Date formatter configuration is not supported for non-date types.");return}n??(n="millisecond");const o=s==="component"?i?.[n]??il[n]:Aq(i,n,a);return kf(o)}switch(e){case"number":{const o=iD(i);return o==null?void 0:C1(o)}case"date":return kf(i);case"category":return o=>i.replace("%s",String(o))}}setFormatter(e){this.formatter!==e&&(this.formatter=e,this.formats.clear(),this.dateFormatter.reset(),this.dispatch("format-changed"))}format(e,i,{specifier:n,truncateDate:s,allowNull:a}={}){if(i.value==null&&!a)return;const{formatter:o}=this;if(o==null)return;if(typeof o=="function"){const u=e(o,i);return u==null?void 0:String(u)}const r=o[i.property];if(r==null)return;if(typeof r=="function"){const u=e(r,i);return u==null?u:bi(u)}else if(i.type==="date"){const{unit:u,style:d}=i;return this.dateFormatter(r,n,u,d,s)?.(i.value)}const l=n??r;if(typeof l!="string")return;let c=this.formats.get(l);return c==null&&(c=GS.getFormatter(i.type,l),this.formats.set(l,c)),c?.(i.value,i.type==="number"?i.fractionDigits:void 0)}defaultFormat(e,{specifier:i,truncateDate:n}={}){const{formatter:s}=this,a=typeof s=="function"?void 0:s?.[e.property];switch(e.type){case"date":{const{unit:o,style:r}=e,l=a!=null&&typeof a!="function"?a:void 0;return this.dateFormatter(l,i,o,r,n)?.(e.value)??String(e.value)}case"number":return Or(e.value,e.fractionDigits);case"category":return e.value==null?"":Array.isArray(e.value)?e.value.join(" - "):typeof e.value=="string"?e.value:typeof e.value=="number"?Or(e.value):String(e.value)}}},CG={activeItem:{type:ht(fx()("series-node","legend")),seriesId:K,itemId:ht(Xt(K,X))},frozen:J},Fx={mode:Mt(dt("integrated","standalone")),withinStudio:Mt(J),container:A1,context:()=>!0,theme:jt,series:wl,annotations:jt,navigator:jt,scrollbar:jt,initialState:{active:CG,chartType:K,annotations:jt,legend:Xi({visible:J,seriesId:K,itemId:K,legendItemName:K},"legend state array"),zoom:jt}},Iq={...Zt,...Fx,axes:Nu,data:wl,dataIdKey:K},kq={...Zt,...Fx,axes:Nu,data:wl,dataIdKey:K},Cq={...Zt,...Fx,data:wl,dataIdKey:K,topology:dj},wq={...Zt,...Fx,data:wl,dataIdKey:K},wG=(t=>(t[t.Default=64]="Default",t[t.ZoomDrag=32]="ZoomDrag",t[t.Annotations=16]="Annotations",t[t.ContextMenu=8]="ContextMenu",t[t.Animation=4]="Animation",t[t.AnnotationsSelected=2]="AnnotationsSelected",t[t.Frozen=1]="Frozen",t[t.Hoverable=82]="Hoverable",t[t.Clickable=83]="Clickable",t[t.Focusable=69]="Focusable",t[t.Keyable=87]="Keyable",t[t.ContextMenuable=72]="ContextMenuable",t[t.AnnotationsMoveable=18]="AnnotationsMoveable",t[t.AnnotationsDraggable=114]="AnnotationsDraggable",t[t.ZoomDraggable=101]="ZoomDraggable",t[t.ZoomClickable=69]="ZoomClickable",t[t.ZoomWheelable=119]="ZoomWheelable",t[t.All=126]="All",t))(wG||{}),NG=class{constructor(){this.stateQueue=68}pushState(t){this.stateQueue|=t}popState(t){this.stateQueue&=~t}isState(t){return!!(this.stateQueue&-this.stateQueue&t)}},Nq=class{constructor(t,e,i,n,s){this.chartService=t,this.eventsHub=e,this.interactionManager=n,this.fireEvent=s,this.mementoOriginatorKey="active",this.updateable=!0,this.didLayout=!1,this.pendingMemento=void 0;const a=i.addListener("pre-scene-render",()=>{this.didLayout=!0;const{pendingMemento:o}=this;o&&(this.restoreMemento(o.version,o.mementoVersion,o.memento),this.pendingMemento=void 0),a()})}isFrozen(){return this.interactionManager.isState(1)}clear(){return this.update(void 0,void 0)}update(t,e){return this.performUpdate("user-interaction",t,e,!1)}performUpdate(t,e,i,n){if(!this.updateable)return!1;const s=this.currentItem;let a=!1;if(n||!ks(s,e)){const{frozen:o,activeItem:r}=this.createMementoWithItem(e),{datum:l}=i??{};this.fireEvent({type:"activeChange",source:t,frozen:o,activeItem:r,datum:l,dataIdKey:i?.series.data?.dataIdKey,preventDefault:()=>{a=!0}})}return a||(this.currentItem=e,this.eventsHub.emit("active:update",e)),a}createMemento(){return this.createMementoWithItem(this.currentItem)}createMementoWithItem(t){const e=this.isFrozen();switch(t?.type){case"series-node":case"legend":{const{type:i,seriesId:n,itemId:s}=t;return{frozen:e,activeItem:{type:i,seriesId:n,itemId:s}}}default:return t?.type,{frozen:e}}}guardMemento(t,e){if(t==null)return!0;const i=ts(t,Fx.initialState.active);return e.push(...i.invalid.map(n=>n.toString())),i.invalid.length===0}restoreMemento(t,e,i){if(!this.didLayout){this.pendingMemento={version:t,mementoVersion:e,memento:i};return}this.updateable=!1;const[n,s]=this.performRestoration(i?.activeItem);this.updateable=!0;const a=this.isFrozen(),o=i?.frozen,r=o===void 0?!1:a!==o;o===!0?this.interactionManager.pushState(1):o===!1&&this.interactionManager.popState(1),this.performUpdate("state-change",n,s,r)}performRestoration(t){let e=!1;const i=()=>e=!0;let n;const s=r=>n=r,a=this.pendingMemento!==void 0,o=this.chartService.id;return this.eventsHub.emit("active:load-memento",{initialState:a,chartId:o,activeItem:t,reject:i,setDatum:s}),e?[void 0,void 0]:[t,n]}};function Tq(t,e){return i=>Number(t)*(1-i)+Number(e)*i}function TG(t,e){if(typeof t=="string")try{t=se.fromString(t)}catch{t=se.fromArray([0,0,0])}if(typeof e=="string")try{e=se.fromString(e)}catch{e=se.fromArray([0,0,0])}return i=>se.mix(t,e,i).toRgbaString()}var mN=.2,Ey=["initial","remove","update","add","trailing","end","none"],Zb={initial:{animationDuration:1,animationDelay:0},add:{animationDuration:.25,animationDelay:.75},remove:{animationDuration:.25,animationDelay:0},update:{animationDuration:.5,animationDelay:.25},trailing:{animationDuration:mN,animationDelay:1,skipIfNoEarlierAnimations:!0},end:{animationDelay:1+mN,animationDuration:0,skipIfNoEarlierAnimations:!0},none:{animationDuration:0,animationDelay:0}};function Lq(t){return t.every(e=>e instanceof Oc)}function HT(t){return Lq(t)?{nodes:t,selections:[]}:{nodes:[],selections:t}}function yN(t,e){return t===e?!0:Array.isArray(t)&&Array.isArray(e)?t.length===e.length&&t.every((i,n)=>yN(i,e[n])):MM(t)&&MM(e)?t.equals(e):Ie(t)&&Ie(e)?E1(t,e,yN):!1}var Oq=class{constructor(e){this.isComplete=!1,this.elapsed=0,this.iteration=0,this.isPlaying=!1,this.isReverse=!1,this.id=e.id,this.groupId=e.groupId,this.autoplay=e.autoplay??!0,this.ease=e.ease??iG,this.phase=e.phase;const i=e.duration??Zb[this.phase].animationDuration;this.duration=i*e.defaultDuration,this.delay=(e.delay??0)*e.defaultDuration,this.onComplete=e.onComplete,this.onPlay=e.onPlay,this.onStop=e.onStop,this.onUpdate=e.onUpdate,this.interpolate=this.createInterpolator(e.from,e.to),this.from=e.from,e.skip===!0&&(this.onUpdate?.(e.to,!1,this),this.onStop?.(this),this.onComplete?.(this),this.isComplete=!0),e.collapsable!==!1&&(this.duration=this.checkCollapse(e,this.duration))}checkCollapse(e,i){return yN(e.from,e.to)?0:i}play(e=!1){this.isPlaying||this.isComplete||(this.isPlaying=!0,this.onPlay?.(this),this.autoplay&&(this.autoplay=!1,e&&this.onUpdate?.(this.from,!0,this)))}stop(){this.isPlaying=!1,this.isComplete||(this.isComplete=!0,this.onStop?.(this))}update(e){if(this.isComplete)return e;!this.isPlaying&&this.autoplay&&this.play(!0);const i=this.elapsed;if(this.elapsed+=e,this.delay>this.elapsed)return 0;const n=this.interpolate(this.isReverse?1-this.delta:this.delta);this.onUpdate?.(n,!1,this);const s=this.delay+this.duration;return this.elapsed>=s?(this.stop(),this.isComplete=!0,this.onComplete?.(this),e-(s-i)):0}get delta(){return this.ease(Nt(0,(this.elapsed-this.delay)/this.duration,1))}createInterpolator(e,i){if(typeof i!="object"||MM(i))return this.interpolateValue(e,i);if(Array.isArray(i)){const s=[];for(let a=0;a{const o=[];for(const r of s)o.push(r(a));return o}}const n=[];for(const s of Object.keys(i)){const a=this.createInterpolator(e[s],i[s]);a!=null&&n.push([s,a])}return s=>{const a={};for(const[o,r]of n)a[o]=r(s);return a}}interpolateValue(e,i){if(!(e==null||i==null)){if(MM(e))return n=>e[LD](i,n);try{switch(typeof e){case"number":return Tq(e,i);case"string":return TG(e,i);case"boolean":if(e===i)return()=>e;break;case"object":return()=>e;default:throw new Error(`Unable to interpolate values: ${e}, ${i}`)}}catch{}throw new Error(`Unable to interpolate values: ${e}, ${i}`)}}};function Eq(t,e,i,n){return e=t.endIndex)return!1;if(e<=t.startIndex&&n>=t.endIndex)t.startIndex=e,t.endIndex=e;else if(e<=t.startIndex){const s=n-t.startIndex,a=t.endIndex-t.startIndex;t.startIndex=e,t.endIndex=t.startIndex+Math.max(0,a-s)}else n>=t.endIndex?t.endIndex=Math.max(t.startIndex,e):t.endIndex=Math.max(t.startIndex,t.endIndex-i);return!0}function LG(t,e){const i=Math.ceil(t/1e3);return Math.max(e,i)}function OG(t,e){return Math.max(1,Math.ceil(t/e))}function Pq(t){return t.filter(e=>e.endIndex>e.startIndex)}function zq(t,e,i){if(!e.enableBanding||t0&&t.handleInsertion(i.index,i.insertCount),i.deleteCount>0&&t.handleRemoval(i.index,i.deleteCount)}function Vq(t,e){for(const i of e)t.handleInsertion(i,0)}function _q(t,e){Bq(t,e.spliceOps),e.updatedIndices.size>0&&Vq(t,e.updatedIndices)}var Fq=1e3,Hq=10,EG=class{constructor(t={}){this.bands=[],this.dataSize=0,this.config={minDataSizeForBanding:t.minDataSizeForBanding??Fq,targetBandCount:t.targetBandCount??Hq,maxBandSize:t.maxBandSize??1/0,enableBanding:t.enableBanding??!0}}applyIndexMap(t){_q(this,t)}initializeBands(t){this.dataSize=Math.max(0,t),this.bands=zq(this.dataSize,this.config,(e,i)=>this.createBand(e,i))}getBandCount(){return this.bands.length}handleInsertion(t,e){if(this.dataSize+=e,this.bands.length===0){this.initializeBands(this.dataSize);return}const i=LG(this.dataSize,this.config.targetBandCount),n=OG(this.dataSize,i),s=Math.ceil(n*1.1);for(let a=0;a0){o.endIndex-o.startIndex>=n?this.bands.push(this.createBand(t,t+e)):(o.endIndex+=e,o.isDirty=!0);break}Eq(o,t,e,r)&&(o.isDirty=!0,e>0&&ts&&this.splitBand(a,n))}}handleRemoval(t,e){if(e<=0||this.bands.length===0)return;const i=Math.min(e,Math.max(0,this.dataSize-t));if(!(i<=0)){this.dataSize=Math.max(0,this.dataSize-i);for(const n of this.bands)Rq(n,t,i)&&(n.isDirty=!0);this.bands=Pq(this.bands)}}splitBand(t,e){const i=this.bands[t],n=i.endIndex-i.startIndex,s=Math.min(e,Math.floor(n/2)),a=i.startIndex+s,o=this.createBand(i.startIndex,a),r=this.createBand(a,i.endIndex);this.bands.splice(t,1,o,r)}getStats(){const t=this.bands.filter(e=>e.isDirty);return{totalBands:this.bands.length,dirtyBands:t.length,dataSize:this.dataSize}}markRangeDirty(t,e){for(const i of this.bands)ti.startIndex&&(i.isDirty=!0)}},oo=class RG{constructor(){this.domain=new Set,this.dateTimestamps=new Set,this.hasDateValues=!1,this.sortedValues=null,this.sortOrder=void 0,this.isSortedUnique=!1}static is(e){return e instanceof RG}setSortedUniqueMode(e,i){i&&(this.isSortedUnique=!0,this.sortOrder=e,this.sortedValues=[])}extend(e){this.isSortedUnique&&this.sortedValues?(this.sortedValues.push(e),e instanceof Date&&(this.hasDateValues=!0)):e instanceof Date?(this.hasDateValues=!0,this.dateTimestamps.add(e.valueOf())):this.domain.add(e)}getDomain(){if(this.isSortedUnique&&this.sortedValues){let e=!1;return this.sortedValues.filter(i=>{if(i==null)return e?!1:(e=!0,!0);if(i instanceof Date&&Number.isNaN(i.valueOf())){if(e)return!1;e=!0}return!0})}if(this.hasDateValues){const e=Array.from(this.dateTimestamps,i=>new Date(i));return this.domain.size>0?[...e,...Array.from(this.domain)]:e}return Array.from(this.domain)}isDateDomain(){return this.hasDateValues}isSortedUniqueMode(){return this.isSortedUnique}getSortOrder(){return this.sortOrder}mergeFrom(e){if(this.isSortedUnique&&e.isSortedUnique&&this.sortOrder===e.sortOrder&&this.sortOrder!==void 0&&e.sortedValues){e.hasDateValues&&(this.hasDateValues=!0),this.sortedValues??(this.sortedValues=[]),this.sortedValues.push(...e.sortedValues);return}if(this.convertToSetMode(),e.hasDateValues&&(this.hasDateValues=!0),e.isSortedUnique&&e.sortedValues)for(const i of e.sortedValues)i instanceof Date?this.dateTimestamps.add(i.valueOf()):this.domain.add(i);else{for(const i of e.dateTimestamps)this.dateTimestamps.add(i);for(const i of e.domain)this.domain.add(i)}}convertToSetMode(){if(this.isSortedUnique){if(this.sortedValues){for(const e of this.sortedValues)e instanceof Date?this.dateTimestamps.add(e.valueOf()):this.domain.add(e);this.sortedValues=null}this.isSortedUnique=!1,this.sortOrder=void 0}}},co=class PG{constructor(){this.domain=[1/0,-1/0]}static is(e){return e instanceof PG}static extendDomain(e,i=[1/0,-1/0]){for(const n of e)typeof n=="number"&&(i[0]>n&&(i[0]=n),i[1]e&&(this.domain[0]=e),this.domain[1]1&&super.splitBand(t,e)}markBandsDirty(t,e){this.markRangeDirty(t,e),this.fullDomainCache=null}markAllBandsDirty(){for(const t of this.bands)t.isDirty=!0;this.fullDomainCache=null}extendBandsFromData(t,e){const i=t.length;for(const n of this.bands){if(!n.isDirty)continue;const s=this.domainFactory();this.isDiscrete&&this.sortOrder!==void 0&&this.isUnique&&oo.is(s)&&s.setSortedUniqueMode(this.sortOrder,this.isUnique),n.subDomain=s;const{startIndex:a,endIndex:o}=n;for(let r=a;rt.isDirty)}extend(t){this.markAllBandsDirty(),this.fullDomainCache=null}canUseSortedConcatenation(){if(!this.sortOrder||!this.isUnique||!this.isDiscrete)return!1;for(const t of this.bands)if(!oo.is(t.subDomain)||!t.subDomain.isSortedUniqueMode()||t.subDomain.getSortOrder()!==this.sortOrder)return!1;return!0}concatenateSortedDomains(){const t=new oo;t.setSortedUniqueMode(this.sortOrder,this.isUnique);for(const e of this.bands)oo.is(e.subDomain)&&t.mergeFrom(e.subDomain);return t.getDomain()}deduplicateNulls(t){let e=!1;return t.filter(i=>{if(i==null)return e?!1:(e=!0,!0);if(i instanceof Date&&Number.isNaN(i.valueOf())){if(e)return!1;e=!0}return!0})}getDomain(){if(this.fullDomainCache!==null)return this.fullDomainCache;if(this.bands.length===0)return this.fullDomainCache=[],[];if(this.bands.length===1){const t=this.bands[0].subDomain.getDomain();return this.fullDomainCache=this.isDiscrete?this.deduplicateNulls(t):t,this.fullDomainCache}if(this.isDiscrete){const t=this.bands[0].subDomain;if(oo.is(t))if(this.canUseSortedConcatenation())this.fullDomainCache=this.deduplicateNulls(this.concatenateSortedDomains());else{const e=new oo;for(const i of this.bands)oo.is(i.subDomain)&&e.mergeFrom(i.subDomain);this.fullDomainCache=this.deduplicateNulls(e.getDomain())}else{const e=new Set;for(const i of this.bands)for(const n of i.subDomain.getDomain())e.add(n);this.fullDomainCache=Array.from(e)}}else{let t,e;for(const i of this.bands){const n=i.subDomain.getDomain();if(n.length===2){const[s,a]=n;(t===void 0||s!=null&&t!=null&&se)&&(e=a)}}t!==void 0&&e!==void 0?this.fullDomainCache=[t,e]:this.fullDomainCache=[]}return this.fullDomainCache}getStats(){const t=this.bands.filter(i=>i.isDirty).length,e=this.bands.reduce((i,n)=>i+(n.endIndex-n.startIndex),0);return{bandCount:this.bands.length,dirtyBandCount:t,averageBandSize:this.bands.length>0?e/this.bands.length:0,dataSize:this.dataSize}}};function zG(t,e=[0,0]){for(const i of t)typeof i=="number"&&(i<0&&(e[0]+=i),i>0&&(e[1]+=i));return e}function jq(t,e){const i=e?.visible??!0;return{id:t,type:"aggregate",matchGroupIds:e?.matchGroupId?[e?.matchGroupId]:void 0,aggregateFunction:n=>zG(n),groupAggregateFunction:(n,s=[0,0])=>(i&&(s[0]+=n?.[0]??0,s[1]+=n?.[1]??0),s)}}function Gq(t,e){return{id:t,matchGroupIds:[e],type:"aggregate",aggregateFunction:n=>co.extendDomain(n)}}function eB(t,e){const i=e?.visible??!0;return{id:t,type:"aggregate",aggregateFunction:()=>[0,1],groupAggregateFunction:(n,s=[0,0])=>(i&&(s[0]+=n?.[0]??0,s[1]+=n?.[1]??0),s)}}function Uq(t,e){const i=e?.visible??!0;return{id:t,matchGroupIds:e?.matchGroupId?[e?.matchGroupId]:void 0,type:"aggregate",aggregateFunction:s=>zG(s),groupAggregateFunction:(s,a=[0,0,-1])=>(i&&(a[0]+=s?.[0]??0,a[2]++,a[1]+=s?.[1]??0),a),finalFunction:(s=[0,0,0])=>{const a=s[0]+s[1];return a>=0?[0,a/s[2]]:[a/s[2],0]}}}function iB(t,e,i){const n={id:t,matchGroupIds:i?[i]:void 0,type:"aggregate",aggregateFunction:(s,a=[])=>{const o=a[1]-a[0];return e.aggregateFunction(s).map(r=>r/o)}};return e.groupAggregateFunction&&(n.groupAggregateFunction=e.groupAggregateFunction),n}function Wq(t){return()=>{let e=0;return i=>Ae(i)?(e+=t?Math.max(0,i):i,e):i}}function Kq(){return()=>{let t=0;return e=>{if(!Ae(e))return e;const i=t;return t+=e,i}}}var bN="\0__AG_NULL__\0",xN="\0__AG_UNDEFINED__\0";function BG(t){return t===null?bN:t===void 0?xN:Array.isArray(t)?"["+t.map(BG).join(",")+"]":Bt(t)?JSON.stringify(t):String(t)}function vN(t){return t.map(BG).join("-")}function _a(t){const e=t?.map(Number);return e?.every(Number.isFinite)?e:[]}function VG(t,e){return e?.get(t.id)??0}function SN(t){return"scopes"in t&&Array.isArray(t.scopes)}function nl(t,e){const i=[];for(let n=0;n{let i=e;for(const n of t)i=i[n];return i}}var Xq=class{constructor(t,e,i){this.ctx=t,this.scopeCacheManager=e,this.resolvers=i}aggregateUngroupedData(t){const e=this.ctx.aggregates.map(()=>[1/0,-1/0]);t.domain.aggValues=e;const{columns:i,dataSources:n}=t,s=Ra(n.keys()),a=t.keys.map(l=>l.get(s)),o=n.get(s)?.data??[],r=this.ctx.keys.some(l=>l.allowNullKey===!0);t.aggregation=o?.map((l,c)=>{const u=[];for(const[d,g]of this.ctx.aggregates.entries()){const f=this.valueGroupIdxLookup(g);let y=g.groupAggregateFunction?.()??[1/0,-1/0];const x=f.map(I=>i[I][c]),S=MN(a,c,r),D=S==null?void 0:g.aggregateFunction(x,S);D&&(y=g.groupAggregateFunction?.(D,y)??co.extendDomain(D,y));const A=g.finalFunction?.(y)??y;u[d]=A,co.extendDomain(A,e[d])}return u})}aggregateGroupedData(t){const e=this.ctx.aggregates.map(()=>[1/0,-1/0]);t.domain.aggValues=e;const{columns:i}=t;for(const[n,s]of this.ctx.aggregates.entries()){const a=this.valueGroupIdxLookup(s);for(let o=0;or.datumIndices[g]?.length??0));for(let g=0;g{const S=r.datumIndices[x]?.[g];if(S==null)return;const D=this.resolvers.resolveAbsoluteIndex(o,S);return i[x][D]}),y=s.aggregateFunction(f,l);y&&(c=s.groupAggregateFunction?.(y,c)??co.extendDomain(y,c))}const d=s.finalFunction?.(c)??c;r.aggregation[n]=d,co.extendDomain(d,e[n])}}}postProcessGroups(t){const{groupProcessors:e}=this.ctx,{columnScopes:i,columns:n,invalidData:s}=t;for(const a of e){const o=this.valueGroupIdxLookup(a),r=a.adjust()();for(let l=0;lnew oo:()=>new co,this.ctx.bandingConfig,n),e.set(t,s)),s&&n&&s.setSortOrderMetadata(i?.sortOrder,i?.isUnique??!1),s||(n?new oo:new co)}extendDomainFromData(t,e,i){if(t instanceof xb)t.extendBandsFromData(e,i);else for(let n=0;ne.includes(i))}function nB(t,e){if(t.valueType==="category"){for(const i of e)if(i.property===t.property&&i.valueType===t.valueType&&Qq(i.scopes,t.scopes)&&i.validation===t.validation)return i}}var Jq=class{constructor(t,e,i){this.ctx=t,this.initializer=e,this.scopeCacheManager=i,this.processValueFactory=new qq(t)}recomputeDomains(t){const e=this.ctx.debug.check()?performance.now():0,i=t[qb];let n;const s=t[hu],a=this.setupDefinitionDomains(this.ctx.keys,i,s),o=new Map;for(const u of this.ctx.values){const d=nB(u,this.ctx.keys);d&&o.set(u,d)}const r=this.setupValueDomainsWithSharing(this.ctx.values,i,a,o),l=new Set;for(const[,u]of o){const d=a.get(u);d&&l.add(d)}this.initializeDomainBands(this.ctx.keys,a,u=>{const d=t.keys[u];return Math.max(...Array.from(d.values()).map(g=>g.length))},u=>String(u.property)),this.initializeDomainBands(this.ctx.values,r,u=>t.columns[u].length,u=>String(u.property));const c=new Map;if(i.size>0){n={totalBands:0,dirtyBands:0,totalData:0};for(const u of i.values())if(u instanceof xb){const d=u.getStats();c.set(u,d),n.totalBands+=d.bandCount,n.dirtyBands+=d.dirtyBandCount,n.totalData=Math.max(n.totalData,d.dataSize)}}if(this.extendDomainsFromData(this.ctx.keys,a,(u,d)=>t.keys[u]?.get(d),u=>u.scopes??[],u=>t.invalidKeys?.get(u)),this.extendDomainsFromData(this.ctx.values,r,(u,d)=>t.columns[u],u=>[Ra(u.scopes)],u=>t.invalidKeys?.get(u),l),t.domain.keys=this.ctx.keys.map(function(d){const g=a.get(d),f=g.getDomain();return co.is(g)&&f[0]>f[1]?[]:f}),t.domain.values=this.ctx.values.map(function(d){const g=r.get(d),f=g.getDomain();return co.is(g)&&f[0]>f[1]?[]:f}),t.type==="grouped"&&(t.domain.groups=t.groups.map(u=>u.keys)),this.collectDomainBandingMetadata(t,a,r,i,c),this.ctx.debug.check()&&e>0){const d=performance.now()-e;if(n&&n.totalBands>0){const g=n.dirtyBands/n.totalBands,f=Math.round(g*n.totalData);this.ctx.debug(`recomputeDomains with banding: ${d.toFixed(2)}ms, bands: ${n.dirtyBands}/${n.totalBands} dirty, data scanned: ~${f}/${n.totalData} (${(g*100).toFixed(1)}%)`)}else this.ctx.debug(`recomputeDomains: ${d.toFixed(2)}ms (no banding)`)}}setupDefinitionDomains(t,e,i){const n=new Map;for(const[s,a]of t.entries()){const o=i?.get(s);n.set(a,this.initializer.setupDomainForDefinition(a,e,o))}return n}initializeDomainBands(t,e,i,n){for(const[s,a]of t.entries()){const o=e.get(a);if(!o)continue;const r=i(s);this.initializer.initializeBandedDomain(o,r,n(a))}}extendDomainsFromData(t,e,i,n,s,a){for(const[o,r]of t.entries()){const l=e.get(r);if(l&&!a?.has(l))for(const c of n(r)){if(!c)continue;const u=i(o,c);if(!u)continue;const d=s(c);this.initializer.extendDomainFromData(l,u,d)}}}setupValueDomainsWithSharing(t,e,i,n){const s=new Map;for(const a of t){const o=n.get(a);if(o){const r=i.get(o);if(r){s.set(a,r);continue}}s.set(a,this.initializer.setupDomainForDefinition(a,e))}return s}initDataDomainProcessor(t){const{keys:e,values:i}=this.ctx,n=new Set;for(const g of i)if(g.scopes)for(const f of g.scopes)n.add(f);const s=new Map,a=new Map;let o=!0;const r=()=>{for(const g of e)g.valueType==="category"?s.set(g,new oo):s.set(g,new co);for(const g of i){const f=nB(g,e);if(f){const y=s.get(f);if(y){s.set(g,y),o&&(o=(g.scopes?.length??0)===n.size);continue}}g.valueType==="category"?s.set(g,new oo):(s.set(g,new co),o&&(o=(g.scopes?.length??0)===n.size))}};r();const l=this.scopeCacheManager.buildAccessors(Mu(e,i)),c=new WeakMap;for(const g of Mu(e,i)){const f=l.get(g.property),y=s.get(g),x={value:void 0,missing:!1,valid:!1},S=this.processValueFactory.createProcessValueFn(g,f,y,x,a,t);c.set(g,S)}function u(g){const f=c.get(g);if(!f)throw new Error("AG Charts - missing processValue function for definition");return f}function d(g,f,y,x){return u(g)(f,y,x)}return{dataDomain:s,processValue:d,getProcessValue:u,initDataDomain:r,scopes:n,allScopesHaveSameDefs:o}}collectDomainBandingMetadata(t,e,i,n,s){t.optimizations??(t.optimizations={});const a=(l,c)=>l.map(u=>{const d=c.get(u),g=n.get(u),f=d instanceof xb;let y;f||(y=u.valueType==="category"?"discrete domain":"not configured");let x;if(f&&g){const S=s.get(g)??g.getStats(),D=S.bandCount>0?S.dirtyBandCount/S.bandCount:0;x={totalBands:S.bandCount,dirtyBands:S.dirtyBandCount,dataSize:S.dataSize,scanRatio:D}}return{property:String(u.property),applied:f,reason:y,stats:x}}),o=a(this.ctx.keys,e),r=a(this.ctx.values,i);t.optimizations.domainBanding={keyDefs:o,valueDefs:r}}};function t7(){return{lastValue:void 0,sortOrder:0,isUnique:!0,isOrdered:!0}}function e7(t,e){const i=typeof e=="number"?e:e?.valueOf?.();if(typeof i!="number"||!Number.isFinite(i))return;if(t.lastValue===void 0){t.lastValue=i;return}const n=i-t.lastValue;if(n===0)t.isUnique=!1;else if(t.isOrdered){const s=n>0?1:-1;t.sortOrder===0?t.sortOrder=s:t.sortOrder!==s&&(t.isOrdered=!1)}t.lastValue=i}function i7(t){return{sortOrder:t.isOrdered&&t.sortOrder!==0?t.sortOrder:void 0,isUnique:t.isUnique,isDirty:!1}}var n7=class{constructor(t,e){this.ctx=t,this.domainManager=e}extractData(t){const{dataDomain:e,getProcessValue:i,allScopesHaveSameDefs:n}=this.domainManager.initDataDomainProcessor("extend"),{keys:s,values:a}=this.ctx,{invalidData:o,invalidKeys:r,invalidKeyCount:l,invalidDataCount:c,missingData:u,allKeyMappings:d,keySortOrders:g}=this.extractKeys(s,t,i),{columns:f,columnScopes:y,columnNeedValueOf:x,partialValidDataCount:S,maxDataLength:D}=this.extractValues(o,c,u,a,t,r,i),A=I=>{const w=e.get(I),N=w.getDomain();return co.is(w)&&N[0]>N[1]?[]:N};return{type:"ungrouped",input:{count:D},scopes:new Set(t.keys()),dataSources:t,aggregation:void 0,keys:[...d.values()],columns:f,columnScopes:y,columnNeedValueOf:x,invalidKeys:r,invalidKeyCount:l,invalidData:o,invalidDataCount:c,missingData:u,domain:{keys:s.map(A),values:a.map(A)},defs:{allScopesHaveSameDefs:n,keys:s,values:a},partialValidDataCount:S,time:0,version:0,[GT]:new Map,[hu]:g,[jT]:new Map,[qb]:new Map,[ip]:new Map}}extractKeys(t,e,i){const n=new Map,s=new Map,a=new Map,o=new Map,r=new Map,l=new Map,c=new Map;let u,d;const g=t.map(y=>i(y)),f=(y,x)=>{const S=d.get(y);u.set(x,u.get(S)),n.has(S)&&(n.set(x,n.get(S)),s.set(x,s.get(S)),o.set(x,o.get(S)))};for(const[y,x]of t.entries()){const{invalidValue:S,scopes:D}=x,A=g[y];u=new Map,d=new Map,l.set(x,u);const I=t7();for(const w of D??[]){const N=e.get(w)?.data??[];if(d.has(N)){f(N,w);continue}const O=[];u.set(w,O),d.set(N,w);let L,R,P=0,B;for(let F=0;Fo(f));for(const[f,y]of n.entries()){const{invalidValue:x}=y,S=g[f];if(new Set(y.scopes.map(R=>s.get(R))).size>1)throw new Error(`AG Charts - more than one data source for: ${JSON.stringify(y)}`);const A=new Set(y.scopes),I=Ra(y.scopes),w=s.get(I)?.data??[],N=new Array,O=a.get(I);let L=!1;for(let R=0;R0?1-S/y:0;t.optimizations.batchMerging={originalBatchCount:y,mergedBatchCount:S,mergeRatio:I}}const D=x.length===1,A=Object.freeze(nl(x[0][1].length,_G));for(const[I,w,N,O,L,R]of x){const P=s[Ra(w)];for(let B=0;BW[B]);if(F==null||F.length===0)throw new Error("AG Charts - no keys found for scope(s): "+I.join(", "));const H=e?.(F)??F,$=d==null?void 0:vN(H);let Y=d?.get($),U,V,Z=!1;if(Y==null?(U={keys:H,datumIndices:[],aggregation:[],validScopes:l},V=f++,Y=[V,U],Z=!0,d?.set($,Y),c.push(U.keys),u.push(U)):([V,U]=Y,g=!1),L?.[B]===!0){U.validScopes===l&&(U.validScopes=new Set(l.values()));for(const W of O)U.validScopes.delete(W)}if(Z&&B===V&&D)U.datumIndices=A;else{!Z&&U.datumIndices===A&&(U.datumIndices=A.map(W=>[...W]));for(const W of w)(i=U.datumIndices)[W]??(i[W]=[]),U.datumIndices[W].push(B-V)}}}return{...t,type:"grouped",domain:{...t.domain,groups:c},groups:u,groupsUnique:g,optimizations:t.optimizations,[qb]:t[qb],[ip]:t[ip]}}groupBatches(t,e,i,n,s,a){const o=[],r=new Set;for(const l of t){const c=e.map((y,x)=>x).filter(y=>!r.has(y)&&i[y].has(l));if(c.length===0)continue;for(const y of c)r.add(y);const u=new Set;for(const y of c)for(const x of i[y])u.add(x);const d=n.map(y=>y.get(l)).filter(y=>y!=null),g=s?.get(l),f=a?.get(l);o.push([l,c,d,u,g,f])}return this.mergeCompatibleBatches(o)}areBatchesCompatible(t,e){const[,,i,,n,s]=t,[,,a,,o,r]=e;return i.every((l,c)=>l===a[c])&&s===r&&n===o}mergeCompatibleBatches(t){const e=[],i=new Set;for(let n=0;n0}function a7(t){return t.removedIndices.size===0&&t.totalAppendCount===0&&t.totalPrependCount>0}function o7(t){return t.removedIndices.size===0}function r7(t){return t.removedIndices.size===0&&t.totalPrependCount===0&&t.totalAppendCount===0&&t.spliceOps.every(e=>e.insertCount===0&&e.deleteCount===0)}function l7(t){return t.removedIndices.size>0&&t.totalPrependCount===0&&t.totalAppendCount===0&&t.spliceOps.every(e=>e.insertCount===0)}function c7(t){return AN(t.removedIndices)>0}function AN(t){if(t.size===0)return 0;const e=Array.from(t).sort((i,n)=>i-n);if(e[0]!==0)return 0;for(let i=0;i0&&t.totalPrependCount===0}var u7=class{constructor(t,e){this.indexMap=t,this.prependValues=e.prependValues,this.appendValues=e.appendValues,this.insertionValues=e.insertionValues}getRemovedIndices(){return Array.from(this.indexMap.removedIndices).sort((t,e)=>t-e)}getUpdatedIndices(){return Array.from(this.indexMap.updatedIndices).sort((t,e)=>t-e)}forEachPreservedIndex(t){const{originalLength:e,removedIndices:i,totalPrependCount:n}=this.indexMap;let s=0;const a=Array.from(i).sort((r,l)=>r-l);let o=0;for(let r=0;r0?Array.from({length:o.insertCount},function(u,d){return e(o.index+d)}):[],l=t.splice(o.index,o.deleteCount,...r);i&&l.length>0&&i(l,o)}t.length!==s&&(t.length=s)}}},d7=class extends EG{constructor(t={}){super(t),this.lastDirtyBandCount=0,this.lastScanRatio=0,this.statsCaptured=!1}createBand(t,e){return{startIndex:t,endIndex:e,cachedResult:void 0,isDirty:!0}}initializeBands(t){super.initializeBands(t),this.statsCaptured=!1}getBands(){return this.bands}evaluateFromData(t,e,i=!1){const n=t.reducer();for(const s of this.bands){if(i&&!s.isDirty)continue;const a=t.needsOverlap&&s.startIndex>0?Math.max(0,s.startIndex-1):s.startIndex,o=this.evaluateRange(t,n,e,a,s.endIndex);s.cachedResult=o,s.isDirty=!1}}getResult(t){const e=this.bands.map(i=>i.cachedResult);return t.combineResults(e)}evaluateRange(t,e,i,n,s){let a=t.initialValue;const{keyColumns:o,keysParam:r,rawData:l}=i,c=Math.min(s,l.length);for(let u=n;ui.isDirty),e=t.reduce((i,n)=>i+(n.endIndex-n.startIndex),0);this.lastDirtyBandCount=t.length,this.lastScanRatio=this.dataSize>0?e/this.dataSize:0,this.statsCaptured=!0}getStats(){const t=this.bands.filter(n=>!n.isDirty&&n.cachedResult!==void 0);let e,i;if(this.statsCaptured)e=this.lastDirtyBandCount,i=this.lastScanRatio;else{const n=this.bands.filter(a=>a.isDirty),s=n.reduce((a,o)=>a+(o.endIndex-o.startIndex),0);e=n.length,i=this.dataSize>0?s/this.dataSize:0}return{totalBands:this.bands.length,dirtyBands:e,dataSize:this.dataSize,scanRatio:i,cacheHits:t.length}}},aB=class{constructor(t={}){this.bandingConfig=t}static evaluateRange(t,e,i,n,s){let a=t.initialValue;const{keyColumns:o,keysParam:r,rawData:l}=i,c=Math.min(s,l.length);for(let u=n;uo.get(i)).filter(o=>o!=null),a=s.map(()=>{});return{scopeId:i,rawData:n,keyColumns:s,keysParam:a}}},p7=class{constructor(t,e){this.ctx=t,this.reducerManager=e}isReprocessingSupported(t){if(t.type==="grouped"){if(!t.groupsUnique||this.getUniqueDataSets(t).size!==1)return!1;const s=Ra(t.scopes);if(t.invalidKeys?.get(s)?.some(o=>o))return!1}return this.ctx.aggregates.length>0||this.ctx.reducers.some(n=>n.supportsBanding!==!0||typeof n.combineResults!="function")||this.ctx.processors.some(n=>n.incrementalCalculate===void 0)||this.ctx.propertyProcessors.length>0?!1:this.ctx.groupProcessors.every(n=>n.supportsReprocessing??!1)}reprocessData(t,e,i,n,s,a){const o=performance.now(),r=this.collectScopeChanges(t,e);if(r.size===0)return t;this.commitPendingTransactions(t);const l=this.buildDefinitionProcessors(this.ctx.keys,i),c=this.buildDefinitionProcessors(this.ctx.values,i),u=this.processAllInsertions(t,r,l,c);this.processAllUpdates(t,r,l,c,u),this.updateBandsForChanges(t,r);const d=this.transformKeysArrays(t,r,u);this.transformColumnsArrays(t,r,u),this.transformInvalidityArrays(t,r,u),this.reprocessBandedReducers(t,r),t.type==="grouped"&&(this.transformGroupsArray(t,r,u),this.ctx.groupProcessors.length>0&&n(t,r)),this.invalidateSortOrdersForChanges(t,r),s(t),this.reprocessProcessors(t),t.reduced?.diff!=null&&r.size>0&&this.generateDiffMetadata(t,r,d),this.updateProcessedDataMetadata(t);const g=performance.now();t.time=g-o,t.version+=1,a(t,"reprocess");const f=US(r);return t.changeDescription=f.size===1?f.values().next().value:void 0,t}updateBandsForChanges(t,e){const i=t[qb];if(i.size===0)return;const n=US(e);for(const s of n){const{indexMap:a}=s;for(const o of i.values())o.applyIndexMap(a)}}reprocessBandedReducers(t,e){if(t.type!=="ungrouped")return;const i=this.ctx.reducers.filter(n=>n.supportsBanding&&typeof n.combineResults=="function");if(i.length!==0){t.reduced??(t.reduced={});for(const n of i){const s=this.reducerManager.evaluate(n,t,{reuseCleanBands:!0,beforeEvaluate:(a,o)=>{if(!o.scopeId)return;const r=e.get(o.scopeId);r&&a.applyIndexMap(r.indexMap)}});s!==void 0&&(t.reduced[n.property]=s)}}}collectScopeChanges(t,e){const i=new Map;for(const[n,s]of t.dataSources){const a=e?.get(s)??s.getChangeDescription();a&&i.set(n,a)}return i}commitPendingTransactions(t){const e=this.getUniqueDataSets(t);for(const i of e)i.commitPendingTransactions()}buildDefinitionProcessors(t,e){return t.map((i,n)=>({def:i,index:n,processValue:e(i)}))}processAllInsertions(t,e,i,n){const s=new Map;for(const[a,o]of e){const r=t.dataSources.get(a);if(!r)continue;const l=this.processInsertionsOnce(a,o,r,i,n);s.set(a,l)}return s}processAllUpdates(t,e,i,n,s){for(const[a,o]of e){const r=t.dataSources.get(a);if(!r)continue;const l=o.getUpdatedIndices();if(l.length===0)continue;let c=s.get(a);c||(c=new Map,s.set(a,c));for(const u of l){if(u<0||u>=r.data.length)continue;const d=this.processDatum(r,u,a,i,n);d&&c.set(u,d)}}}processInsertionsOnce(t,e,i,n,s){const a=new Map,{finalLength:o}=e.indexMap;for(const r of e.indexMap.spliceOps)if(!(r.insertCount<=0))for(let l=0;l=o)continue;const u=this.processDatum(i,c,t,n,s);u&&a.set(c,u)}return a}processDatum(t,e,i,n,s){const a=t.data[e],o=new Map,r=new Map;let l=!1,c=!1,u=!1;if(a==null||typeof a!="object")l=!0,c=!0;else{for(const{index:d,def:g,processValue:f}of n){if(!g.scopes?.includes(i))continue;const y=f(a,e,i);o.set(d,{value:y.value,valid:y.valid}),y.valid||(l=!0)}for(const{index:d,def:g,processValue:f}of s){if(!g.scopes?.includes(i))continue;const y=f(a,e,g.scopes);r.set(d,{value:y.value,valid:y.valid}),y.valid||(c=!0),y.missing&&(u=!0)}}return{keys:o,values:r,hasInvalidKey:l,hasInvalidValue:c,hasMissingValue:u}}transformArraysWithCache(t,e,i,n,s,a){for(const[o,r]of t.entries())for(const l of s(r)){const c=e.get(l);if(!c)continue;const u=n(o,l);if(!u)continue;const d=i.get(l);this.applyChangeDescWithCache(c,u,d,(g,f)=>a(g,r,o))}}transformKeysArrays(t,e,i){const n=new Map,s=r=>{let l=n.get(r);return l||(l={tuples:[]},n.set(r,l)),l},a=new WeakSet;for(const[r,l]of this.ctx.keys.entries())for(const c of l.scopes??[]){const u=e.get(c);if(!u)continue;const d=t.keys[r]?.get(c);if(!d)continue;if(a.has(d)){const x=Array.from(t.keys[r].entries()).find(([S,D])=>D===d)?.[0];x&&x!==c&&n.has(x)&&n.set(c,n.get(x));continue}a.add(d);const g=i.get(c),f=s(c);let y=0;this.applyChangeDescWithCache(u,d,g,x=>{const S=x?.keys.get(r);return S?.valid?S.value:l.invalidValue},x=>{for(const S of x)f.tuples[y]||(f.tuples[y]=new Array(this.ctx.keys.length)),f.tuples[y][r]=S,y+=1})}const o=new Map;for(const[r,{tuples:l}]of n){if(l.length===0)continue;const c=new Set;for(const u of l){const d=[];for(const[g,f]of u.entries())this.ctx.keys[g].scopes?.includes(r)&&d.push(f);d.length>0&&c.add(vN(d))}o.set(r,c)}return o}transformColumnsArrays(t,e,i){this.transformArraysWithCache(this.ctx.values,e,i,n=>t.columns[n],n=>[Ra(n.scopes)],(n,s,a)=>{if(n){if(n.hasInvalidKey)return s.invalidValue;const o=n.values.get(a);return o?.valid?o.value:s.invalidValue}return s.invalidValue})}transformInvalidityMap(t,e,i,n){const s=new Set;for(const[a,o]of e){let r=t.get(a);if(!r){const c=i.get(a);if(c&&Array.from(c.values()).some(n))r=nl(o.indexMap.originalLength,!1),t.set(a,r);else continue}if(s.has(r))continue;s.add(r);const l=i.get(a);this.applyChangeDescWithCache(o,r,l,(c,u)=>n(c))}}transformInvalidityArrays(t,e,i){t.invalidKeys&&this.transformInvalidityMap(t.invalidKeys,e,i,n=>n?.hasInvalidKey??!1),t.invalidData&&this.transformInvalidityMap(t.invalidData,e,i,n=>n?n.hasInvalidKey||n.hasInvalidValue:!1),t.missingData&&this.transformInvalidityMap(t.missingData,e,i,n=>n?.hasMissingValue??!1)}applyChangeDescWithCache(t,e,i,n,s){t.applyToArray(e,o=>{const r=i?.get(o);return n(r,o)},s);const a=t.getUpdatedIndices();if(a.length!==0)for(const o of a){if(o<0||o>=e.length)continue;const r=i?.get(o);e[o]=n(r,o)}}transformGroupsArray(t,e,i){const n=Ra(t.scopes),s=e.get(n);if(!s)return;const a=i.get(n);for(const[,r]of a??[])if(r.hasInvalidKey)throw new Error("AG Charts - reprocessing grouped data with invalid keys not supported. This typically indicates a data quality issue that requires full reprocessing.");s.applyToArray(t.groups,r=>this.createDataGroupForInsertion(r,t,n,a));const o=s.getUpdatedIndices();if(o.length>0)for(const r of o)r<0||r>=t.groups.length||(t.groups[r]=this.createDataGroupForInsertion(r,t,n,a))}createDataGroupForInsertion(t,e,i,n){const s=[];for(const d of e.keys){const g=d.get(i);g&&s.push(g[t])}const a=e.groups[0],o=()=>Object.freeze(nl(e.columnScopes.length,_G)),r=a?.datumIndices??o(),c=n?.get(t)?.hasInvalidValue??!1;let u;return c?(u=new Set(e.scopes),u.delete(i)):u=e.scopes,{keys:s,datumIndices:r,aggregation:[],validScopes:u}}generateDiffMetadata(t,e,i){const n=(s,a)=>{const o=[];for(const r of t.keys){const l=r.get(s);if(!l)return;o.push(l[a])}return o.length>0?vN(o):void 0};for(const[s,a]of e){const o={changed:!0,added:new Set,removed:i.get(s)??new Set,updated:new Set,moved:new Set};for(const c of a.indexMap.spliceOps)if(c.insertCount>0)for(let u=0;u0)for(let c=l;c0)for(let c=0;c{if(c!==u){const d=n(s,u);d&&o.moved.add(d)}});t.reduced.diff[s]=o}}updateProcessedDataMetadata(t){let e=0;for(const n of t.dataSources.values())e=Math.max(e,n.data.length);t.input.count=e;let i=0;for(const[n,s]of t.invalidData??new Map){const a=t.invalidKeys?.get(n);for(let o=0;o{if(typeof o=="number")return o;if(o instanceof Date)return o.valueOf()};let s=n(e);const a=t.sortOrder;for(const o of i){const r=n(o);if(r===void 0)continue;if(s===void 0){s=r;continue}const l=r-s;if(l===0&&(t.isUnique=!1),t.sortOrder!==void 0){let c=0;l>0?c=1:l<0&&(c=-1),c!==0&&c!==a&&(t.sortOrder=void 0)}s=r}}updateKeySortOrdersForAppend(t,e){for(const[i,n]of t.keys.entries()){const s=t[hu].get(i);if(!s)continue;const a=Ra(n.values());if(!a||a.length<=e)continue;const o=e>0?a[e-1]:void 0,r=a.slice(e);this.updateSortOrderForAppend(s,o,r)}}invalidateSortOrdersForChanges(t,e){const i=US(e);let n=!0,s=!1,a=!1,o,r;for(const l of i){const{indexMap:c}=l;r7(c)||(sB(c)?(s=!0,o=c.originalLength):l7(c)||(h7(c)?(a=!0,r={originalLength:c.originalLength,removedCount:c.removedIndices.size}):n=!1))}n?s&&o!==void 0?this.updateKeySortOrdersForAppend(t,o):a&&r&&this.updateKeySortOrdersForRollingWindow(t,r):(t[hu].clear(),t[jT].clear())}updateKeySortOrdersForRollingWindow(t,e){const{originalLength:i,removedCount:n}=e;for(const[s,a]of t.keys.entries()){const o=t[hu].get(s);if(!o)continue;const r=Ra(a.values());if(!r||r.length===0)continue;const l=i-n,c=l>0?r[l-1]:void 0,u=r.slice(l);this.updateSortOrderForAppend(o,c,u)}}invalidateCachesForChanges(t){this.markDomainRangesDirty(t[GT])}markDomainRangesDirty(t){for(const e of t.values())e.isDirty=!0}recountInvalid(t,e){if(!(!t||!e))for(const[i,n]of t){const s=n.filter(Boolean).length;s===0?(t.delete(i),e.delete(i)):e.set(i,s)}}reprocessProcessors(t){if(this.ctx.processors.length!==0){t.reduced??(t.reduced={});for(const e of this.ctx.processors){const i=t.reduced[e.property],n=e.incrementalCalculate?.(t,i)??e.calculate(t,i);t.reduced[e.property]=n}}}getUniqueDataSets(t){return new Set(t.dataSources.values())}},bd=0,xd=1,qr=2,g7=class Jy{constructor(e){this.isDirty=!1;const i=e.reduce((a,o)=>Math.max(a,o.length),0),{maxLevelSize:n,buffer:s}=Jy.createBuffer(i);this.maxLevelSize=n,this.buffer=s,this.dataLength=i,this.populateBuffer(e)}static computeMaxLevelSize(e){let n=1<<32-Math.clz32(e);return e===n/2&&(n=n>>>1),n}static createBuffer(e){const i=Jy.computeMaxLevelSize(e),n=new Float64Array((i*2-1)*2).fill(Number.NaN);return{maxLevelSize:i,buffer:n}}populateBuffer(e){const{maxLevelSize:i,buffer:n}=this,s=i-1;for(const a of e){const o=a.length;for(let r=0;rd)&&(n[c+1]=l)}}for(let a=i>>>1;a>=1;a>>>=1){const o=a-1,r=o+a<<1;let l=o<<1,c=r;for(let u=0;ux?y:x,l+=2,c+=4}}}rebuild(e){const i=e.reduce((s,a)=>Math.max(s,a.length),0);if(Jy.computeMaxLevelSize(i)===this.maxLevelSize)this.buffer.fill(Number.NaN);else{const{maxLevelSize:s,buffer:a}=Jy.createBuffer(i);this.maxLevelSize=s,this.buffer=a}this.dataLength=i,this.populateBuffer(e)}updateValue(e,i){const{maxLevelSize:n,buffer:s}=this,a=n+e-1,o=Math.trunc(a*qr)+bd,r=Math.trunc(a*qr)+xd;s[o]=Number.NaN,s[r]=Number.NaN;for(const l of i){const c=Number(l),u=s[o],d=s[r];(!Number.isFinite(u)||cd)&&(s[r]=c)}this.propagateUp(a)}updateValues(e){for(const{index:i,values:n}of e)this.updateValue(i,n)}propagateUp(e){const{buffer:i}=this;for(;e>0;){const n=Math.trunc((e-1)/2),s=2*n+1,a=2*n+2,o=i[Math.trunc(s*qr)+bd],r=i[Math.trunc(s*qr)+xd],l=i[Math.trunc(a*qr)+bd],c=i[Math.trunc(a*qr)+xd];i[Math.trunc(n*qr)+bd]=!Number.isFinite(l)||oc?r:c,e=n}}computeRangeInto(e,i,n,s,a,o,r){const l=a+o-1;if(l=n)return r;if(a>=i&&l1&&(s=Math.trunc(s*2),o=Math.trunc(o/2),this.computeRangeInto(e,i,n,Math.trunc(s+1),a,o,r),this.computeRangeInto(e,i,n,Math.trunc(s+2),a+o,o,r));return r}rangeBetween(e,i,n){const s=n??[0,0];if(e>i)return s[0]=Number.NaN,s[1]=Number.NaN,s;const{maxLevelSize:a,buffer:o}=this;return s[0]=1/0,s[1]=-1/0,this.computeRangeInto(o,e,i,0,0,a,s),s}getRange(e){const{buffer:i}=this,n=e??[0,0];return n[0]=i[bd],n[1]=i[xd],n}get range(){const{buffer:e}=this;return[e[bd],e[xd]]}get length(){return this.dataLength}};function f7(t,e){const i=t.length;if(t.length<=1)return 1;let n=0,s=t[0];for(let a=1;athis.resolveProcessedDataIndexById(t,d)),o=s.input.count;if(i<=0&&n>=o){const d=s.domain.values;let g=1/0,f=-1/0;for(const y of a){const x=d[y];x!=null&&(x[0]f&&(f=x[1]))}return this.rangeBetweenBuffer[0]=g,this.rangeBetweenBuffer[1]=f,this.rangeBetweenBuffer}const r=a.join(":"),l=s[GT],c=a.map(d=>s.columns[d]);let u=l.get(r);return u==null?(u=new g7(c),l.set(r,u)):u.isDirty&&(u.rebuild(c),u.isDirty=!1),u.rangeBetween(i,n,this.rangeBetweenBuffer)}getSortOrder(t,e,i,n){const s=i.get(e);if(s==null||s.isDirty){const a={sortOrder:f7(t,n)};return i.set(e,a),a.sortOrder}return s.sortOrder}getKeySortOrder(t,e,i){const n=this.resolveProcessedDataIndexById(t,e),s=i.keys[n]?.get(t.id);return s?this.getSortOrder(s,n,i[hu],!0):void 0}getKeySortEntry(t,e,i){const n=this.resolveProcessedDataIndexById(t,e),s=i[hu].get(n);return s?.isDirty?void 0:s}getColumnSortOrder(t,e,i){const n=this.resolveProcessedDataIndexById(t,e),s=i.columnNeedValueOf?.[n]??!0;return this.getSortOrder(i.columns[n],n,i[jT],s)}getDomainsByType(t,e){switch(t){case"key":return e.domain.keys;case"value":return e.domain.values;case"aggregate":return e.domain.aggValues;case"group-value-processor":return e.domain.groups;default:return null}}},y7=class{constructor(t){this.ctx=t}processScopeCache(){this.ctx.scopeCache.clear();for(const t of Mu(this.ctx.keys,this.ctx.values,this.ctx.aggregates))if(t.idsMap)for(const[e,i]of t.idsMap)for(const n of i)if(!this.ctx.scopeCache.has(e))this.ctx.scopeCache.set(e,new Map([[n,t]]));else{if(this.ctx.scopeCache.get(e)?.has(n))throw new Error("duplicate definition ids on the same scope are not allowed.");this.ctx.scopeCache.get(e).set(n,t)}}valueGroupIdxLookup({matchGroupIds:t}){const e=[];for(const[i,n]of this.ctx.values.entries())(!t||n.groupId&&t.includes(n.groupId))&&e.push(i);return e}valueIdxLookup(t,e){const i=t==null||t.length===0,n=typeof e=="string"?e:e.id,s=o=>{if(o.idsMap){for(const[r,l]of o.idsMap)if(t?.includes(r)&&l.has(n))return!0}return!1},a=this.ctx.values.reduce((o,r,l)=>((r.scopes==null||i&&!r.scopes.length||r.scopes.some(u=>t?.includes(u)))&&(r.property===n||r.id===n||s(r))&&o.push(l),o),[]);if(a.length===0)throw new Error(`AG Charts - configuration error, unknown property ${JSON.stringify(e)} in scope(s) ${JSON.stringify(t)}`);return a}buildAccessors(t){const e=new Map;if(this.ctx.suppressFieldDotNotation)return e;for(const i of t){if(!(i.property.includes(".")||i.property.includes("[")))continue;const s=Yq(i.property);if(s==null){pt.warnOnce("Invalid property path [%s]",i.property);continue}const a=$q(s);e.set(i.property,a)}return e}},IN=class{constructor(t,e="standalone",i=!1,n){this.opts=t,this.mode=e,this.suppressFieldDotNotation=i,this.eventsHub=n,this.debug=Gt.create(!0,"data-model"),this.scopeCache=new Map,this.keys=[],this.values=[],this.aggregates=[],this.groupProcessors=[],this.propertyProcessors=[],this.reducers=[],this.processors=[];let s=!0;for(const c of t.props){if(c.type==="key"&&!s)throw new Error("AG Charts - internal config error: keys must come before values.");c.type==="value"&&s&&(s=!1)}const a=({matchGroupIds:c=[]})=>{for(const u of c)if(this.values.every(d=>d.groupId!==u))throw new Error(`AG Charts - internal config error: matchGroupIds properties must match defined groups (${u}).`)},o=new Set,r=new Set;for(const c of t.props){const u=c.type==="key"?o:r;if(SN(c)&&c.scopes)for(const d of c.scopes)u.add(d);switch(c.type){case"key":this.keys.push({...c,index:this.keys.length,missing:new Map});break;case"value":if(c.property==null)throw new Error(`AG Charts - internal config error: no properties specified for value definitions: ${JSON.stringify(c)}`);this.values.push({...c,index:this.values.length,missing:new Map});break;case"aggregate":a(c),this.aggregates.push({...c,index:this.aggregates.length});break;case"group-value-processor":a(c),this.groupProcessors.push({...c,index:this.groupProcessors.length});break;case"property-value-processor":this.propertyProcessors.push({...c,index:this.propertyProcessors.length});break;case"reducer":this.reducers.push({...c,index:this.reducers.length});break;case"processor":this.processors.push({...c,index:this.processors.length});break}}if(this.opts.groupByKeys||this.opts.groupByFn!=null){const c=new Set(r.values());for(const u of o)c.delete(u);if(c.size>0)throw new Error(`AG Charts - scopes missing key for grouping, illegal configuration: ${[...c.values()]}`)}const l={keys:this.keys,values:this.values,aggregates:this.aggregates,groupProcessors:this.groupProcessors,propertyProcessors:this.propertyProcessors,reducers:this.reducers,processors:this.processors,debug:this.debug,mode:this.mode,bandingConfig:this.opts.domainBandingConfig,suppressFieldDotNotation:this.suppressFieldDotNotation,scopeCache:this.scopeCache};this.resolvers=new m7(l),this.scopeCacheManager=new y7(l),this.domainInitializer=new Zq(l),this.domainManager=new Jq(l,this.domainInitializer,this.scopeCacheManager),this.reducerManager=new aB(this.opts.domainBandingConfig),this.dataExtractor=new n7(l,this.domainManager),this.dataGrouper=new s7(l),this.aggregator=new Xq(l,this.scopeCacheManager,this.resolvers),this.incrementalProcessor=new p7(l,this.reducerManager)}resolveProcessedDataDefById(t,e){return this.resolvers.resolveProcessedDataDefById(t,e)}resolveProcessedDataIndexById(t,e){return this.resolvers.resolveProcessedDataIndexById(t,e)}resolveKeysById(t,e,i){return this.resolvers.resolveKeysById(t,e,i)}hasColumnById(t,e){return this.resolvers.hasColumnById(t,e)}resolveColumnById(t,e,i){return this.resolvers.resolveColumnById(t,e,i)}resolveColumnNeedsValueOf(t,e,i){return this.resolvers.resolveColumnNeedsValueOf(t,e,i)}resolveMissingDataCount(t){return this.resolvers.resolveMissingDataCount(t)}*forEachDatum(t,e,i,n){const s=e.columnScopes.findIndex(a=>a.has(t.id));for(const a of i.datumIndices[s]??[]){const o=this.resolvers.resolveAbsoluteIndex(n,a);yield e.columns[s][o]}}getUniqueDataSets(t){return new Set(t.dataSources.values())}*forEachGroupDatum(t,e){const i=e.columnScopes.findIndex(a=>a.has(t.id)),n={groupIndex:0,columnIndex:i},s=[];for(const a of e.groups){n.group=a;for(const o of a.datumIndices[i]??s)n.datumIndex=this.resolvers.resolveAbsoluteIndex(n.groupIndex,o),yield n;n.groupIndex++}}getDomain(t,e,i,n){const s=this.resolvers.getDomain(t,e,i,n);if(i==="key"&&s.length>0){const a=this.getKeySortMetadata(t,e,n);return{domain:s,sortMetadata:a}}return{domain:s}}getDomainBetweenRange(t,e,[i,n],s){return this.resolvers.getDomainBetweenRange(t,e,[i,n],s)}getKeySortOrder(t,e,i){return this.resolvers.getKeySortOrder(t,e,i)}getColumnSortOrder(t,e,i){return this.resolvers.getColumnSortOrder(t,e,i)}getKeySortMetadata(t,e,i){const n=this.resolvers.getKeySortEntry(t,e,i);if(n?.sortOrder!=null)return{sortOrder:n.sortOrder,isUnique:n.isUnique}}processData(t){const{opts:{groupByKeys:e,groupByFn:i},aggregates:n,groupProcessors:s,reducers:a,processors:o,propertyProcessors:r}=this,l=performance.now();if(e&&this.keys.length===0)return;let c=this.extractData(t);e?c=this.dataGrouper.groupData(c):i&&(c=this.dataGrouper.groupData(c,i(c))),s.length>0&&c.type==="grouped"&&this.aggregator.postProcessGroups(c),n.length>0&&c.type==="ungrouped"?this.aggregator.aggregateUngroupedData(c):n.length>0&&c.type==="grouped"&&this.aggregator.aggregateGroupedData(c),r.length>0&&this.postProcessProperties(c),a.length>0&&this.reduceData(c),o.length>0&&this.postProcessData(c),this.warnDataMissingProperties(t);const u=performance.now();return c.time=u-l,c.version+=1,this.collectOptimizationMetadata(c,"full-process"),this.debug.check()&&b7(c),this.processScopeCache(),c}isReprocessingSupported(t){return this.incrementalProcessor.isReprocessingSupported(t)}reprocessData(t,e){if(!this.isReprocessingSupported(t)){this.debug.check()&&this.debug("Falling back to full reprocessing - incremental not supported for current configuration");const a=this.getUniqueDataSets(t);for(const o of a)o.commitPendingTransactions();return this.processData(t.dataSources)}const{getProcessValue:i}=this.initDataDomainProcessor("skip"),n=this.incrementalProcessor.reprocessData(t,e,i,this.reprocessGroupProcessors.bind(this),this.recomputeDomains.bind(this),this.collectOptimizationMetadata.bind(this)),{diff:s}=n.reduced??{};return s&&this.eventsHub?.emit("datamodel:diff",{diff:s}),n}recomputeDomains(t){this.domainManager.recomputeDomains(t)}warnDataMissingProperties(t){this.dataExtractor.warnDataMissingProperties(t)}processScopeCache(){this.scopeCacheManager.processScopeCache()}valueGroupIdxLookup(t){return this.scopeCacheManager.valueGroupIdxLookup(t)}valueIdxLookup(t,e){return this.scopeCacheManager.valueIdxLookup(t,e)}extractData(t){return this.dataExtractor.extractData(t)}reprocessGroupProcessors(t,e){const{groupProcessors:i}=this,{columns:n}=t;for(const a of i)if(!a.supportsReprocessing)throw new Error("AG Charts - attempted to reprocess group processor that does not support reprocessing. This is an internal error that should not occur.");const s=US(e);for(const a of i){const o=this.valueGroupIdxLookup(a),r=a.adjust()();for(const l of s){const{indexMap:c}=l;for(const u of c.spliceOps)if(u.insertCount>0)for(let d=0;dr.get(n)).filter(r=>r!=null),o=a.map(()=>{});return aB.evaluateRange(t,i,{rawData:s,keyColumns:a,keysParam:o},0,s.length)}postProcessData(t){t.reduced??(t.reduced={});for(const i of this.processors)t.reduced[i.property]=i.calculate(t,t.reduced[i.property]);const{diff:e}=t.reduced;e&&this.eventsHub?.emit("datamodel:diff",{diff:e})}initDataDomainProcessor(t){return this.domainManager.initDataDomainProcessor(t)}collectOptimizationMetadata(t,e){const i=t.optimizations?.domainBanding,n=t[ip];this.reducers.length>0&&n&&this.collectReducerBandingMetadata(t,n);const s=t.optimizations?.reducerBanding;t.optimizations={performance:{processingTime:t.time,pathTaken:e},...i&&{domainBanding:i},...s&&{reducerBanding:s}};const a=this.isReprocessingSupported(t),o=e==="reprocess";let r;if(!a){const l=[];if(t.type==="grouped"){t.groupsUnique||l.push("groupsUnique=false"),this.getUniqueDataSets(t).size!==1&&l.push("multiple data sources");const u=Ra(t.scopes);t.invalidKeys?.get(u)?.some(g=>g)&&l.push("has invalid keys")}this.aggregates.length>0&&l.push("has aggregates"),this.reducers.filter(c=>!c.supportsBanding).length>0&&l.push("has reducers"),this.processors.filter(c=>c.incrementalCalculate===void 0).length>0&&l.push("has processors"),this.propertyProcessors.length>0&&l.push("has property processors"),r=l.length>0?l.join(", "):void 0}if(t.optimizations.reprocessing={applied:o,reason:r},t.type==="grouped"){let l=0;const c=t.groups[0];if(c){const u=c.datumIndices;for(const d of t.groups)d.datumIndices===u&&l++}t.optimizations.sharedDatumIndices={applied:l>0,sharedGroupCount:l,totalGroupCount:t.groups.length}}}collectReducerBandingMetadata(t,e){if(this.reducers.length===0)return;t.optimizations??(t.optimizations={});const i=[];for(const n of this.reducers){const s=e.get(n.property),a=this.shouldUseReducerBanding(n,t)&&s!=null;let o;a||(n.supportsBanding!==!0?o="reducer does not support banding":t.type!=="ungrouped"?o="grouped data not supported":n.combineResults===void 0?o="missing combineResults function":o="banding not applied");let r;a&&s&&(r=s.getStats()),i.push({property:String(n.property),applied:a,reason:o,stats:r})}t.optimizations.reducerBanding={reducers:i}}buildAccessors(t){return this.scopeCacheManager.buildAccessors(t)}};function b7(t){const e=(i,n)=>{n.length>0&&(pt.log(`DataModel.processData() - ${i}`),pt.table(n))};if(pt.log("DataModel.processData() - processedData",t),e("Key Domains",t.domain.keys),e("Value Domains",t.domain.values),e("Aggregate Domains",t.domain.aggValues??[]),t.optimizations){pt.log("DataModel.processData() - Optimization Summary");const i=t.optimizations;if(i.performance&&pt.log(` Performance: ${i.performance.processingTime.toFixed(2)}ms (${i.performance.pathTaken})`),i.reprocessing){const n=i.reprocessing.applied?"✓":"✗",s=i.reprocessing.reason?` (${i.reprocessing.reason})`:"";pt.log(` Reprocessing: ${n}${s}`)}if(i.domainBanding){const n=i.domainBanding.keyDefs.filter(r=>r.applied),s=i.domainBanding.valueDefs.filter(r=>r.applied),a=n.length+s.length,o=i.domainBanding.keyDefs.length+i.domainBanding.valueDefs.length;if(a>0){pt.log(` Domain Banding: ✓ (${a}/${o} definitions)`);for(const r of[...n,...s])if(r.stats){const l=(r.stats.scanRatio*100).toFixed(1);pt.log(` ${r.property}: scanned ${r.stats.dirtyBands}/${r.stats.totalBands} bands (${l}%)`)}}else{const r=[...i.domainBanding.keyDefs.filter(c=>!c.applied).map(c=>c.reason),...i.domainBanding.valueDefs.filter(c=>!c.applied).map(c=>c.reason)],l=[...new Set(r)].join(", ");pt.log(` Domain Banding: ✗ (${l})`)}}if(i.sharedDatumIndices){const n=i.sharedDatumIndices.applied?"✓":"✗",s=`${i.sharedDatumIndices.sharedGroupCount}/${i.sharedDatumIndices.totalGroupCount}`;pt.log(` Shared DatumIndices: ${n} (${s} groups)`)}if(i.batchMerging){const n=(i.batchMerging.mergeRatio*100).toFixed(0),s=`${i.batchMerging.originalBatchCount} → ${i.batchMerging.mergedBatchCount}`;pt.log(` Batch Merging: ${s} (${n}% reduction)`)}}}var FG=1e3;function HG(t,e,i){const n=t.filter(s=>typeof s=="number"&&Number.isFinite(s));return n.length>0?i(n):e}function rr(t){return t.input.count<=FG}function jG(t){return t!=null&&Af(t)}function x7(t){return t!=null}function v7(t){return!0}function GG(t,e){switch(t){case"number":case"log":case"time":case"unit-time":case"ordinal-time":case"color":return jG;default:return e?v7:x7}}function UG(t){switch(t){case"number":case"log":case"time":case"color":return"range";default:return"category"}}function uu(t,e,i={}){const n=i.allowNullKey??!1;return{property:t,type:"key",valueType:UG(e),validation:i.validation??GG(e,n),...i}}function Ci(t,e,i={}){const n=i.allowNullKey??!1;return{property:t,type:"value",valueType:UG(e),validation:i.validation??GG(e,n),...i}}function S7(t,e={}){return{property:t,type:"value",valueType:"range",missingValue:1,processor:function(){return function(){return 1}},...e}}var M7=function(t){return t};function WG(...t){const e=t.filter(i=>i!=null);return e.length===0?()=>M7:e.length===1?e[0]:function(){const n=e.map(s=>s());return function(a,o){return n.reduce((r,l)=>l(r,o),a)}}}function D7(t,e={}){const{min:i=-1/0,max:n=1/0,processor:s,...a}=e;return{type:"value",property:t,valueType:"range",validation:jG,processor:WG(s,function(){return function(l){return Ae(l)?Nt(i,l,n):l}}),...a}}function kN(t,e,i={}){const{onlyPositive:n,processor:s,...a}=i;return{...Ci(t,e,a),processor:WG(s,Wq(n))}}function A7(t,e,i={}){return{...Ci(t,e,i),processor:Kq()}}function Wd(t,e,i,n){return[Ci(t,n,i),P7(i.groupId,e,i.separateNegative),...i.rangeId==null?[]:[Gq(i.rangeId,i.groupId)]]}var KG={type:"reducer",property:"smallestKeyInterval",initialValue:1/0,reducer(){let t=Number.NaN;return function(i,n){const s=n[0],a=typeof s=="number"?s:Number(s);if(!Number.isFinite(a))return i;const o=t;if(t=a,!Number.isFinite(t))return i;const r=Math.abs(a-o),l=i??1/0;return r>0&&rMath.min(...e))},needsOverlap:!0},YG={type:"reducer",property:"largestKeyInterval",initialValue:-1/0,reducer(){let t=Number.NaN;return function(i,n){const s=n[0],a=typeof s=="number"?s:Number(s);if(!Number.isFinite(a))return i;const o=t;if(t=a,!Number.isFinite(t))return i;const r=Math.abs(a-o),l=i??-1/0;return r>0&&r>l?r:l}},supportsBanding:!0,combineResults(t){return HG(t,-1/0,e=>Math.max(...e))},needsOverlap:!0},I7={type:"processor",property:"sortedGroupDomain",calculate:function({domain:{groups:e}}){return e?.slice().sort((i,n)=>{for(let s=0;s{if(n===0)return 0;const s=(i??0)*t/n;return s>=0?Math.min(t,s):Math.max(-t,s)};return()=>()=>(i,n,s,a)=>{const o=C7(i,n,s,a);for(const r of n){const l=s.datumIndices[r];if(l!=null)for(const c of l){const u=a+c,d=i[r],g=d[u];if(g==null){d[u]=void 0;continue}d[u]=e(g,o)}}}}function C7(t,e,i,n){const s=[0,0];for(const a of e){const o=t[a],r=i.datumIndices[a];if(r!=null)for(const l of r){const c=n+l,u=o[c];if(u==null)continue;const d=typeof u=="number"?u:Math.max(...u.map(f=>f??0)),g=d<0?0:1;g===0?s[g]=Math.min(s[g],d):s[g]=Math.max(s[g],d)}}return Math.max(Math.abs(s[0]),s[1])}function jD(t,e){return{type:"group-value-processor",matchGroupIds:t,adjust:Wf({normaliseTo:e},k7)}}function w7({normaliseTo:t,zeroDomain:e,rangeMin:i,rangeMax:n}){const s=t[1]-t[0],a=function(r,l,c){const u=t[0]+(r-l)/c*s;return c===0?e:u>=t[1]?t[1]:uu.scopes.includes(t)&&u.id===e),r=s.defs.values.findIndex(u=>u.scopes.includes(t)&&u.id===i),l=s.columns[o],c=s.columns[r];if(l.length!==c.length)return!0;for(let u=0;uMath.abs(l[u]))return!0;return!1}}function T7(t,e,i){return{type:"processor",property:"filteredValueExceedUnfiltered",calculate:Wf([t,e,i],N7)}}var vb=1,AM=2;function L7(t,e,i){let n=vb|AM;if(t.valueType==="category")return e.lengtho)&&(n&=~AM),Number.isFinite(o)&&s===o&&(n&=~vb),s=o}return n}function O7(t){return function(i,n){if(!rr(i))return;const{keys:s,values:a}=i.defs,{input:o,domain:{values:r},columns:l}=i;let c=!0,u=!0;if(o.count!==0){const d=i[hu];for(let g=0;(c||u)&&g0){let g=vb|AM;for(let f=0;g!==0&&fA.get(t)),u=n.keys.map(A=>A.get(t)),d=e.columns,g=n.columns,f=z7(t,e,n);if(f==null)return s;const y=Math.max(e.input.count,n.input.count),x=n.defs.keys.some(A=>A.allowNullKey===!0);for(let A=0;A0||r.size>0||l.size>0,added:new Set(o.keys()),updated:new Set(r.keys()),removed:new Set(l.keys()),moved:new Set(a.keys())};return{...s,[t]:D}}}}function As(...t){if(t.length===1){const e=bM(t[0]);if(e===null)return bN;if(e===void 0)return xN;if(typeof e=="boolean"||typeof e=="number"||typeof e=="string")return e}return t.map(e=>{const i=bM(e);return i===null?bN:i===void 0?xN:i}).join("___")}var rB=class{constructor(t){this.maxAnimationTime=t,this.debug=Gt.create(!0,"animation"),this.controllers=new Map,this.stoppedCbs=new Set,this.currentPhase=0,this.phases=new Map(Ey.map(e=>[e,[]])),this.skipAnimations=!1,this.animationTimeConsumed=0,this.isReady=!1}get size(){return this.controllers.size}get consumedTimeMs(){return this.animationTimeConsumed}isActive(){return this.controllers.size>0}getActiveControllers(){return this.phases.get(Ey[this.currentPhase])??[]}checkOverlappingId(t){t!=null&&this.controllers.has(t)&&(this.controllers.get(t).stop(),this.debug(`Skipping animation batch due to update of existing animation: ${t}`),this.skip())}addAnimation(t){if(t.isComplete)return;if(Ey.indexOf(t.phase)=0&&e?.splice(i,1)}progress(t){if(!this.isReady)return;let e=t===0?.01:t;const i=()=>{const c=Ey[this.currentPhase];return{phaseControllers:[...this.getActiveControllers()],phase:c,phaseMeta:Zb[c]}};let{phase:n,phaseControllers:s,phaseMeta:a}=i();const o=()=>Ey[this.currentPhase]==null,r=()=>{for({phase:n,phaseControllers:s,phaseMeta:a}=i();!o()&&s.length===0;)this.currentPhase++,{phase:n,phaseControllers:s,phaseMeta:a}=i(),this.debug(`AnimationBatch - phase changing to ${n}`,{unusedTime:e},s)},l=this.controllers.size;this.debug(`AnimationBatch - ${t}ms; phase ${n} with ${s?.length} of ${l}`);do{const c=e,u=a.skipIfNoEarlierAnimations&&this.animationTimeConsumed===0;let d=0;for(const g of s)u?g.stop():e=Math.min(g.update(c),e),g.isComplete&&(d++,this.removeAnimation(g));this.animationTimeConsumed+=c-e,this.debug(`AnimationBatch - updated ${s.length} controllers; ${d} completed`,s),this.debug(`AnimationBatch - animationTimeConsumed: ${this.animationTimeConsumed}`),r()}while(e>0&&!o());this.animationTimeConsumed>this.maxAnimationTime&&(this.debug("Animation batch exceeded max animation time, skipping",[...this.controllers]),this.stop())}ready(){if(this.isReady)return;this.isReady=!0,this.debug(`AnimationBatch - ready; skipped: ${this.skipAnimations}`,[...this.controllers]);let t=!0;for(const[,e]of this.controllers)if(e.duration>0&&Zb[e.phase].skipIfNoEarlierAnimations!==!0){t=!1;break}if(!t)for(const[,e]of this.controllers)e.autoplay&&e.play(!0)}skip(t=!0){if(this.skipAnimations===!1&&t===!0){for(const e of this.controllers.values())e.stop();this.controllers.clear()}this.skipAnimations=t}play(){for(const t of this.controllers.values())t.play()}stop(){for(const t of this.controllers.values())try{t.stop(),this.removeAnimation(t)}catch(e){pt.error("Error during animation stop",e)}this.dispatchStopped()}stopByAnimationId(t){if(t!=null&&this.controllers.has(t)){const e=this.controllers.get(t);e&&(e.stop(),this.removeAnimation(e))}}stopByAnimationGroupId(t){for(const e of this.controllers.values())e.groupId===t&&this.stopByAnimationId(e.id)}dispatchStopped(){for(const t of this.stoppedCbs)t();this.stoppedCbs.clear()}isSkipped(){return this.skipAnimations}getRemainingTime(t){if(!this.isActive())return 0;let e=0;for(const[i,n]of this.phases)n.length!==0&&(t!=null&&t!==i||(e+=Math.max(...n.map(s=>s.isComplete?0:s.delay+s.duration-(s.elapsed??0)))));return e}destroy(){this.stop(),this.controllers.clear()}};function lB(t){return t==null?!0:!Number.isNaN(t)&&t>=0&&t<=2}var B7=class{constructor(t,e,i){this.agDocument=t,this.interactionManager=e,this.chartUpdateMutex=i,this.defaultDuration=1e3,this.maxAnimatableItems=FG,this.batch=new rB(this.defaultDuration*1.5),this.debug=Gt.create(!0,"animation"),this.events=new cr,this.rafAvailable=typeof requestAnimationFrame<"u",this.isPlaying=!0,this.requestId=null,this.skipAnimations=!0,this.currentAnonymousAnimationId=0,this.cumulativeAnimationTime=0}addListener(t,e){return this.events.on(t,e)}animate(t){const e=this.batch;try{e.checkOverlappingId(t.id)}catch(r){this.failsafeOnError(r);return}let{id:i}=t;i==null&&(i=`__${this.currentAnonymousAnimationId}`,this.currentAnonymousAnimationId+=1);const n=this.isSkipped()&&!t.forceAnimation||t.phase==="none";n&&this.debug("AnimationManager - skipping animation");const{delay:s,duration:a}=t;if(!lB(s))throw new Error(`Animation delay of ${s} is unsupported (${i})`);if(!lB(a))throw new Error(`Animation duration of ${a} is unsupported (${i})`);const o=new Oq({...t,id:i,skip:n,autoplay:this.isPlaying?t.autoplay:!1,phase:t.phase,defaultDuration:this.defaultDuration});if(!this.forceTimeJump(o,this.defaultDuration))return this.batch.addAnimation(o),o}play(){if(!this.isPlaying){this.isPlaying=!0,this.debug("AnimationManager.play()");try{this.batch.play()}catch(t){this.failsafeOnError(t)}this.requestAnimation()}}stop(){this.isPlaying=!1,this.cancelAnimation(),this.debug("AnimationManager.stop()"),this.batch.stop()}stopByAnimationId(t){try{this.batch.stopByAnimationId(t)}catch(e){this.failsafeOnError(e)}}stopByAnimationGroupId(t){try{this.batch.stopByAnimationGroupId(t)}catch(e){this.failsafeOnError(e)}}reset(){this.isPlaying?(this.stop(),this.play()):this.stop()}skip(t=!0){this.skipAnimations=t}isSkipped(){return!this.rafAvailable||this.skipAnimations||this.batch.isSkipped()}isActive(){return this.isPlaying&&this.batch.isActive()}getRemainingTime(t){return this.batch.getRemainingTime(t)}getCumulativeAnimationTime(){return this.cumulativeAnimationTime}skipCurrentBatch(){this.debug.check()&&this.debug("AnimationManager - skipCurrentBatch()",{stack:new Error("Stack trace for animation skip tracking").stack}),this.batch.skip()}isSkippingFrames(){return!0}scheduleAnimationFrame(t){this.requestId=this.agDocument.requestAnimationFrame(e=>{t(e).catch(i=>pt.error(i))})}forceTimeJump(t,e){return!1}requestAnimation(){if(!this.rafAvailable||!this.batch.isActive()||this.requestId!==null)return;let t;const e=async i=>{await this.debug.group("AnimationManager.onAnimationFrame()",async()=>{const n=()=>{const s=i-(t??i);t=i,this.debug("AnimationManager",{controllersCount:this.batch.size,deltaTime:s}),this.interactionManager.pushState(4);try{this.batch.progress(s),this.cumulativeAnimationTime+=s}catch(a){this.failsafeOnError(a)}this.events.emit("animation-frame",{type:"animation-frame",deltaMs:s})};this.isSkippingFrames()?await this.chartUpdateMutex.acquireImmediately(n):await this.chartUpdateMutex.acquire(n),this.batch.isActive()?this.scheduleAnimationFrame(e):(this.batch.stop(),this.events.emit("animation-stop",{type:"animation-stop",deltaMs:this.batch.consumedTimeMs}))})};this.events.emit("animation-start",{type:"animation-start",deltaMs:0}),this.scheduleAnimationFrame(e)}cancelAnimation(){this.requestId!==null&&(this.agDocument.cancelAnimationFrame(this.requestId),this.events.emit("animation-stop",{type:"animation-stop",deltaMs:this.batch.consumedTimeMs}),this.requestId=null,this.startBatch())}failsafeOnError(t,e=!0){pt.error("Error during animation, skipping animations",t),e&&this.cancelAnimation()}startBatch(t){this.debug(`AnimationManager - startBatch() with skipAnimations=${t}.`),this.reset(),this.batch.destroy(),this.batch=new rB(this.defaultDuration*1.5),t===!0&&this.batch.skip()}endBatch(){this.batch.isActive()?(this.batch.ready(),this.requestAnimation()):(this.interactionManager.popState(4),this.batch.isSkipped()&&this.batch.skip(!1))}onBatchStop(t){this.batch.stoppedCbs.add(t)}destroy(){this.stop(),this.events.clear()}},V7=class{constructor(){this.download={type:"action",showOn:"always",label:"contextMenuDownload",enabled:!0,action:void 0,items:void 0},this["zoom-to-cursor"]={type:"action",showOn:"series-area",label:"contextMenuZoomToCursor",enabled:!0,action:void 0,items:void 0},this["pan-to-cursor"]={type:"action",showOn:"series-area",label:"contextMenuPanToCursor",enabled:!0,action:void 0,items:void 0},this["reset-zoom"]={type:"action",showOn:"series-area",label:"contextMenuResetZoom",enabled:!0,action:void 0,items:void 0},this["toggle-series-visibility"]={type:"action",showOn:"legend-item",label:"contextMenuToggleSeriesVisibility",enabled:!0,action:void 0,items:void 0},this["toggle-other-series"]={type:"action",showOn:"legend-item",label:"contextMenuToggleOtherSeries",enabled:!0,action:void 0,items:void 0},this.separator={type:"separator",showOn:"always",label:"separator",enabled:!0,action:void 0,items:void 0}}},_7=class{constructor(){this.defaults=["download","zoom-to-cursor","pan-to-cursor","reset-zoom","toggle-series-visibility","toggle-other-series"]}},F7=class{constructor(){this.items=new V7,this.lists=new _7}},$G=class{constructor(e){this.eventsHub=e,this.builtins=new F7,this.hiddenActions=new Set,this.toggle("zoom-to-cursor","hide"),this.toggle("pan-to-cursor","hide"),this.toggle("reset-zoom","hide")}static check(e,i){return i.showOn==e}static checkCallback(e,i,n){return e===i}dispatchContext(e,i,n,s){const{widgetEvent:a}=i;if(a.sourceEvent.defaultPrevented)return;const o=s?.x??i.canvasX,r=s?.y??i.canvasY,l={showOn:e,x:o,y:r,context:n,widgetEvent:a};this.eventsHub.emit("context-menu:setup",l),this.eventsHub.emit("context-menu:complete",l)}isVisible(e){return!this.hiddenActions.has(e)}toggle(e,i){switch(i??(i=this.isVisible(e)?"hide":"show"),i){case"show":this.hiddenActions.delete(e);break;case"hide":this.hiddenActions.add(e);break}}},XG=class ZG{constructor(e){this.eventsHub=e,this.highlightStates=new DM,this.pendingUnhighlights=new Map,this.unhighlightDelay=100,this.highlightInViewport=!0}updateHighlight(e,i,n=!1,s){const a=this.getActiveHighlight();if(i==null&&n&&this.unhighlightDelay>0){if(!this.pendingUnhighlights.has(e)){const r=RT(()=>{this.applyPendingUnhighlight(e)});this.pendingUnhighlights.set(e,{scheduler:r}),r.schedule(this.unhighlightDelay)}return}const o=this.pendingUnhighlights.get(e);o&&(o.scheduler.cancel(),this.pendingUnhighlights.delete(e)),i?this.highlightStates.set(e,i):this.highlightStates.delete(e),this.maybeEmitChange(e,a,s)}maybeEmitChange(e,i,n){const s=n??!0,a=this.getActiveHighlight();if(!this.isEqual(a,i)||this.highlightInViewport!==s){const o=a?.series?.isHighlightEnabled()===!1;this.highlightInViewport=s,this.eventsHub.emit(ZG.HIGHLIGHT_CHANGE_EVENT,{callerId:e,currentHighlight:a,previousHighlight:i,highlightSuppressed:o,highlightInViewport:s})}}applyPendingUnhighlight(e){if(!this.pendingUnhighlights.has(e))return;this.pendingUnhighlights.delete(e);const i=this.getActiveHighlight();this.highlightStates.delete(e),this.maybeEmitChange(e,i,!0)}getActiveHighlight(){return this.highlightStates.stateValue()}destroy(){for(const{scheduler:e}of this.pendingUnhighlights.values())e.cancel();this.pendingUnhighlights.clear()}isEqual(e,i){return e===i?!0:e!=null&&i!=null&&e.series===i.series&&this.idsMatch(e,i)&&this.pointsMatch(e,i)&&e.datum===i.datum}idsMatch(e,i){return e.itemId!=null&&i.itemId!=null&&e.itemId===i.itemId||e.datumIndex!=null&&i.datumIndex!=null&&ks(e.datumIndex,i.datumIndex)}pointsMatch(e,i){return this.pointsAreEqual(e.point,i.point)&&this.pointsAreEqual(e.midPoint,i.midPoint)&&this.pointsAreEqual(e.xBar?.lowerPoint,i.xBar?.lowerPoint)&&this.pointsAreEqual(e.xBar?.upperPoint,i.xBar?.upperPoint)&&this.pointsAreEqual(e.yBar?.lowerPoint,i.yBar?.lowerPoint)&&this.pointsAreEqual(e.yBar?.upperPoint,i.yBar?.upperPoint)}pointsAreEqual(e,i){return e===i||e!==void 0&&i!==void 0&&e.x===i.x&&e.y===i.y}};XG.HIGHLIGHT_CHANGE_EVENT="highlight:change";var qG=XG,QG=(t=>(t[t.None=0]="None",t[t.Item=1]="Item",t[t.Series=2]="Series",t[t.OtherSeries=3]="OtherSeries",t[t.OtherItem=4]="OtherItem",t))(QG||{}),UT=[0,1,2,3,4];function H7(t){switch(t){case 1:return["highlightedItem","highlightedSeries"];case 4:return["unhighlightedItem","highlightedSeries"];case 2:return["highlightedSeries"];case 3:return["unhighlightedSeries"];case 0:return[]}}function em(t){const e=i=>i;switch(t){case 1:return"highlighted-item";case 4:return"unhighlighted-item";case 2:return"highlighted-series";case 3:return"unhighlighted-series";case 0:return"none";default:return e(t)}}var _u=class extends xt{};T([b],_u.prototype,"fill",2);T([b],_u.prototype,"fillOpacity",2);T([b],_u.prototype,"stroke",2);T([b],_u.prototype,"strokeWidth",2);T([b],_u.prototype,"strokeOpacity",2);T([b],_u.prototype,"lineDash",2);T([b],_u.prototype,"lineDashOffset",2);var Hc=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.range="tooltip",this.bringToFront=!0,this.highlightedItem={},this.unhighlightedItem={},this.highlightedSeries={},this.unhighlightedSeries={}}getStyle(e){const i=H7(e);return i.length===0?{}:Et(...i.map(n=>this[n]))}};T([b],Hc.prototype,"enabled",2);T([b],Hc.prototype,"range",2);T([b],Hc.prototype,"bringToFront",2);T([b],Hc.prototype,"highlightedItem",2);T([b],Hc.prototype,"unhighlightedItem",2);T([b],Hc.prototype,"highlightedSeries",2);T([b],Hc.prototype,"unhighlightedSeries",2);var Ol=class extends xt{constructor(){super(...arguments),this.fill="#c16068",this.fillOpacity=1,this.stroke="#874349",this.strokeWidth=2,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}};T([b],Ol.prototype,"start",2);T([b],Ol.prototype,"stop",2);T([b],Ol.prototype,"fill",2);T([b],Ol.prototype,"fillOpacity",2);T([b],Ol.prototype,"stroke",2);T([b],Ol.prototype,"strokeWidth",2);T([b],Ol.prototype,"strokeOpacity",2);T([b],Ol.prototype,"lineDash",2);T([b],Ol.prototype,"lineDashOffset",2);var UD=class{constructor(){this.key="x",this.segments=new ss(Ol)}};T([b],UD.prototype,"enabled",2);T([b],UD.prototype,"key",2);T([b],UD.prototype,"segments",2);var Fu=class extends xt{constructor(){super(...arguments),this.type="gradient",this.colorStops=[],this.bounds="item",this.gradient="linear",this.rotation=0,this.reverse=!1,this.colorSpace="rgb"}};T([b],Fu.prototype,"type",2);T([b],Fu.prototype,"colorStops",2);T([b],Fu.prototype,"bounds",2);T([b],Fu.prototype,"gradient",2);T([b],Fu.prototype,"rotation",2);T([b],Fu.prototype,"reverse",2);T([b],Fu.prototype,"colorSpace",2);var En=class extends xt{constructor(){super(...arguments),this.type="pattern",this.colorStops=[],this.bounds="item",this.gradient="linear",this.rotation=0,this.scale=1,this.reverse=!1,this.pattern="forward-slanted-lines",this.width=26,this.height=26,this.padding=6,this.fill="black",this.fillOpacity=1,this.backgroundFill="white",this.backgroundFillOpacity=1,this.stroke="black",this.strokeOpacity=1,this.strokeWidth=0}};T([b],En.prototype,"type",2);T([b],En.prototype,"colorStops",2);T([b],En.prototype,"bounds",2);T([b],En.prototype,"gradient",2);T([b],En.prototype,"rotation",2);T([b],En.prototype,"scale",2);T([b],En.prototype,"reverse",2);T([b],En.prototype,"path",2);T([b],En.prototype,"pattern",2);T([b],En.prototype,"width",2);T([b],En.prototype,"height",2);T([b],En.prototype,"padding",2);T([b],En.prototype,"fill",2);T([b],En.prototype,"fillOpacity",2);T([b],En.prototype,"backgroundFill",2);T([b],En.prototype,"backgroundFillOpacity",2);T([b],En.prototype,"stroke",2);T([b],En.prototype,"strokeOpacity",2);T([b],En.prototype,"strokeWidth",2);var jc=class extends xt{constructor(){super(...arguments),this.type="image",this.url="",this.rotation=0,this.scale=1,this.backgroundFill="black",this.backgroundFillOpacity=1,this.repeat="no-repeat",this.fit="contain"}};T([b],jc.prototype,"type",2);T([b],jc.prototype,"url",2);T([b],jc.prototype,"rotation",2);T([b],jc.prototype,"scale",2);T([b],jc.prototype,"backgroundFill",2);T([b],jc.prototype,"backgroundFillOpacity",2);T([b],jc.prototype,"repeat",2);T([b],jc.prototype,"fit",2);var Fr=class extends xt{constructor(){super(...arguments),this.visible=!0,this.focusPriority=1/0,this.showInLegend=!0,this.cursor="default",this.nodeClickRange="exact",this.highlight=new Hc}handleUnknownProperties(e,i){"context"in i&&(this.context=i.context,e.delete("context")),"allowNullKeys"in i&&(this.allowNullKeys=i.allowNullKeys,e.delete("allowNullKeys"))}};T([b],Fr.prototype,"id",2);T([b],Fr.prototype,"visible",2);T([b],Fr.prototype,"focusPriority",2);T([b],Fr.prototype,"showInLegend",2);T([b],Fr.prototype,"cursor",2);T([b],Fr.prototype,"nodeClickRange",2);T([b],Fr.prototype,"highlight",2);function cB(t,e){if(e.length===0)return[!1,!1];const i=e[0],n=e.at(-1);if(typeof i=="string"||i===null||i===void 0)return[t===i,t===n];if(t==null)return[!1,!1];const s=t.valueOf();if(i==null||n==null)return[!1,!1];let a=i.valueOf(),o=n.valueOf();return a>o&&([a,o]=[o,a]),[s===a,s===o]}function WT(t,e,i,n,s,a){const[o,r]=cB(e,a),[l,c]=cB(t,s);return{xKey:i,yKey:n,xValue:t,yValue:e,first:l,last:c,min:o,max:r}}function Qb(t,e,[i,n],s){let a=vf(0,e-1,r=>{const l=t===1?r:e-r,c=s(l)?.[1]??Number.NaN;return!Number.isFinite(c)||c>=i})??0,o=Dr(0,e-1,r=>{const l=t===1?r:e-r,c=s(l)?.[0]??Number.NaN;return!Number.isFinite(c)||c<=n})??e-1;return t===-1&&([a,o]=[e-o,e-a]),a=Math.max(a,0),o=Math.min(o+1,e),[a,o]}function KT(t,e,i){if(i){const{x:s,y:a,width:o,height:r}=i;return{canvasX:s+o/2,canvasY:a+r/2}}const n=e.yBar?.upperPoint??e.midPoint??t.datumMidPoint?.(e);if(n){const{x:s,y:a}=Ti.toCanvasPoint(t.contentGroup,n.x,n.y);return{canvasX:Math.round(s),canvasY:Math.round(a)}}}function j7(t,e,i,n,s){let a=-1,o=0,r=0,l=!1;for(;o=0&&(r+=1),l&&r<0&&(r-=1),ce){l=!0;continue}s(c)&&(o+=1)}return o}function YT(t){const e={};for(const i of UT)e[i]=t(void 0,!1,i);return e}function G7(t,...e){const i={};for(const n of e??["default"])for(const s of UT){const a=i[n]??(i[n]={});a[s]=t(void 0,!1,s,n)}return i}function CN(t){return(t?.opacity??1)<1||(t?.fillOpacity??1)<1||(t?.strokeOpacity??1)<1}var hB=new Map;function U7(t){if(t==null)return!1;const e=t.fill;if(!zi(e))return!1;const i=e.trim(),n=i.toLowerCase();if(n==="transparent"||n==="none")return!1;let s=hB.get(i);if(s==null){try{s=se.fromString(i).a===1}catch{s=!1}hB.set(i,s)}return s}function W7(t,e){return t!=="cutout"?t:U7(e)?"cutout":"overlay"}function JG(t,e,i){for(const n of e??[])switch(typeof t){case"string":if(n.itemId===t)return n;if(n.itemId===void 0&&i!==void 0){const s=n.datum?.[i];if(s!=null&&String(s)===t)return n}break;case"number":if(n.datumIndex===t||n.itemId===void 0&&i!==void 0&&n.datum?.[i]===t)return n;break;default:return t}}var IM=class{constructor(e,i,n,s){this.domManager=n,this.tooltip=s,this.stateTracker=new DM,this.suppressState=new DM(!1),this.appliedState=null,this.pendingRemovals=new Map,this.removeDelay=100,this.cleanup=new qe,this.cleanup.register(s.setup(i,n),e.on("dom:hidden",()=>this.tooltip.hide()))}destroy(){for(const{scheduler:e}of this.pendingRemovals.values())e.cancel();this.pendingRemovals.clear(),this.cleanup.flush()}updateTooltip(e,i,n,s){const a=this.pendingRemovals.get(e);a&&(a.scheduler.cancel(),this.pendingRemovals.delete(e)),n??(n=this.stateTracker.get(e)?.content),this.stateTracker.set(e,{meta:i,content:n,pagination:s}),this.applyStates()}removeTooltip(e,i,n=!1){if(n&&this.removeDelay>0){const a=this.pendingRemovals.get(e);if(a){i&&(a.lastMeta=i);return}const o=RT(()=>{this.applyPendingRemoval(e)});this.pendingRemovals.set(e,{scheduler:o,lastMeta:i}),o.schedule(this.removeDelay);return}const s=this.pendingRemovals.get(e);s&&(s.scheduler.cancel(),this.pendingRemovals.delete(e)),this.stateTracker.delete(e),this.applyStates()}suppressTooltip(e){this.suppressState.set(e,!0)}unsuppressTooltip(e){this.suppressState.delete(e)}applyPendingRemoval(e){this.pendingRemovals.has(e)&&(this.pendingRemovals.delete(e),this.stateTracker.delete(e),this.applyStates())}applyStates(){const e=this.stateTracker.stateId(),i=e?this.stateTracker.get(e):void 0;if(this.suppressState.stateValue()||i?.meta==null||i?.content==null){this.appliedState=null,this.tooltip.hide();return}const n=this.domManager.getBoundingClientRect(),s=this.tooltip.bounds==="extended"?this.domManager.getOverlayClientRect():n;if(ks(this.appliedState?.content,i?.content)&&ks(this.appliedState?.pagination,i?.pagination)){const a=this.tooltip.isVisible();this.tooltip.show(s,n,i?.meta,null,void 0,a)}else this.tooltip.show(s,n,i?.meta,i?.content,i?.pagination);this.appliedState=i}static makeTooltipMeta(e,i,n,s){const{canvasX:a,canvasY:o}=e,r=i.properties.tooltip,{placement:l,anchorTo:c,xOffset:u,yOffset:d}=r.position,g=KT(i,n,s);return{canvasX:a,canvasY:o,nodeCanvasX:g?.canvasX??a,nodeCanvasY:g?.canvasY??o,enableInteraction:r.interaction?.enabled??!1,showArrow:r.showArrow,position:{placement:l,anchorTo:c,xOffset:u,yOffset:d}}}},uB=3,K7=505,dB=30;function TC(t,e){const{device:i,offsetX:n,offsetY:s,clientX:a,clientY:o,currentX:r,currentY:l,sourceEvent:c}=e;return{type:t,device:i,offsetX:n,offsetY:s,clientX:a,clientY:o,currentX:r,currentY:l,sourceEvent:c}}function pB(t,e){const i=t*t+e*e,n=uB*uB;return i>=n}function Y7(t,e){const i=t.clientX-e.clientX,n=t.clientY-e.clientY,s=i*i+n*n,a=dB*dB;return s=2){const i=e[0];this.domainNeedsValueOf=i!=null&&typeof i=="object",this.domainNeedsValueOf?(this.d0Cache=e[0].valueOf(),this.d1Cache=e[1].valueOf()):(this.d0Cache=e[0],this.d1Cache=e[1])}else this.d0Cache=Number.NaN,this.d1Cache=Number.NaN}normalizeDomains(...e){return e3(...e)}calcBandwidth(e=1,i=1){const{domain:n}=this,s=this.getPixelRange();if(n.length===0)return s;let o=Math.abs(this.d1Cache-this.d0Cache)/e+1;if(i!==0){const r=Math.floor(s);o=Math.min(o,r)}return s/Math.max(1,o)}convert(e,i){const{domain:n}=this;if(!n||n.length<2||e==null)return Number.NaN;const{range:s}=this,a=i?.clamp??this.defaultClamp;let o=this.d0Cache,r=this.d1Cache,l=typeof e=="number"?e:e.valueOf();if(this.transform&&(o=this.transform(o),r=this.transform(r),l=this.transform(l)),a){const[u,d]=xi([o,r]);if(ld)return s[1]}if(o===r)return(s[0]+s[1])/2;if(l===o)return s[0];if(l===r)return s[1];const c=s[0];return c+(l-o)/(r-o)*(s[1]-c)}invert(e,i){const{domain:n}=this;if(n.length<2)return;let s=this.d0Cache,a=this.d1Cache;this.transform&&(s=this.transform(s),a=this.transform(a));const{range:o}=this,[r,l]=o;let c;return r===l?c=this.toDomain((s+a)/2):c=this.toDomain(s+(e-r)/(l-r)*(a-s)),this.transformInvert?this.transformInvert(c):c}getDomainMinMax(){return RD(this.domain)}getPixelRange(){const[e,i]=this.range;return Math.abs(i-e)}};t3.defaultTickCount=5;var ti=t3;function e3(...t){let e,i=1/0,n,s=-1/0;for(const a of t){const o=a.domain;for(const r of o){const l=r.valueOf();ls&&(s=l,n=r)}}return e!=null&&n!=null?{domain:[e,n],animatable:!0}:{domain:[],animatable:!1}}var $T=class i3 extends OD{constructor(){super(...arguments),this.invalid=!0,this.range=[0,1],this.round=!1,this._bandwidth=1,this._step=1,this._inset=1,this._rawBandwidth=1,this._paddingInner=0,this._paddingOuter=0}static is(e){return e instanceof i3}get bandwidth(){return this.refresh(),this._bandwidth}get step(){return this.refresh(),this._step}get inset(){return this.refresh(),this._inset}get rawBandwidth(){return this.refresh(),this._rawBandwidth}set padding(e){e=Nt(0,e,1),this._paddingInner=e,this._paddingOuter=e}get padding(){return this._paddingInner}set paddingInner(e){this.invalid=!0,this._paddingInner=Nt(0,e,1)}get paddingInner(){return this._paddingInner}set paddingOuter(e){this.invalid=!0,this._paddingOuter=Nt(0,e,1)}get paddingOuter(){return this._paddingOuter}getBandCountForUpdate(){return this.bands.length}refresh(){this.invalid&&(this.invalid=!1,this.update(),this.invalid&&pt.warnOnce("Expected update to not invalidate scale"))}convert(e,i){this.refresh();const n=this.findIndex(e,i?.alignment,i?.alignmentExclusive);return n==null||n<0||n>=this.getBandCountForUpdate()?Number.NaN:this.ordinalRange(n)}getDomainMinMax(){return RD(this.domain)}invertNearestIndex(e){this.refresh();const i=this.getBandCountForUpdate();if(i===0)return-1;let n=0,s=i-1,a=1/0,o=0;for(;n<=s;){const r=Math.trunc((s+n)/2),l=this.ordinalRange(r),c=Math.abs(l-e);if(c===0)return r;c0,c=l?Math.floor(r):r;let u=e+(o-c*(a-n))/2,d=c*(1-n);l&&(u=Math.round(u),d=Math.round(d)),this._step=c,this._inset=u,this._bandwidth=d,this._rawBandwidth=r*(1-n)}ordinalRange(e){const{_inset:i,_step:n,range:s}=this,a=Math.min(s[0],s[1]),o=Math.max(s[0],s[1]);return Nt(a,i+n*e,o)}};T([ED],$T.prototype,"range",2);T([ED],$T.prototype,"round",2);var Rr=$T,Z7=1e3,gB=20;function fB(t,e=0,i=t.length-1){const n=i-e+1;if(n<2)return{isUniform:!1};if(e<0||i>=t.length)return{isUniform:!1};const s=Array.from({length:gB},(l,c)=>e+Math.floor(c*(n-1)/(gB-1))),a=s.map(l=>t[l].valueOf()),o=(a.at(-1)-a[0])/(n-1);if(!Number.isFinite(o)||o===0)return{isUniform:!1};const r=Math.abs(o*.01);for(let l=1;lr)return{isUniform:!1}}return{isUniform:!0,interval:o}}var Gc=class n3 extends Rr{static is(e){return e instanceof n3}toDomain(e){return new Date(e)}get reversed(){const{domain:e}=this;return e.length>0&&e[0].valueOf()>e.at(-1).valueOf()}get numericBands(){return this.bands.map(e=>e.valueOf())}convert(e,i){this.refresh(),e instanceof Date||(e=new Date(e));const{domain:n,reversed:s}=this,a=this.numericBands,o=a.length;if(n.length<=0)return Number.NaN;const r=this.ordinalRange(0),l=this.ordinalRange(o-1);if(o===0)return r;if(i?.clamp===!0){const{range:I}=this;if(e.valueOf()a.at(-1))return I[1]}if((i?.alignment??wi.Leading)!==wi.Interpolate){const I=super.convert(e,i);return s?l-(I-r):I}const u=e.valueOf();let d=this.findIndex(e)??0,g;s?(d=Math.min(Math.max(d,1),o-1),g=-1):(d=Math.min(Math.max(d,0),o-2),g=1);const f=a[d],y=a[d+g],x=this.ordinalRange(d),S=this.ordinalRange(d+g),A=(u-f)/(y-f)*(S-x)+x;return s?l-(A-r):A}invert(e,i=!1){this.refresh();const{domain:n}=this;if(n.length<=0)return;const s=this.bands,a=this.getBandCountForUpdate(),o=n[0].valueOf()>n.at(-1).valueOf();let r;return i?r=this.invertNearestIndex(e-this.bandwidth/2):r=vf(0,a-1,c=>this.ordinalRange(c)>=e)??a-1,s[o?a-1-r:r]}getUniformityCache(e){}findIndex(e,i=wi.Leading,n=!1){if(e==null)return;const s=this.numericBands,a=s.length;if(a===0)return;if(a===1)return 0;const o=e.valueOf();return i===wi.Trailing!==n?vf(0,a-1,l=>s[l]>=o):Dr(0,a-1,l=>s[l]<=o)}},s3=(t=>(t[t.None=0]="None",t[t.WhenViewportTooSmallScaleXYProportionally=1]="WhenViewportTooSmallScaleXYProportionally",t[t.WhenViewportTooSmallScaleXYDisproportionally=2]="WhenViewportTooSmallScaleXYDisproportionally",t))(s3||{});function Lh(t,e,i,n,s){return e+(n-e)*((s-t)/(i-t))}function mB(t,e,i,n,s){return t+(s-e)*((i-t)/(n-e))}function yB(t,e,i){return[mB(t,i.min,e,i.max,0),mB(t,i.min,e,i.max,1)]}function q7(t,e,i){const[n,s]=yB(t.x1,t.x2,e),[a,o]=yB(t.y1,t.y2,i);return{x1:n,x2:s,y1:a,y2:o}}function a3(t,e){const i=e.width>t.width,n=e.height>t.height;return{x:i,y:n}}function bB(t,e,i,n,s,a){if(i<=s&&a<=n)return i;const o=s-i,r=a-n,l=Math.abs(o)xe((e,{options:i})=>!ti.is(t?.scale)&&!Gc.is(t?.scale)||e==null||i.end==null?!0:e1)&&(pt.warnOnce(`Attempted to update axis (${e}) zoom to an invalid ratio of [{ min: ${n}, max: ${s} }], expecting a ratio of 0 to 1. Ignoring.`),delete t[e])}}function vB(t,e){const i={};for(const{id:n,direction:s}of t){const{min:a,max:o}=e[n]??{min:0,max:1};i[n]={min:a,max:o,direction:s}}return i}function SB(t,e){const i=hl(t),n=hl(e);if(i.length!==n.length)return!1;for(const s of i)if(!n.includes(s))return!1;for(const s of i){const a=t[s],o=e[s];if(a!==o&&(a==null||o==null||a.direction!==o.direction||a.min!==o.min||a.max!==o.max))return!1}return!0}function sQ(t){return{source:"user-interaction",sourceDetail:t}}var r3=class extends PT{constructor(t,e,i){super(),this.eventsHub=t,this.fireChartEvent=i,this.mementoOriginatorKey="zoom",this.state={},this.axes=[],this.didLayoutAxes=!1,this.lastRestoredState={},this.restoreRequiredRangeIterations=0,this.independentAxes=!1,this.navigatorModule=!1,this.zoomModule=!1,this.debug=Gt.create(!0,"zoom"),this.panToBBoxScalingMode=2,this.pendingMemento=void 0,this.cleanup.register(t.on("zoom:change-request",n=>{this.constrainZoomToRequiredWidth(n)}),e.addListener("pre-series-update",({requiredRangeRatio:n,requiredRangeDirection:s,requiredRange:a})=>{this.didLayoutAxes=!0;const{pendingMemento:o}=this;o?this.restoreMemento(o.version,o.mementoVersion,o.memento):this.restoreRequiredRange(n,s,a),this.updateZoom({source:"chart-update",sourceDetail:"unspecified"})}),e.addListener("update-complete",({wasShortcut:n})=>{if(!n&&this.pendingZoomEventSource){const s=this.pendingZoomEventSource;this.fireChartEvent({type:"zoom",source:s,...this.getMementoRanges()}),this.pendingZoomEventSource=void 0}}))}toCoreZoomState(t){const e={};let i;const{state:n}=this;if(this.independentAxes){const s=this.getPrimaryAxisId(z.X),a=this.getPrimaryAxisId(z.Y);i=[],s&&i.push(s),a&&i.push(a)}else i=hl(n);for(const s of i){const{direction:a}=n[s]??{};if(a!=null){const o=t[a];if(o){const{min:r,max:l}=o;e[s]={min:r,max:l,direction:a}}}}return e}toZoomState(t){let e,i;for(const n of hl(t)){const{min:s,max:a,direction:o}=t[n];o===z.X?e??(e={min:s,max:a}):o===z.Y&&(i??(i={min:s,max:a}))}if(e||i)return{x:e,y:i}}createMemento(){return this.getMementoRanges()}guardMemento(t,e){if(t==null)return!0;if(!Bt(t))return!1;const i=this.getPrimaryAxis(z.X),n=this.getPrimaryAxis(z.Y),s={rangeX:{start:xB(i),end:jt},rangeY:{start:xB(n),end:jt},ratioX:{start:jt,end:jt},ratioY:{start:jt,end:jt},autoScaledAxes:jt},{invalid:a}=ts(t,s);return a.length>0?(e.push(...a.map(String)),!1):!0}restoreMemento(t,e,i){if(!this.axes||!this.didLayoutAxes){this.pendingMemento={version:t,mementoVersion:e,memento:i};return}this.pendingMemento=void 0;const n=Ni(this.getZoom());i?.rangeX?n.x=this.rangeToRatioDirection(z.X,i.rangeX)??{min:0,max:1}:i?.ratioX?n.x={min:i.ratioX.start??0,max:i.ratioX.end??1}:n.x={min:0,max:1};const{navigatorModule:s,zoomModule:a}=this;this.eventsHub.emit("zoom:load-memento",{zoom:n,memento:i,navigatorModule:s,zoomModule:a});const o=this.toCoreZoomState(n);this.lastRestoredState=za(le(o)),this.updateChanges({source:"state-change",sourceDetail:"internal-restoreMemento",changes:o,isReset:!1})}findAxis(t){for(const e of this.axes)if(e.id===t)return e}getAxes(){return this.axes}setAxes(t){const{axes:e}=this;e.length=0;for(const s of t)"range"in s&&e.push(s);const i=this.state,n=vB(t,i);this.state=n,this.lastRestoredState=vB(t,this.lastRestoredState),this.updateChanges({source:"chart-update",sourceDetail:"internal-setAxes",changes:n,isReset:!1})}setIndependentAxes(t=!0){this.independentAxes=t}setNavigatorEnabled(t=!0){this.navigatorModule=t}setZoomModuleEnabled(t=!0){this.zoomModule=t}isNavigatorEnabled(){return this.navigatorModule}isZoomEnabled(){return this.zoomModule}updateZoom({source:t,sourceDetail:e},i){const n=this.toCoreZoomState(i??{});return this.updateChanges({source:t,sourceDetail:e,changes:n,isReset:!1})}computeChangedAxesIds(t){const e=[],i=this.state;for(const n of hl(t)){const s=t[n]??{min:0,max:1},a=i[n];(a==null||a.min!==s.min||a.max!==s.max)&&e.push(n)}return e}updateChanges(t){const{source:e,sourceDetail:i,isReset:n,changes:s}=t;nQ(s);const a=this.computeChangedAxesIds(s),o=le(this.state),r=le(this.state);for(const l of a){const c=r[l];c!=null&&(c.min=s[l]?.min??0,c.max=s[l]?.max??1)}return this.state=r,this.dispatch(e,i,a,n,o)}resetZoom({source:t,sourceDetail:e}){this.updateChanges({source:t,sourceDetail:e,changes:this.getRestoredZoom(),isReset:!0})}resetAxisZoom({source:t,sourceDetail:e},i){this.updateChanges({source:t,sourceDetail:e,changes:{[i]:this.getRestoredZoom()[i]},isReset:!0})}panToBBox(t,e){if(!this.isZoomEnabled()&&!this.isNavigatorEnabled())return!1;const i=this.getZoom();if(i===void 0||!i.x&&!i.y)return!1;const{panToBBoxScalingMode:n}=this;if(!(t.width>0&&t.height>0&&(n!==0||Math.abs(e.width)<=Math.abs(t.width)&&Math.abs(e.height)<=Math.abs(t.height))))return pt.warnOnce("cannot pan to target BBox - chart too small?"),!1;const a=J7(n,t,i,e),o=this.toCoreZoomState(a);return this.updateChanges({source:"user-interaction",sourceDetail:"internal-panToBBox",changes:o,isReset:!1})}fireZoomPanStartEvent(t){this.eventsHub.emit("zoom:pan-start",{callerId:t})}updateWith({source:t,sourceDetail:e},i,n){const s=this.getPrimaryAxis(i);if(!s)return;const a=s.scale.getDomainMinMax();if(!a)return;const[o,r]=s.visibleRange,l=this.getRange(s.id,{min:o,max:r});if(!l)return;const[c,u]=a,{start:d,end:g}=l,f=n(c,u,d,g,t);if(!this.isValidUpdateWithResult(f)){this.resetZoom({source:t,sourceDetail:e});return}const[y,x]=f,S=this.rangeToRatioAxis(s,{start:y,end:x});S&&this.updateChanges({source:t,sourceDetail:e,changes:{[i]:S},isReset:!1})}isValidUpdateWith(t,e,i){const n=this.getPrimaryAxis(t);if(!n)return!0;const s=n.scale.getDomainMinMax();if(!s)return!0;const[a,o]=n.visibleRange,r=this.getRange(n.id,{min:a,max:o});if(!r)return!0;const[l,c]=s,{start:u,end:d}=r,g=e(l,c,u,d,i);if(!this.isValidUpdateWithResult(g))return!0;const[f,y]=g;let x=!0;return f!=null&&x&&(x=f>=l),y!=null&&x&&(x=y<=c),f!=null&&y!=null&&x&&(x=f<=y),x}getZoom(){return this.toZoomState(this.state)}getAxisZoom(t){return this.state[t]??{min:0,max:1}}getAxisZooms(){return this.state}getCoreZoom(){return this.state}getRestoredZoom(){return this.lastRestoredState}getPrimaryAxisId(t){return this.getPrimaryAxis(t)?.id}getBoundSeries(){const t=this.getPrimaryAxis(z.X),e=this.getPrimaryAxis(z.Y);let i;if(this.independentAxes){const n=new Set(t?.boundSeries??[]),s=new Set(e?.boundSeries??[]);i=new Set;for(const a of n)s.has(a)&&i.add(a)}else i=new Set([...t?.boundSeries??[],...e?.boundSeries??[]]);return i}constrainZoomToItemCount(t,e,i){let n=[t.x.min,t.x.max],s=i?void 0:[t.y.min,t.y.max];for(const r of this.getBoundSeries()){const l=r.getZoomRangeFittingItems(n,s,e);l!=null&&(n=l.x,s=l.y)}const a={min:n[0],max:n[1]},o=s?{min:s[0],max:s[1]}:void 0;return Ni({x:a,y:o})}isVisibleItemsCountAtLeast(t,e,i){const n=this.getBoundSeries(),s=[t.x.min,t.x.max],a=!i.includeYVisibleRange&&i.autoScaleYAxis?void 0:[t.y.min,t.y.max];let o=0;for(const r of n){const l=e-(o??0),c=r.getVisibleItems(s,a,l);if(o+=c,o>=e)return!0}return n.size===0}getMementoRanges(){const t=Ni(this.getZoom()),e={rangeX:this.getRangeDirection(z.X,t.x),rangeY:this.getRangeDirection(z.Y,t.y),ratioX:{start:t.x.min,end:t.x.max},ratioY:{start:t.y.min,end:t.y.max},autoScaledAxes:void 0};return this.eventsHub.emit("zoom:save-memento",{memento:e}),e}restoreRequiredRange(t,e,i){const{lastRestoredRequiredRange:n,lastRestoredRequiredRangeDirection:s}=this;this.lastRequiredRange!==i&&(this.lastRequiredRange=i,this.restoreRequiredRangeIterations=0),this.restoreRequiredRangeIterations+=1;const a=e!==z.X&&e!==z.Y,o=s===e&&n===t,r=t===0&&(n==null||n===0);if(a||o||r||this.restoreRequiredRangeIterations>1){this.restoreRequiredRangeIterations=0;return}const l=this.getPrimaryAxisId(e);if(!l)return;const c=this.getAxisZoom(l),u=Math.min(1,1/t);let d=0,g=1;e===z.X?(d=Nt(0,1-u,c.min),g=Nt(0,d+u,1)):(g=Math.min(1,c.max),d=g-u,d<0&&(g-=d,d=0),d=Nt(0,d,1),g=Nt(0,g,1)),this.lastRestoredRequiredRange=t,this.lastRestoredRequiredRangeDirection=e;const f={[e]:{min:d,max:g}},y=this.toCoreZoomState(f);this.lastRestoredState=za(le(y)),this.updateChanges({source:"state-change",sourceDetail:"internal-requiredWidth",changes:y,isReset:!1})}constrainZoomToRequiredWidth(t){if(this.lastRestoredRequiredRange==null||this.lastRestoredRequiredRangeDirection==null)return;const e=this.lastRestoredRequiredRangeDirection,i=this.getPrimaryAxisId(this.lastRestoredRequiredRangeDirection);if(!i)return;const n=t.stateAsDefinedZoom(),s=t.oldState[i],a=n[e].max-n[e].min,o=1/this.lastRestoredRequiredRange;Math.abs(a-o)<1e-12||a<=o||t.constrainZoom({...n,[e]:{min:s.min,max:s.min+o}})}dispatch(t,e,i,n,s){const{x:a,y:o}=this.getZoom()??{},r=this.state;let l;const c=this.debug,u=this,d={source:t,sourceDetail:e,isReset:n,changedAxes:i,state:r,oldState:s,x:a,y:o,stateAsDefinedZoom(){return Ni(u.toZoomState(d.state))},constrainZoom(f){this.constrainChanges(u.toCoreZoomState(f))},constrainChanges(f){c.check()&&c("ZoomManager.constrainChanges()",r,"->",f,new Error().stack),l??(l=le(r));for(const y of hl(f)){const x=f[y],S=l[y];x&&S&&(S.min=x.min,S.max=x.max)}d.state=l}};this.eventsHub.emit("zoom:change-request",d),l&&!SB(r,l)&&(this.state=l);const g=!SB(s,this.state);if(g){const f=this.getZoom()??{};this.eventsHub.emit("zoom:change-complete",{source:t,sourceDetail:e,x:f.x}),this.pendingZoomEventSource=t}return g}getRange(t,e){return this.getRangeAxis(this.findAxis(t),e)}getRangeDirection(t,e){return this.getRangeAxis(this.getPrimaryAxis(t),e)}getRangeAxis(t,e){if(!t)return;const i=this.getDomainPixelExtents(t);if(!i)return;const[n,s]=i;let a,o;return n<=s?(a=t.scale.invert(0,!0),o=t.scale.invert(n+(s-n)*e.max,!0)):(a=t.scale.invert(n-(n-s)*e.min,!0),o=t.scale.invert(0,!0)),{start:a,end:o}}rangeToRatio(t,e){return this.rangeToRatioAxis(this.findAxis(t),e)}rangeToRatioDirection(t,e){return this.rangeToRatioAxis(this.getPrimaryAxis(t),e)}rangeToRatioAxis(t,e){if(!t)return;const i=this.getDomainPixelExtents(t);if(!i)return;const[n,s]=i,{scale:a}=t,{start:o,end:r}=e,[l=wi.Leading,c=wi.Trailing]=o3(o,r);let u=o==null?n:a.convert(o,{alignment:l,alignmentExclusive:!0}),d=r==null?s:a.convert(r,{alignment:c,alignmentExclusive:!0})+(a.bandwidth??0);if(!Ae(u)||!Ae(d))return;const[g,f]=[Math.min(n,s),Math.max(n,s)];u=Nt(g,u,f),d=Nt(g,d,f);const y=s-n;if(y===0)return;const x=Math.abs((u-n)/y),S=Math.abs((d-n)/y);if(!(x>=S))return{min:x,max:S}}getPrimaryAxis(t){return this.axes?.find(e=>e.direction===t)}getDomainPixelExtents(t){const[e,i]=t.scale.range;if(!(!Ae(e)||!Ae(i)))return[e,i]}isValidUpdateWithResult(t){return t==null||!Array.isArray(t)||t.length<1?!1:t.every(e=>e==null||typeof e=="number"||Ac(e))}},XT=(t=>(t[t.Caption=0]="Caption",t[t.Legend=1]="Legend",t[t.ToolbarLeft=2]="ToolbarLeft",t[t.ToolbarBottom=3]="ToolbarBottom",t[t.Scrollbar=4]="Scrollbar",t[t.Navigator=5]="Navigator",t[t.Overlay=6]="Overlay",t))(XT||{}),aQ=class{constructor(t){this.eventsHub=t,this.elements=new Map}registerElement(t,e){return this.elements.has(t)?this.elements.get(t).add(e):this.elements.set(t,new Set([e])),()=>this.elements.get(t)?.delete(e)}createContext(t,e){const i={width:t,height:e,layoutBox:new Tt(0,0,t,e),scrollbars:{}};for(const n of Object.values(XT)){if(typeof n!="number")continue;const s=this.elements.get(n);if(s)for(const a of s)a(i)}return i}emitLayoutComplete({width:t,height:e},i){this.eventsHub.emit("layout:complete",{axes:i.axes??{},chart:{width:t,height:e},clipSeries:i.clipSeries??!1,series:i.series,layoutBox:i.layoutBox})}},oQ=class{constructor(){this.labelData=new Map}updateLabels(t,e,i=Tt.zero){const n={x:-e.left,y:-e.top,width:i.width+e.left+e.right,height:i.height+e.top+e.bottom},s=new Set(t.map(o=>o.id));for(const o of this.labelData.keys())s.has(o)||this.labelData.delete(o);for(const o of t){const r=o.getLabelData();r.every(Wj)&&this.labelData.set(o.id,r)}const a=Kj(this.labelData,n,5);for(const o of t)o.updatePlacedLabelData?.(a.get(o.id)??[])}},rQ=class{constructor(t){this.eventsHub=t,this.mementoOriginatorKey="legend",this.legendDataMap=new Map}createMemento(){return this.getData().filter(({hideInLegend:t,isFixed:e})=>!t&&!e).map(({enabled:t,seriesId:e,itemId:i,legendItemName:n})=>({visible:t,seriesId:e,itemId:i,legendItemName:n}))}guardMemento(t){return t==null||qt(t)}restoreMemento(t,e,i){if(i)for(const n of i){const{seriesId:s,data:a}=this.getRestoredData(n)??{};!s||!a||this.updateData(s,a)}this.update()}getRestoredData(t){const{seriesId:e,itemId:i,legendItemName:n,visible:s}=t;if(e){const o=(this.legendDataMap.get(e)??[]).map(r=>{const l=r.seriesId===e&&(!i||r.itemId===i);return l&&r.isFixed&&this.warnFixed(r.seriesId,r.itemId),!r.isFixed&&l?{...r,enabled:s}:r});return{seriesId:e,data:o}}if(!(i==null&&n==null))for(const a of this.getData()){if(i!=null&&a.itemId!==i||n!=null&&a.legendItemName!==n)continue;if(a.isFixed){this.warnFixed(a.seriesId,i);return}const o=(this.legendDataMap.get(a.seriesId)??[]).map(r=>r.itemId===i||r.legendItemName===n?{...r,enabled:s}:r);return{seriesId:a.seriesId,data:o}}}warnFixed(t,e){pt.warnOnce(`The legend item with seriesId [${t}] and itemId [${e}] is not configurable, this series item cannot be toggled through the legend.`)}update(t){this.eventsHub.emit("legend:change",{legendData:t??this.getData()})}updateData(t,e=[]){this.eventsHub.emit("legend:change-partial",{seriesId:t,legendData:e}),this.legendDataMap.set(t,e)}clearData(){this.legendDataMap.clear()}toggleItem(t,e,i,n){if(n){for(const r of this.getData()){const l=(this.legendDataMap.get(r.seriesId)??[]).map(c=>c.legendItemName===n?{...c,enabled:t}:c);this.updateData(r.seriesId,l)}return}const s=this.getData(e),a=s.length===1,o=s.map(r=>i==null&&a||r.itemId===i?{...r,enabled:t}:r);this.updateData(e,o)}getData(t){return t?this.legendDataMap.get(t)??[]:[...this.legendDataMap].reduce((e,[i,n])=>e.concat(n),[])}getDatum({seriesId:t,itemId:e}={}){return this.getData(t).find(i=>i.itemId===e)}getSeriesEnabled(t){const e=this.getData(t);if(e.length>0)return e.some(i=>i.enabled)}getItemEnabled({seriesId:t,itemId:e}={}){return this.getDatum({seriesId:t,itemId:e})?.enabled??!0}},lQ=class{updateCallback(t){this.resolvePartialCallback=t}resolvePartial(t,e,i){return this.resolvePartialCallback?.(t,e,i)}},cQ=class extends Rr{constructor(){super(...arguments),this.type="category",this.defaultTickCount=0,this._hasFixedWidth=!1,this._paddingInnerWidth=0,this._domain=[],this._bandRanges=new Map}set domain(t){this._domain!==t&&(t.length===0&&(this._bandRanges.clear(),this._hasFixedWidth=!1),this.invalid=!0,this._domain=t)}get domain(){return this._domain}get bands(){return this.domain}get paddingInnerWidth(){return this._hasFixedWidth?this._paddingInnerWidth:this.paddingInner*this._bandwidth}addBand(t,e,i){this._domain.push(this.getDomainValue(t,e)),this._bandRanges.has(t)||this._bandRanges.set(t,new Map),this._bandRanges.get(t).set(e,i),this._hasFixedWidth||(this._hasFixedWidth=i!=null),this.invalid=!0}getDomainValue(t,e){return`${t}-${e}`}findIndex(t){let e=0;for(const i of this._bandRanges.keys()){if(i===t)return e;e++}}convert(t){const{_bandwidth:e,_bandRanges:i,_inset:n,_paddingInnerWidth:s}=this;let a=n;const o=t.split("-"),r=Number(o[0]);if(!this._hasFixedWidth)return super.convert(r);for(let l=0;l0&&u>=0?u/a:r/n,f=g;o===n&&u>0&&(d+=u/2),this.round&&Math.floor(f)>0&&(d=Math.round(d),f=Math.round(f)),u<0&&(g=0,f=0),this._inset=d,this._bandwidth=f,this._rawBandwidth=g,this._paddingInnerWidth=l}normalizeDomains(...t){return{domain:[],animatable:!1}}toDomain(t){}},hQ=class{constructor(){this.groups=new Map,this.groupScales=new Map}registerSeries({internalId:t,seriesGrouping:e,visible:i,width:n,type:s}){if(!e)return;let a=this.groups.get(s);a==null&&(a=new Map,this.groups.set(s,a)),a.set(t,{grouping:e,visible:i,width:n})}updateSeries({internalId:t,seriesGrouping:e,visible:i,width:n,type:s}){if(!e)return;const a=this.groups.get(s)?.get(t);a&&(a.grouping=e,a.width=n,a.visible=i)}deregisterSeries({internalId:t,type:e}){const i=this.groups.get(e);i!=null&&(i.delete(t),i.size===0&&this.groups.delete(e))}getVisiblePeerGroupIndex({type:t,seriesGrouping:e,visible:i}){if(!e)return{visibleGroupCount:i?1:0,visibleSameStackCount:i?1:0,index:0};const n=new Set,s=new Set,a=this.groups.get(t);for(const r of a?.values()??[])r.visible&&(n.add(r.grouping.groupIndex),r.grouping.groupIndex===e.groupIndex&&s.add(r.grouping.stackIndex));const o=Array.from(n);return o.sort((r,l)=>r-l),{visibleGroupCount:o.length,visibleSameStackCount:s.size,index:o.indexOf(e.groupIndex)}}updateGroupScale({type:t},e,i){const n=this.groupScales.get(t)??new cQ;this.groupScales.set(t,n),n.domain=[];const s=this.groups.get(t);for(const a of s?.values()??[])a.visible&&n.addBand(a.grouping.groupIndex,a.grouping.stackIndex,a.width);n.domain.length===0&&n.addBand(0,0,void 0),n.range=[0,e],i.type==="grouped-category"?n.paddingInner=i.groupPaddingInner:i.type==="category"||i.type==="unit-time"?(n.paddingInner=i.groupPaddingInner,n.round=n.padding!==0):n.padding=0,n.update()}getGroupScale({type:t}){return this.groupScales.get(t)}getGroupBandWidth(t){const{seriesGrouping:e}=t;if(!e)return 0;const i=this.getGroupScale(t);if(!i)return 0;const n=this.groups.get(t.type);if(!n)return i.bandwidth;let s=0;for(const a of n.values())a.visible&&a.grouping.groupIndex===e.groupIndex&&(s=Math.max(s,a.width??i.bandwidth));return s||i.bandwidth}getGroupOffset(t){const{seriesGrouping:e}=t;if(!e)return 0;const i=this.getGroupScale(t);if(!i)return 0;const n=i.getDomainValue(e.groupIndex,e.stackIndex);return i.convert(n)}getStackOffset(t,e){const{seriesGrouping:i}=t;if(!i)return 0;const n=this.groups.get(t.type);if(!n)return 0;const s=this.getGroupScale(t);if(!s||(i.stackCount??0)<1)return 0;let o=0;for(const r of n.values())r.visible&&r.grouping.groupIndex===i.groupIndex&&(o=Math.max(o,r.width??s.bandwidth));return o===0?0:o/2-e/2}getDatumOffset(t,e,i,n){const s=this.groups.get(t.type);if(!t.visible||!t.seriesGrouping||!s||e.get(t.internalId)?.[n]||i.get(t.internalId)?.[n])return 0;const a=new Set;for(const[g,f]of s)f.visible&&!e.get(g)?.[n]&&!i.get(g)?.[n]&&a.add(f.grouping.groupIndex);if(a.size===t.seriesGrouping?.groupCount)return 0;const o=this.groupScales.get(t.type),r=new Map,l=new Map;for(const[g,f]of s)g!==t.internalId&&f.visible&&(a.has(f.grouping.groupIndex)||(t.seriesGrouping.groupIndexf.grouping.groupIndex&&r.set(f.grouping.groupIndex,Math.max(f.width??o?.bandwidth??0,r.get(f.grouping.groupIndex)??0))));let c=0;for(const[,g]of l)c+=g;for(const[,g]of r)c-=g;c/=2;const u=(o?.paddingInnerWidth??0)/2,d=(l.size-r.size)*u;return c+d}},uQ=class{constructor(){this.events=new cr}addListener(t,e){return this.events.on(t,e)}destroy(){this.events.clear()}dispatchUpdateComplete(t,e){this.events.emit("update-complete",{type:"update-complete",apiUpdate:t,wasShortcut:e})}dispatchPreDomUpdate(){this.events.emit("pre-dom-update",{type:"pre-dom-update"})}dispatchPreSeriesUpdate(t,e,i){this.events.emit("pre-series-update",{type:"pre-series-update",requiredRangeRatio:t,requiredRangeDirection:e,requiredRange:i})}dispatchPreSceneRender(t){this.events.emit("pre-scene-render",{type:"pre-scene-render",apiUpdate:t})}dispatchProcessData({series:t}){this.events.emit("process-data",{type:"process-data",series:t})}},dQ=class{constructor(t,e){this.eventsHub=new cr,this.callbackCache=new Q4,this.highlightManager=new qG(this.eventsHub),this.formatManager=new Tf,this.layoutManager=new aQ(this.eventsHub),this.localeManager=new cq(this.eventsHub),this.seriesStateManager=new hQ,this.stateManager=new RZ,this.seriesLabelLayoutManager=new oQ,this.cleanup=new qe;const{scene:i,root:n,syncManager:s,agDocument:a,container:o,fireEvent:r,updateMutex:l,styleContainer:c,skipCss:u,chartType:d,domMode:g,withDragInterpretation:f}=e;this.chartService=t,this.syncManager=s,this.agDocument=a,this.domManager=new AG(this.eventsHub,this.chartService,this.agDocument,o,c,u,g),this.widgets=new X7(this.domManager,{withDragInterpretation:f});const y=this.agDocument.window,x=this.domManager.addChild("canvas","scene-canvas",i?.canvas.element);this.scene=i??new HD({canvasElement:x,pixelRatio:y.devicePixelRatio??1}),this.scene.setRoot(n),this.axisManager=new gq(this.eventsHub,n),this.legendManager=new rQ(this.eventsHub),this.annotationManager=new pq(this.eventsHub,t.annotationRoot,r),this.chartTypeOriginator=new OZ(t),this.interactionManager=new NG,this.contextMenuRegistry=new $G(this.eventsHub),this.optionsGraphService=new lQ,this.updateService=new uQ,this.activeManager=new Nq(this.chartService,this.eventsHub,this.updateService,this.interactionManager,r),this.proxyInteractionService=new oq(this.eventsHub,this.localeManager,this.domManager),this.fontManager=new fq(this.domManager,this.eventsHub),this.historyManager=new EZ(this.eventsHub),this.animationManager=new B7(this.agDocument,this.interactionManager,l),this.dataService=new FT(this.eventsHub,t,this.animationManager),this.tooltipManager=new IM(this.eventsHub,this.localeManager,this.domManager,t.tooltip),this.zoomManager=new r3(this.eventsHub,this.updateService,r);for(const S of Ut.listModulesByType(Le.Plugin))(!S.chartType||S.chartType===d)&&S.patchContext?.(this)}destroy(){this.animationManager.destroy(),this.axisManager.destroy(),this.callbackCache.invalidateCache(),this.domManager.destroy(),this.fontManager.destroy(),this.proxyInteractionService.destroy(),this.tooltipManager.destroy(),this.zoomManager.destroy(),this.widgets.destroy(),this.cleanup.flush()}},WD=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.range="tooltip",this.drawingMode="cutout"}};T([b],WD.prototype,"enabled",2);T([b],WD.prototype,"range",2);T([b],WD.prototype,"drawingMode",2);function pQ(t,e){if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0}function gQ(t,e){if(t==null||e==null)return t===e;if(t.size!==e.size)return!1;for(const[i,n]of t){const s=e.get(i);if(s==null||!pQ(n,s))return!1}return!0}function fQ(t,e){if(t.length!==e.length)return!1;for(let i=0;ie.type==="key").map(e=>e.property).join(";")}var ZT=class Uo{constructor(e,i,n){this.mode=e,this.suppressFieldDotNotation=i,this.eventsHub=n,this.debug=Gt.create(!0,"data-model"),this.requested=[],this.status="setup"}async request(e,i,n){if(this.status!=="setup")throw new Error("AG Charts - data request after data setup phase.");return new Promise((s,a)=>{this.requested.push({id:e,opts:n,dataSet:i,resolve:s,reject:a})})}execute(e){if(this.status!=="setup")throw new Error("AG Charts - data request after data setup phase.");this.status="executed";const i=new Map;for(const o of this.requested)o.dataSet.hasPendingTransactions()&&i.set(o.dataSet,o.dataSet.getChangeDescription()),o.dataSet.commitPendingTransactions();this.debug("DataController.execute() - requested",this.requested);const n=this.validateRequests(this.requested);this.debug("DataController.execute() - validated",n);const s=this.mergeRequested(n);this.debug("DataController.execute() - merged",s),this.debug.check()&&(Ml().processedData=[]);const a=[];for(const{dataSet:o,ids:r,opts:l,resolves:c,rejects:u}of s){let d=function(A){return yQ(A,o,r,l)};const g=e?.find(d),f=(A,I)=>{if(this.debug.check()&&Ml("processedData").push(I),I==null){for(const w of u)w(new Error("AG Charts - no processed data generated"));return}a.push({opts:l,dataSet:o,dataLength:o.data.length,ids:r,dataModel:A,processedData:I});for(const w of c)w({dataModel:A,processedData:I})},y=()=>{try{const A=new IN(l,this.mode,this.suppressFieldDotNotation,this.eventsHub),I=new Map(n.map(N=>[N.id,N.dataSet])),w=A.processData(I);return f(A,w),A}catch(A){for(const I of u)I(A)}};if(g==null){y();continue}const{dataModel:x,processedData:S}=g,D=i.get(o);if(S&&D&&x.isReprocessingSupported(S)){if(this.debug("DataController.execute() - reprocessing data",S,o),x.reprocessData(S,i),Gt.check("data-model:reprocess-diff")){const A=new IN(l,this.mode,this.suppressFieldDotNotation,this.eventsHub),I=new Map(n.map(R=>[R.id,R.dataSet])),w=A.processData(I),N=JSON.parse(JSON.stringify(S,Uo.jsonReplacer)),O=JSON.parse(JSON.stringify(w,Uo.jsonReplacer));delete N.time,delete N.optimizations,delete O.time,delete O.optimizations;const L=or(O,N);L?(pt.log("⚠️ DATA-MODEL REPROCESS DIFF DETECTED ⚠️"),pt.log("Difference between incremental update and full reprocess:"),pt.log(""),pt.log("BASELINE (full reprocess):"),pt.log(JSON.stringify(O,null,2)),pt.log(""),pt.log("REPROCESSED (incremental update):"),pt.log(JSON.stringify(N,null,2)),pt.log(""),pt.log("DIFF (what changed):"),pt.log(JSON.stringify(L,null,2))):pt.log("✅ Data-model reprocess matches baseline (no diff)")}f(x,S);continue}y()}return a}validateRequests(e){const i=[];for(const[n,s]of e.entries())n>0&&s.dataSet.data.length!==e[0].dataSet.data.length&&s.opts.groupByData===!1&&s.opts.groupByKeys===!1?s.reject(new Error("all series[].data arrays must be of the same length and have matching keys.")):i.push(s);return i}mergeRequested(e){const i=[];for(const n of e){const s=i.find(Uo.groupMatch(n));s?s.push(n):i.push([n])}return i.map(Uo.mergeRequests)}static groupMatch({dataSet:e,opts:i}){const{groupByData:n,groupByKeys:s=!1,groupByFn:a,props:o}=i,r=MB(o);return([l])=>(n===!1||l.dataSet===e)&&(l.opts.groupByKeys??!1)===s&&l.opts.groupByFn===a&&MB(l.opts.props)===r}static mergeRequests(e){const i={ids:[],rejects:[],resolves:[],dataSet:e[0].dataSet,opts:{...e[0].opts,props:[]}},n=new Map,s=new Map;let a=0;for(const o of e){const{id:r,dataSet:l,resolve:c,reject:u,opts:{props:d,...g}}=o;i.ids.push(r),i.rejects.push(u),i.resolves.push(c),i.dataSet??(i.dataSet=l),i.opts??(i.opts={...g,props:[]});for(const f of d){const y={...f,scopes:[r],data:l.data};Uo.createIdsMap(r,y);let x;Uo.crossScopeMergableTypes.has(y.type)?x=-1:s.has(l.data)?x=s.get(l.data):(x=a++,s.set(l.data,x));const S=`${y.type}-${x}-${y.groupId}`,D=n.get(S),A=D?.find(I=>Uo.deepEqual(I,y));if(D==null){i.opts.props.push(y),n.set(S,[y]);continue}else if(A==null){i.opts.props.push(y),D.push(y);continue}y.scopes!=null&&(A.scopes??(A.scopes=[]),A.scopes.push(...y.scopes)),(A.type==="key"||A.type==="value")&&y.idsMap?.size&&(A.idsMap??(A.idsMap=new Map),Uo.mergeIdsMap(y.idsMap,A.idsMap))}}return i}static mergeIdsMap(e,i){for(const[n,s]of e){const a=i.get(n);if(a==null)i.set(n,new Set(s));else for(const o of s)a.add(o)}}static createIdsMap(e,i){i.id!=null&&(i.idsMap??(i.idsMap=new Map),i.idsMap.has(e)?i.idsMap.get(e).add(i.id):i.idsMap.set(e,new Set([i.id])))}static deepEqual(e,i){if(e===i)return!0;if(e&&i&&typeof e=="object"&&typeof i=="object"){if(e.constructor!==i.constructor)return!1;let n,s;if(Array.isArray(e)){if(s=e.length,s!==i.length)return!1;for(n=s-1;n>=0;n--)if(!Uo.deepEqual(e[n],i[n]))return!1;return!0}const a=Object.keys(e);if(s=a.length,s!==Object.keys(i).length)return!1;for(n=s-1;n>=0;n--){const o=a[n];if(!Uo.skipKeys.has(o)&&(!Object.hasOwn(i,o)||!Uo.deepEqual(e[o],i[o])))return!1}return!0}return!1}static jsonReplacer(e,i){return i instanceof Map?{__type:"Map",value:Array.from(i.entries())}:i instanceof Set?{__type:"Set",value:Array.from(i)}:i}};ZT.crossScopeMergableTypes=new Set(["key","group-value-processor"]);ZT.skipKeys=new Set(["id","idsMap","type","scopes","data"]);var l3=ZT,Sb=class KS{constructor(e,i){this.data=e,this.dataIdKey=i,this.pendingTransactions=[]}static empty(e){return new KS([],e)}static wrap(e,i){return new KS(e,i)}netSize(){if(!this.hasPendingTransactions())return this.data.length;const e=this.getChangeDescription();return e?e.indexMap.finalLength:this.data.length}addTransaction(e){const i=this.normalizeTransaction(e);this.pendingTransactions.push(i),this.cachedChangeDescription=void 0}deepClone(){return new KS([...this.data],this.dataIdKey)}normalizeTransaction(e){const{add:i,addIndex:n,prepend:s,append:a,remove:o,update:r}=e;if(i===void 0)return e;const l={remove:o,update:r};if(s&&(l.prepend=s),a&&(l.append=a),i&&i.length>0){const c=this.netSize();n===void 0||n>=c?l.append=a?[...a,...i]:i:n===0?l.prepend=s?[...i,...s]:i:l.insertions=[{index:n,items:i}]}return l}hasPendingTransactions(){return this.pendingTransactions.length>0}getPendingTransactionCount(){return this.pendingTransactions.length}commitPendingTransactions(){if(this.dataIdKey!=null&&this.data.length>0&&this.getIdToIndexMap(),!this.hasPendingTransactions())return!1;const e=this.getChangeDescription();if(!e)return!1;const i=e.getPrependedValues(),n=e.getInsertionValues(),s=e.getAppendedValues(),a=[...i,...n,...s];let o=0;if(e.applyToArray(this.data,function(l){if(o>=a.length)throw new Error(`AG Charts - Internal error: No insertion value found for index ${l}`);return a[o++]}),this.cachedPendingReplacements&&this.cachedPendingReplacements.size>0){const{updatedIndices:r}=e.indexMap;for(const l of r){const c=this.getIdValue(this.data[l]);c!==void 0&&this.cachedPendingReplacements.has(c)&&(this.data[l]=this.cachedPendingReplacements.get(c))}}return this.pendingTransactions=[],this.cachedChangeDescription=void 0,this.cachedPendingReplacements=void 0,this.updateItemToIndexCache(e,s,i,n),this.updateIdToIndexCache(e,s,i,n),!0}updateItemToIndexCache(e,i,n,s){if(!this.itemToIndexCache)return;if(this.dataIdKey){this.itemToIndexCache=void 0;return}const{indexMap:a}=e,{totalPrependCount:o,totalAppendCount:r,removedIndices:l}=a,c=l.size>0,u=s.length>0;if(!c&&o===0&&r===0&&!u)return;if(u){this.itemToIndexCache=void 0;return}const d=AN(l);if(c&&d===0){this.itemToIndexCache=void 0;return}const g=this.itemToIndexCache,f=o-d;if(f!==0)for(const[x,S]of g)l.has(S)?g.delete(x):g.set(x,S+f);else if(c)for(const[x,S]of g)l.has(S)&&g.delete(x);for(let x=0;x0,u=s.length>0;if(!c&&o===0&&r===0&&!u)return;if(u){this.idToIndexCache=void 0;return}const d=AN(l);if(c&&d===0){this.idToIndexCache=void 0;return}const g=this.idToIndexCache,f=o-d;if(f!==0)for(const[x,S]of g)l.has(S)?g.delete(x):g.set(x,S+f);else if(c)for(const[x,S]of g)l.has(S)&&g.delete(x);for(let x=n.length-1;x>=0;x--){const S=this.getIdValue(n[x]);S!==void 0&&g.set(S,x)}const y=a.finalLength-r;for(let x=0;x0;)i.has(n[s])?(i.delete(n[s]),n.splice(s,1)):s++;if(i.size===0)break}}buildIndexMap(){const e=this.data.length,i=this.collectTransactionEffects(),n=i.prependsList.flat(),s=i.appendsList.flat(),a=i.insertionsList.flat(),o=n.length,r=s.length,l=a.length,c=e-i.removedOriginalIndices.size,u=o+c+l+r,d=i.removedOriginalIndices.size>0?this.getSortedRemovedIndices(i.removedOriginalIndices):void 0,g=this.buildSpliceOperations(o,l,r,c,i.trackedInsertions,d?.desc,d?.asc),f=this.resolveUpdatedIndices(o,l,c,i.updateTracking,d?.asc,i.updatedOriginalIndices,i.trackedInsertions);return{indexMap:{originalLength:e,finalLength:u,spliceOps:g,removedIndices:i.removedOriginalIndices,updatedIndices:f,totalPrependCount:o,totalAppendCount:r},prependValues:n,appendValues:s,insertionValues:a,pendingReplacements:i.pendingReplacements}}getSortedRemovedIndices(e){const i=Array.from(e).sort((n,s)=>n-s);return{asc:i,desc:[...i].reverse()}}collectTransactionEffects(){const e={prependsList:[],appendsList:[],insertionsList:[],trackedInsertions:[],removedOriginalIndices:new Set,updatedOriginalIndices:new Set,virtualLength:this.data.length};for(const i of this.pendingTransactions){const{prepend:n,append:s,insertions:a,remove:o,update:r}=i;this.applyPrepends(n,e),this.applyInsertions(a,e),this.applyAppends(s,e),this.applyRemovals(o,e),this.applyUpdates(r,e)}return{prependsList:e.prependsList,appendsList:e.appendsList,insertionsList:e.insertionsList,trackedInsertions:e.trackedInsertions,removedOriginalIndices:e.removedOriginalIndices,updatedOriginalIndices:e.updatedOriginalIndices,updateTracking:e.updateTracking,pendingReplacements:e.pendingReplacements}}applyPrepends(e,i){!Array.isArray(e)||e.length===0||(i.prependsList.unshift([...e]),i.virtualLength+=e.length)}applyInsertions(e,i){if(Array.isArray(e))for(const{index:n,items:s}of e)n>=0&&n<=i.virtualLength&&s.length>0&&(i.trackedInsertions.push({virtualIndex:n,items:[...s]}),i.insertionsList.push([...s]),i.virtualLength+=s.length)}applyAppends(e,i){!Array.isArray(e)||e.length===0||(i.appendsList.push([...e]),i.virtualLength+=e.length)}applyRemovals(e,i){!Array.isArray(e)||e.length===0||(this.dataIdKey?this.applyRemovalsById(e,i):this.applyRemovalsByRef(e,i))}applyRemovalsByRef(e,i){const n=new Set(e);if(this.removeFromGroups(i.prependsList,n),n.size>0&&this.removeFromGroups(i.insertionsList,n),i.trackedInsertions.length>0&&this.removeFromTrackedInsertions(e,i),n.size>0&&this.removeFromGroups(i.appendsList,n),n.size>0)for(let s=0;s0;s++){const a=this.data[s];n.has(a)&&(i.removedOriginalIndices.add(s),n.delete(a),i.virtualLength--)}n.size>0&&pt.warnOnce("applyTransaction() remove includes items not present in current data; ignoring missing items.")}applyRemovalsById(e,i){const n=new Set;for(const s of e){const a=this.getIdValue(s);a===void 0?pt.warnOnce(`applyTransaction() remove item is missing '${this.dataIdKey}' field; ignoring.`):n.add(a)}if(n.size!==0){if(this.removeFromGroupsById(i.prependsList,n),n.size>0&&this.removeFromGroupsById(i.insertionsList,n),i.trackedInsertions.length>0&&this.removeFromTrackedInsertionsById(e,i),n.size>0&&this.removeFromGroupsById(i.appendsList,n),n.size>0){const s=this.getIdToIndexMap();for(const a of n){const o=s.get(a);o!==void 0&&(i.removedOriginalIndices.add(o),i.virtualLength--,n.delete(a))}}n.size>0&&pt.warnOnce("applyTransaction() remove includes items not present in current data; ignoring missing items.")}}applyUpdates(e,i){!Array.isArray(e)||e.length===0||(this.dataIdKey?this.applyUpdatesById(e,i):this.applyUpdatesByRef(e,i))}applyUpdatesByRef(e,i){const n=new Set(e),s=this.collectUpdatedIndicesFromGroups(i.prependsList,n),a=n.size>0?this.collectUpdatedIndicesFromGroups(i.insertionsList,n):[],o=n.size>0?this.collectUpdatedIndicesFromGroups(i.appendsList,n):[];n.size>0&&this.collectUpdatedOriginalIndices(n,i),i.updateTracking={updatedPrependsIndices:s,updatedAppendsIndices:o,updatedInsertionsIndices:a},n.size>0&&pt.warnOnce("applyTransaction() update includes items not present in current data; ignoring missing items.")}applyUpdatesById(e,i){const n=new Map;for(const r of e){const l=this.getIdValue(r);l===void 0?pt.warnOnce(`applyTransaction() update item is missing '${this.dataIdKey}' field; ignoring.`):n.set(l,r)}if(n.size===0)return;const s=this.collectUpdatedIndicesFromGroupsById(i.prependsList,n),a=n.size>0?this.collectUpdatedIndicesFromGroupsById(i.insertionsList,n):[],o=n.size>0?this.collectUpdatedIndicesFromGroupsById(i.appendsList,n):[];n.size>0&&this.collectUpdatedOriginalIndicesById(n,i),i.updateTracking={updatedPrependsIndices:s,updatedAppendsIndices:o,updatedInsertionsIndices:a},n.size>0&&pt.warnOnce("applyTransaction() update includes items not present in current data; ignoring missing items.")}collectUpdatedIndicesFromGroups(e,i){if(i.size===0||e.length===0)return[];const n=[];let s=0;for(const a of e){for(const o of a)i.has(o)&&(n.push(s),i.delete(o)),s++;if(i.size===0)break}return n}getItemToIndexMap(){if(this.itemToIndexCache===void 0){this.itemToIndexCache=new Map;for(let e=0;e0&&pt.warnOnce(`dataIdKey '${this.dataIdKey}' was not found on any data item.`)}return this.idToIndexCache}removeFromGroupsById(e,i){for(const n of e){let s=0;for(;s0;){const a=this.getIdValue(n[s]);a!==void 0&&i.has(a)?(i.delete(a),n.splice(s,1)):s++}if(i.size===0)break}}collectUpdatedIndicesFromGroupsById(e,i){if(i.size===0||e.length===0)return[];const n=[];let s=0;for(const a of e){for(let o=0;o0&&this.adjustLaterInsertionsAfterRemoval(i.trackedInsertions,n,s,a,o)}}removeFromTrackedInsertionsById(e,i){const n=new Set;for(const s of e){const a=this.getIdValue(s);a!==void 0&&n.add(a)}if(n.size!==0)for(let s=0;s0&&this.adjustLaterInsertionsAfterRemoval(i.trackedInsertions,s,a,o,r),n.size===0)break}}adjustLaterInsertionsAfterRemoval(e,i,n,s,a){const o=a.length;for(let r=i+1;r0&&(l.virtualIndex-=u)}}buildSpliceOperations(e,i,n,s,a,o,r){const l=[];if(e>0&&l.push({index:0,deleteCount:0,insertCount:e}),o&&o.length>0){let c=o[0],u=1;for(let d=1;d0)for(const c of a){const u=this.countRemovalsBeforeIndex(r,e,c.virtualIndex),d=c.virtualIndex-u;l.push({index:d,deleteCount:0,insertCount:c.items.length})}return n>0&&l.push({index:e+s+i,deleteCount:0,insertCount:n}),l}countRemovalsBeforeIndex(e,i,n){if(!e||e.length===0)return 0;let s=0;for(const a of e)if(a+i0){const c=Array.from(o).sort((d,g)=>d-g);let u=0;for(const d of c){if(a)for(;u0&&r.length>0){let u=0;for(const d of r){const g=this.countRemovalsBeforeIndex(a,e,d.virtualIndex),f=d.virtualIndex-g;for(let y=0;yi!==this.chart)}getGroupSyncMode(e=dc.DEFAULT_GROUP){return this.getGroupMembers(e).some(i=>i.series.length>1)?"multi-series":"single-series"}get(e){return dc.chartsGroups.get(e)}};qT.chartsGroups=new Map;qT.DEFAULT_GROUP=Symbol("sync-group-default");var bQ=qT,KD=class extends xt{constructor(){super(...arguments),this.enabled=!1,this.initialFocus="data-start"}};T([b],KD.prototype,"enabled",2);T([b],KD.prototype,"tabIndex",2);T([b],KD.prototype,"initialFocus",2);var c3={};Ap(c3,{NODE_UPDATE_STATE_TO_PHASE_MAPPING:()=>wr,fromToMotion:()=>dn,staticFromToMotion:()=>Uc});var wr={added:"add",updated:"update",removed:"remove",unknown:"initial","no-op":"none"};function dn(t,e,i,n,s,a,o){const{fromFn:r,toFn:l,applyFn:c=(y,x)=>y.setProperties(x)}=s,{nodes:u,selections:d}=HT(n),g=(y,x)=>{let S,D=0,A=0;for(const I of x){const w=y[D]===I,N={last:A>=x.length-1,lastLive:D>=y.length-1,prev:x[A-1],prevFromProps:S,prevLive:y[D-1],next:x[A+1],nextLive:y[D+(w?1:0)]},O=`${t}_${e}_${I.id}`;i.stopByAnimationId(O);let L="unknown";w?a&&o&&(L=xQ(I,I.datum,a,o)):L="removed",I.transitionOut=L==="removed";const{phase:R,start:P,finish:B,delay:F,duration:H,...$}=r(I,I.datum,L,N),{phase:Y,start:U,finish:V,delay:Z,duration:W,...q}=l(I,I.datum,L,N),nt=B==null;i.animate({id:O,groupId:t,phase:R??Y??"update",duration:H??W,delay:F??Z,from:$,to:q,ease:Lc,collapsable:nt,onPlay:()=>{const G={...P,...U,...$};c(I,G,"start")},onUpdate(G){c(I,G,"update")},onStop:()=>{const G={...P,...U,...$,...q,...B,...V};c(I,G,"end")}}),w&&D++,A++,S=$}};let f=0;for(const y of d){const x=y.nodes(),S=x.filter(D=>!y.isGarbage(D));g(S,x),i.animate({id:`${t}_${e}_selection_${f}`,groupId:t,phase:"end",from:0,to:1,ease:Lc,onStop(){y.cleanup()}}),f++}g(u,u)}function Uc(t,e,i,n,s,a,o){const{nodes:r,selections:l}=HT(n),{start:c,finish:u,phase:d}=o;i.animate({id:`${t}_${e}`,groupId:t,phase:d??"update",from:s,to:a,ease:Lc,onPlay:()=>{if(c){for(const g of r)g.setProperties(c);for(const g of l){const f=g.nodes();g.batchedUpdate(function(){for(const x of f)x.setProperties(c)})}}},onUpdate(g){for(const f of r)f.setProperties(g);for(const f of l){const y=f.nodes();f.batchedUpdate(function(){for(const S of y)S.setProperties(g)})}},onStop:()=>{for(const g of r)g.setProperties({...a,...u});for(const g of l){const f=g.nodes();g.batchedUpdate(function(){for(const x of f)x.setProperties({...a,...u});g.cleanup()})}}})}function xQ(t,e,i,n){const s=i(t,e);return n.added.has(s)?"added":n.removed.has(s)?"removed":t.previousDatum==null&&t.datum!=null?"added":t.previousDatum!=null&&t.datum==null?"removed":"updated"}var h3={};Ap(h3,{resetMotion:()=>Qn});function Qn(t,e){const{nodes:i,selections:n}=HT(t);for(const s of n){const a=s.nodes();s.batchedUpdate(function(){for(const r of a){const l=e(r,r.datum);r.setProperties(l)}s.cleanup()})}for(const s of i){const a=e(s,s.datum);s.setProperties(a)}}var pn=class Vd{constructor(e,i,n=!0){this.parentNode=e,this.autoCleanup=n,this.garbageBin=new Set,this._nodesMap=new Map,this._nodes=[],this.data=[],this.debug=Gt.create(!0,"scene","scene:selections"),this.nodeFactory=Object.prototype.isPrototypeOf.call(Oc,i)?()=>new i:i}static select(e,i,n=!0){return new Vd(e,i,n)}static selectAll(e,i){const n=[],s=a=>{if(i(a)&&n.push(a),a instanceof ee)for(const o of a.children())s(o)};return s(e),n}static selectByClass(e,...i){return Vd.selectAll(e,n=>i.some(s=>n instanceof s))}static selectByTag(e,i){return Vd.selectAll(e,n=>n.tag===i)}createNode(e,i,n){const s=this.nodeFactory(e);return s.datum=e,i?.(s),n==null?this._nodes.push(s):this._nodes.splice(n,0,s),this.parentNode.appendChild(s),s}update(e,i,n){if(this.garbageBin.size>0&&this.debug("Selection - update() called with pending garbage",e),n&&this._nodesMap.size===0&&this._nodes.length>0)for(const s of this._nodes)this.garbageBin.add(s);if(!n&&this._nodesMap.size>0&&this._nodesMap.clear(),n){const s=new Map,a=new Map;for(let o=0;o=e.length?this.garbageBin.add(this._nodes[a]):a>=this._nodes.length?this.createNode(e[a],i):(this._nodes[a].datum=e[a],this.garbageBin.delete(this._nodes[a]))}return this.data=e.slice(),this.autoCleanup&&this.cleanup(),this}cleanup(){if(this.garbageBin.size===0)return this;const e=this;function i(n){return e.garbageBin.has(n)?(e._nodesMap.delete(n),e.garbageBin.delete(n),n.destroy(),!1):!0}return this._nodes=this._nodes.filter(i),this}clear(){this.update([]);for(const e of this._nodesMap.keys())this.garbageBin.add(e);return this._nodesMap.clear(),this}isGarbage(e){return this.garbageBin.has(e)}each(e){const i=this._nodes;return this.parentNode.batchedUpdate(function(){for(const s of i.entries())e(s[1],s[1].datum,s[0])}),this}*[Symbol.iterator](){for(let e=0;e_j(a,n)&&!Number.isNaN(e.convert(a,{clamp:!0}));if(t.type==="range"){const[a,o]=i;return s(a)&&s(o)}else return s(i)}var vQ={top:{rangeH:0,rangeV:-1,labelH:0,labelV:1},"inside-top":{rangeH:0,rangeV:-1,labelH:0,labelV:1},"top-left":{rangeH:-1,rangeV:-1,labelH:-1,labelV:1},"inside-top-left":{rangeH:-1,rangeV:-1,labelH:-1,labelV:1},left:{rangeH:-1,rangeV:0,labelH:1,labelV:0},"inside-left":{rangeH:-1,rangeV:0,labelH:-1,labelV:0},"bottom-left":{rangeH:-1,rangeV:1,labelH:-1,labelV:-1},"inside-bottom-left":{rangeH:-1,rangeV:1,labelH:-1,labelV:-1},bottom:{rangeH:0,rangeV:1,labelH:0,labelV:-1},"inside-bottom":{rangeH:0,rangeV:1,labelH:0,labelV:-1},"bottom-right":{rangeH:1,rangeV:1,labelH:1,labelV:-1},"inside-bottom-right":{rangeH:1,rangeV:1,labelH:1,labelV:-1},right:{rangeH:1,rangeV:0,labelH:-1,labelV:0},"inside-right":{rangeH:1,rangeV:0,labelH:1,labelV:0},"top-right":{rangeH:1,rangeV:-1,labelH:1,labelV:1},"inside-top-right":{rangeH:1,rangeV:-1,labelH:1,labelV:1},inside:{rangeH:0,rangeV:0,labelH:0,labelV:0}},SQ={top:{rangeH:0,rangeV:-1,labelH:0,labelV:1},"inside-top":{rangeH:0,rangeV:-1,labelH:0,labelV:-1},"top-left":{rangeH:-1,rangeV:-1,labelH:1,labelV:-1},"inside-top-left":{rangeH:-1,rangeV:-1,labelH:1,labelV:-1},left:{rangeH:-1,rangeV:0,labelH:1,labelV:0},"inside-left":{rangeH:-1,rangeV:0,labelH:1,labelV:0},"bottom-left":{rangeH:-1,rangeV:1,labelH:1,labelV:1},"inside-bottom-left":{rangeH:-1,rangeV:1,labelH:1,labelV:1},bottom:{rangeH:0,rangeV:1,labelH:0,labelV:-1},"inside-bottom":{rangeH:0,rangeV:1,labelH:0,labelV:1},"bottom-right":{rangeH:1,rangeV:1,labelH:-1,labelV:1},"inside-bottom-right":{rangeH:1,rangeV:1,labelH:-1,labelV:1},right:{rangeH:1,rangeV:0,labelH:-1,labelV:0},"inside-right":{rangeH:1,rangeV:0,labelH:-1,labelV:0},"top-right":{rangeH:1,rangeV:-1,labelH:-1,labelV:-1},"inside-top-right":{rangeH:-1,rangeV:-1,labelH:-1,labelV:-1},inside:{rangeH:0,rangeV:0,labelH:0,labelV:0}},MQ={top:{rangeH:0,rangeV:-1,labelH:0,labelV:1},"inside-top":{rangeH:0,rangeV:-1,labelH:0,labelV:-1},"top-left":{rangeH:-1,rangeV:-1,labelH:-1,labelV:1},"inside-top-left":{rangeH:-1,rangeV:-1,labelH:-1,labelV:-1},left:{rangeH:-1,rangeV:0,labelH:1,labelV:0},"inside-left":{rangeH:-1,rangeV:0,labelH:-1,labelV:0},"bottom-left":{rangeH:-1,rangeV:1,labelH:-1,labelV:-1},"inside-bottom-left":{rangeH:-1,rangeV:1,labelH:-1,labelV:1},bottom:{rangeH:0,rangeV:1,labelH:0,labelV:-1},"inside-bottom":{rangeH:0,rangeV:1,labelH:0,labelV:1},"bottom-right":{rangeH:1,rangeV:1,labelH:1,labelV:-1},"inside-bottom-right":{rangeH:1,rangeV:1,labelH:1,labelV:1},right:{rangeH:1,rangeV:0,labelH:-1,labelV:0},"inside-right":{rangeH:1,rangeV:0,labelH:1,labelV:0},"top-right":{rangeH:1,rangeV:-1,labelH:1,labelV:1},"inside-top-right":{rangeH:1,rangeV:-1,labelH:1,labelV:-1},inside:{rangeH:0,rangeV:0,labelH:0,labelV:0}},DQ={top:{rangeH:0,rangeV:-1,labelH:0,labelV:1},"inside-top":{rangeH:0,rangeV:-1,labelH:0,labelV:-1},"top-left":{rangeH:-1,rangeV:-1,labelH:1,labelV:-1},"inside-top-left":{rangeH:-1,rangeV:-1,labelH:-1,labelV:-1},left:{rangeH:-1,rangeV:0,labelH:1,labelV:0},"inside-left":{rangeH:-1,rangeV:0,labelH:-1,labelV:0},"bottom-left":{rangeH:-1,rangeV:1,labelH:1,labelV:1},"inside-bottom-left":{rangeH:-1,rangeV:1,labelH:-1,labelV:1},bottom:{rangeH:0,rangeV:1,labelH:0,labelV:-1},"inside-bottom":{rangeH:0,rangeV:1,labelH:0,labelV:1},"bottom-right":{rangeH:1,rangeV:1,labelH:-1,labelV:1},"inside-bottom-right":{rangeH:1,rangeV:1,labelH:1,labelV:1},right:{rangeH:1,rangeV:0,labelH:-1,labelV:0},"inside-right":{rangeH:1,rangeV:0,labelH:1,labelV:0},"top-right":{rangeH:1,rangeV:-1,labelH:-1,labelV:-1},"inside-top-right":{rangeH:1,rangeV:-1,labelH:1,labelV:-1},inside:{rangeH:0,rangeV:0,labelH:0,labelV:0}},Cp=class extends Mo{constructor(){super(...arguments),this.padding=5}};T([b],Cp.prototype,"enabled",2);T([b],Cp.prototype,"padding",2);T([b],Cp.prototype,"text",2);T([b],Cp.prototype,"position",2);T([b],Cp.prototype,"rotation",2);T([b],Cp.prototype,"parallel",2);var Xs=class extends xt{constructor(){super(),this.id=Nn(this),this.defaultColorRange=[],this.fill="#c16068",this.label=new Cp,this.scale=void 0,this.clippedRange=[-1/0,1/0],this.gridLength=0,this.gridPadding=0,this.position="top",this.rangeGroup=new ee({name:this.id}),this.lineGroup=new ee({name:this.id}),this.labelGroup=new ee({name:this.id}),this.crossLineRange=this.lineGroup.appendChild(new El),this.crossLineLabel=this.labelGroup.appendChild(new wf),this.data=void 0,this.startLine=!1,this.endLine=!1,this._isRange=void 0,this.crossLineRange.pointerEvents=1}get defaultLabelPosition(){return"top"}update(t){const{enabled:e,type:i,data:n,scale:s}=this;if(!s||!e||!t||!d3(this,s)||n==null){this.rangeGroup.visible=!1,this.lineGroup.visible=!1,this.labelGroup.visible=!1;return}this.rangeGroup.visible=t,this.lineGroup.visible=t,this.labelGroup.visible=t,this.updateNodes();const a=i==="range";a!==this._isRange&&(a?this.rangeGroup.appendChild(this.crossLineRange):this.lineGroup.appendChild(this.crossLineRange)),this._isRange=a}calculateLayout(t){if(this.data=void 0,!t)return;const{type:e,range:i,value:n,scale:s,clippedRange:a,strokeWidth:o=0}=this;if(!s)return;const r=s.bandwidth??0,l=s.step??0,c=s instanceof Rr?(l-r)/2:0;let[u,d]=xi(a);u-=r,d+=r;let g,f,y,x;if(e==="line"){const S=r/2;if(g=s.convert(n)+S,f=Number.NaN,y=s.convert(n,{clamp:!0})+S,x=Number.NaN,y>=d||y<=u)return}else if(i){const[S,D]=i,[A,I]=o3(S,D);if(g=s.convert(S,{alignment:A}),f=s.convert(D,{alignment:I}),y=s.convert(S,{clamp:!0,alignment:A}),x=s.convert(D,{clamp:!0,alignment:I}),y>x&&([y,x]=[x,y],[g,f]=[f,g]),y>=d||x<=u)return;Number.isFinite(g)&&(y-=c),Number.isFinite(f)&&(f+=r,x+=r+c)}else return;y=bf(y,a),x=bf(x,a),g-c>=y&&(g-=c),f+c<=x&&(f+=c),this.startLine=o>0&&g>=y&&g<=y+c,this.endLine=o>0&&f>=x-r-c&&f<=x,this.data=[y,x],this.label.enabled===!1||this.label.text}updateNodes(){const{position:t,data:[e,i]=[0,0],gridLength:n,gridPadding:s}=this,a=Number.isFinite(i)?i-e:0,o=t==="bottom"||t==="right"?-1:1,r=Math.min(o*s,o*(n+s));let l;switch(t){case"top":case"bottom":l=new Tt(e,r,a,n);break;case"left":case"right":l=new Tt(r,e,n,a)}this.updateRangeNode(l);const{label:c}=this;c.enabled!==!1&&c.text&&(this.updateLabel(),this.positionLabel(l))}updateRangeNode(t){const{type:e,position:i,crossLineRange:n,startLine:s,endLine:a,fill:o,fillOpacity:r,stroke:l,strokeWidth:c,strokeOpacity:u,lineDash:d}=this;n.x1=t.x,n.x2=t.x+t.width,n.y1=t.y,n.y2=t.y+t.height,n.horizontal=i==="top"||i==="bottom",n.startLine=s,n.endLine=a,n.fill=e==="range"?o:void 0,n.fillOpacity=r??1,n.stroke=l,n.strokeWidth=c??1,n.strokeOpacity=u??1,n.lineDash=d}updateLabel(){const{crossLineLabel:t,label:e}=this;e.text&&(t.fill=e.color,t.text=e.text,t.textAlign="center",t.textBaseline="middle",t.setFont(e),t.setBoxing(e))}get anchor(){const t=this.position==="left"||this.position==="right",e=this.type==="range",{position:i=this.defaultLabelPosition}=this.label;return e?(t?MQ:DQ)[i]:(t?vQ:SQ)[i]}positionLabel(t){const{crossLineLabel:e,label:{padding:i,rotation:n},anchor:s}=this;e.rotation=Ze(n??0);const a=e.getBBox();if(!a)return;const{width:o,height:r}=a,l=typeof i=="number"?0:(i.right??0)-(i.left??0),c=typeof i=="number"?0:(i.bottom??0)-(i.top??0);let u=o/2,d=r/2;typeof i=="number"&&!e.hasBoxing()&&(u+=i,d+=i);const g=t.x+t.width*(s.rangeH+1)/2-u*s.labelH-l/2,f=t.y+t.height*(s.rangeV+1)/2-d*s.labelV-c/2;e.x=g,e.y=f,e.rotationCenterX=g,e.rotationCenterY=f}computeLabelSize(){const{label:t}=this;if(t.enabled===!1||!t.text)return;const e=new wf;e.fontFamily=t.fontFamily,e.fontSize=t.fontSize,e.fontStyle=t.fontStyle,e.fontWeight=t.fontWeight,e.text=t.text,e.rotation=Ze(t.rotation??0),e.textBaseline="middle",e.textAlign="center";const i=e.getBBox();if(!i)return;const{width:n,height:s}=i;return{width:n,height:s}}calculatePadding(t){const{label:{padding:e},anchor:i}=this,n=this.computeLabelSize();if(!n)return;const{width:s,height:a}=n,o=typeof e=="number"?e*2:(e.left??0)+(e.right??0),r=typeof e=="number"?e*2:(e.top??0)+(e.bottom??0),l=o+s,c=r+a,u=this.position==="left"||this.position==="right";u&&(i.rangeH===-1&&i.labelH===1?t.left=Math.max(t.left??0,l):i.rangeH===1&&i.labelH===-1&&(t.right=Math.max(t.right??0,l))),u||(i.rangeV===-1&&i.labelV===1?t.top=Math.max(t.top??0,c):i.rangeV===1&&i.labelV===-1&&(t.bottom=Math.max(t.bottom??0,c)))}};Xs.className="CrossLine";T([b],Xs.prototype,"enabled",2);T([b],Xs.prototype,"type",2);T([b],Xs.prototype,"range",2);T([b],Xs.prototype,"value",2);T([b],Xs.prototype,"defaultColorRange",2);T([b],Xs.prototype,"fill",2);T([b],Xs.prototype,"fillOpacity",2);T([b],Xs.prototype,"stroke",2);T([b],Xs.prototype,"strokeWidth",2);T([b],Xs.prototype,"strokeOpacity",2);T([b],Xs.prototype,"lineDash",2);T([b],Xs.prototype,"label",2);var YD=class{constructor(){this.enabled=!0,this.width=1,this.style=[{fill:void 0,fillOpacity:1,stroke:void 0,strokeWidth:void 0,lineDash:[]}]}};T([b],YD.prototype,"enabled",2);T([b],YD.prototype,"width",2);T([b],YD.prototype,"style",2);var wp=class extends xt{};T([b],wp.prototype,"placement",2);T([b],wp.prototype,"step",2);T([b],wp.prototype,"values",2);T([b],wp.prototype,"minSpacing",2);T([b],wp.prototype,"maxSpacing",2);var Mi=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.border=new kp,this.wrapping="never",this.truncate=!1,this.spacing=5,this.avoidCollisions=!0,this.mirrored=!1,this.parallel=!1,this._formatters={"component:year":void 0,"component:month":void 0,"component:day":void 0,"component:none":void 0,"long:year":void 0,"long:month":void 0,"long:day":void 0,"long:none":void 0}}getSideFlag(){return this.mirrored?1:-1}formatValue(e,i,n,s){const{formatter:a,format:o}=this,{type:r,value:l,domain:c,boundSeries:u}=i,d=i.type==="number"?i.fractionDigits:void 0,g=i.type==="date"?i.unit:void 0;let f;if(a!=null){const y=i.type==="date"?i.step:void 0,x=i.type==="number"?i.visibleDomain:void 0;f=e(a,{value:l,index:n,domain:c,fractionDigits:d,unit:g,step:y,boundSeries:u,visibleDomain:x})}if(o!=null&&f==null){const{specifier:y,dateStyle:x="long",truncateDate:S}=s??{},D=`${x}:${S??"none"}`;let A=this._formatters[D];const I=Tf.mergeSpecifiers(y,o);(A?.type!==r||A?.unit!==g||!ks(A?.mergedFormat,I))&&(A={type:r,mergedFormat:I,unit:g,formatter:Tf.getFormatter(r,I,g,x,{truncateDate:S})},this._formatters[D]=A),f=A.formatter?.(l,d)}return f==null||qt(f)?f:String(f)}};T([b],Mi.prototype,"enabled",2);T([b],Mi.prototype,"border",2);T([b],Mi.prototype,"cornerRadius",2);T([b],Mi.prototype,"fill",2);T([b],Mi.prototype,"fillOpacity",2);T([b],Mi.prototype,"fontStyle",2);T([b],Mi.prototype,"fontWeight",2);T([b],Mi.prototype,"fontSize",2);T([b],Mi.prototype,"fontFamily",2);T([b],Mi.prototype,"wrapping",2);T([b],Mi.prototype,"truncate",2);T([b],Mi.prototype,"spacing",2);T([b],Mi.prototype,"minSpacing",2);T([b],Mi.prototype,"color",2);T([b],Mi.prototype,"rotation",2);T([b],Mi.prototype,"avoidCollisions",2);T([b],Mi.prototype,"mirrored",2);T([b],Mi.prototype,"padding",2);T([b],Mi.prototype,"parallel",2);T([b],Mi.prototype,"itemStyler",2);T([b],Mi.prototype,"formatter",2);T([b],Mi.prototype,"format",2);var $D=class{constructor(){this.enabled=!0,this.width=1,this.stroke=void 0}};T([b],$D.prototype,"enabled",2);T([b],$D.prototype,"width",2);T([b],$D.prototype,"stroke",2);var Np=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.width=1,this.size=6}};T([b],Np.prototype,"enabled",2);T([b],Np.prototype,"width",2);T([b],Np.prototype,"size",2);T([b],Np.prototype,"stroke",2);var Wa=class extends xt{constructor(){super(...arguments),this.caption=new Ri,this.enabled=!1,this.fontSize=zc.SMALLER,this.fontFamily="sans-serif",this.wrapping="always",this.truncate=!0}};T([b],Wa.prototype,"enabled",2);T([b],Wa.prototype,"text",2);T([b],Wa.prototype,"spacing",2);T([b],Wa.prototype,"fontStyle",2);T([b],Wa.prototype,"fontWeight",2);T([b],Wa.prototype,"fontSize",2);T([b],Wa.prototype,"fontFamily",2);T([b],Wa.prototype,"color",2);T([b],Wa.prototype,"maxWidth",2);T([b],Wa.prototype,"maxHeight",2);T([b],Wa.prototype,"wrapping",2);T([b],Wa.prototype,"truncate",2);T([b],Wa.prototype,"formatter",2);var p3=(t=>(t[t.TickAndDomain=0]="TickAndDomain",t[t.TicksOnly=1]="TicksOnly",t[t.Off=2]="Off",t))(p3||{});function AQ(t){const[e,i]=xi(t.range),n=Math.floor(e),s=Math.ceil(i);return{min:n,max:s,visible:n!==s}}var NN=Math.PI*2,IQ=NN/2;function kQ(t,e){return Math.abs(e-t)e?e+NN:e-NN}function CQ(t){const{min:e,max:i}=t,n=l=>li;return{tick:{fromFn(l,c,u){let{x1:d,x2:g,y1:f,y2:y}=l,x=l.opacity;return(u==="added"||n(c.offset))&&({x1:d,x2:g,y1:f,y2:y}=c,x=0),{x1:d,x2:g,y1:f,y2:y,opacity:x,phase:wr[u]}},toFn(l,c,u){const{x1:d,x2:g,y1:f,y2:y}=c;let x=1;return u==="removed"&&(x=0),{x1:d,x2:g,y1:f,y2:y,opacity:x}},applyFn(l,c){l.setProperties(c),l.visible=!n(l.y)}},line:{fromFn(l,c){const{x1:u,x2:d,y1:g,y2:f}=l.previousDatum??c;return{x1:u,x2:d,y1:g,y2:f,phase:wr.updated}},toFn(l,c){const{x1:u,x2:d,y1:g,y2:f}=c;return{x1:u,x2:d,y1:g,y2:f}}},label:{fromFn(l,c,u){const d=l.previousDatum??c;let{x:g,y:f,rotationCenterX:y,rotationCenterY:x,rotation:S}=d,D=l.opacity;return u==="removed"||n(d.y)?S=c.rotation:(u==="added"||n(l.datum.y))&&({x:g,y:f,rotationCenterX:y,rotationCenterY:x,rotation:S}=c,D=0),{x:g,y:f,rotationCenterX:y,rotationCenterY:x,rotation:S,opacity:D,phase:wr[u]}},toFn(l,c,u){const{x:d,y:g,rotationCenterX:f,rotationCenterY:y}=c;let x=0,S=1;return u==="added"?x=c.rotation:u==="removed"?(S=0,x=c.rotation):x=kQ(l.previousDatum?.rotation??c.rotation,c.rotation),{x:d,y:g,rotationCenterX:f,rotationCenterY:y,rotation:x,opacity:S,finish:{rotation:c.rotation}}}},group:{fromFn(l,c){const{translationX:u,translationY:d}=l;return{translationX:u,translationY:d,phase:wr.updated}},toFn(l,c){const{translationX:u,translationY:d}=c;return{translationX:u,translationY:d}}}}}function wQ(){return(t,e)=>({translationX:e.translationX,translationY:e.translationY})}function CM(){return(t,e)=>({x:e.x,y:e.y,rotationCenterX:e.rotationCenterX,rotationCenterY:e.rotationCenterY,rotation:e.rotation})}function DB(){return(t,e)=>{const{x1:i,x2:n,y1:s,y2:a}=e;return{x1:i,x2:n,y1:s,y2:a}}}function NQ(){return(t,e)=>{const{x1:i,x2:n,y1:s,y2:a}=e;return{x:i,y:s,width:n-i,height:a-s}}}var g3=(t=>(t[t.TickLines=0]="TickLines",t[t.AxisLine=1]="AxisLine",t[t.TickLabels=2]="TickLabels",t))(g3||{});function AB(t,e){return t.domain===e.domain&&t.rangeExtent===e.rangeExtent&&t.nice[0]===e.nice[0]&&t.nice[1]===e.nice[1]&&t.gridLength===e.gridLength&&t.visibleRange[0]===e.visibleRange[0]&&t.visibleRange[1]===e.visibleRange[1]&&t.scrollbarKey===e.scrollbarKey&&t.initialPrimaryTickCount?.unzoomed===e.initialPrimaryTickCount?.unzoomed&&t.initialPrimaryTickCount?.zoomed===e.initialPrimaryTickCount?.zoomed}function IB(t,e,i){const n=t.bandwidth??0,a=((t.step??0)-n)/2,o=t.convert(i),r=o-a,l=o+n+a;return[o,bf(r,e),bf(l,e)]}var Hu=class f3{constructor(e,i){this.moduleCtx=e,this.scale=i,this.id="unknown",this._crossLines=[],this.nice=!0,this.reverse=!1,this.interval=new wp,this.dataDomain={domain:[],clipped:!1},this.allowNull=!1,this.title=new Wa,this.gridLength=0,this.gridPadding=0,this.seriesAreaPadding=0,this.layoutConstraints={stacked:!0,align:"justify",width:100,unit:"percent"},this.boundSeries=[],this.includeInvisibleDomains=!1,this.interactionEnabled=!0,this.axisGroup=new ee({name:`${this.id}-axis`}),this.tickLineGroup=this.axisGroup.appendChild(new jg({name:`${this.id}-Axis-tick-lines`,zIndex:0})),this.tickLabelGroup=this.axisGroup.appendChild(new jg({name:`${this.id}-Axis-tick-labels`,zIndex:2})),this.labelGroup=new ee({name:`${this.id}-Labels`,zIndex:pe.SERIES_ANNOTATION}),this.gridGroup=new Ds({name:`${this.id}-Axis-grid`,zIndex:pe.AXIS_GRID}),this.gridFillGroup=this.gridGroup.appendChild(new ee({name:`${this.id}-gridFills`})),this.gridLineGroup=this.gridGroup.appendChild(new ee({name:`${this.id}-gridLines`})),this.crossLineRangeGroup=new jg({name:`${this.id}-CrossLines-Range`,zIndex:pe.SERIES_CROSSLINE_RANGE}),this.crossLineLineGroup=new jg({name:`${this.id}-CrossLines-Line`,zIndex:pe.SERIES_CROSSLINE_LINE}),this.crossLineLabelGroup=new jg({name:`${this.id}-CrossLines-Label`,zIndex:pe.SERIES_LABEL}),this.tickLabelGroupSelection=pn.select(this.tickLabelGroup,wf,!1),this.line=new $D,this.tick=new Np,this.gridLine=new YD,this.label=this.createLabel(),this.defaultTickMinSpacing=f3.defaultTickMinSpacing,this.translation={x:0,y:0},this.layout={label:{fractionDigits:0,spacing:this.label.spacing,format:this.label.format},labelThickness:0},this.axisContext=void 0,this.cleanup=new qe,this.isHovering=!1,this.range=[0,1],this.visibleRange=[0,1],this.animatable=!0,this.tickLayout=void 0,this.formatterBoundSeries=new oj(()=>{const{direction:n,boundSeries:s}=this;return za(s.flatMap(a=>a.getFormatterContext(n)))}),this.moduleMap=new QT,this.range=this.scale.range.slice();for(const n of this.crossLines)this.initCrossLine(n);this.cleanup.register(this.moduleCtx.widgets.containerWidget.addListener("mousemove",n=>this.onMouseMove(n)),this.moduleCtx.widgets.containerWidget.addListener("mouseleave",()=>this.endHovering()))}set crossLines(e){const{CrossLineConstructor:i}=this.constructor;for(const n of this._crossLines)this.detachCrossLine(n);this._crossLines=e.map(n=>{const s=new i;return s.set(n),s});for(const n of this._crossLines)this.attachCrossLine(n),this.initCrossLine(n)}get crossLines(){return this._crossLines}get type(){return this.constructor.type??""}get primaryLabel(){}get primaryTick(){}isCategoryLike(){return!1}resetAnimation(e){}onMouseMove(e){const n=this.tickLabelGroup.pickNode(e.currentX,e.currentY)?.datum,{textUntruncated:s=void 0}=n??{};s?(this.moduleCtx.tooltipManager.updateTooltip(this.id,{canvasX:e.currentX,canvasY:e.currentY,showArrow:!1},[{type:"structured",title:s}]),this.isHovering=!0):this.endHovering()}endHovering(){this.isHovering&&(this.moduleCtx.tooltipManager.removeTooltip(this.id,void 0,!0),this.isHovering=!1)}attachCrossLine(e){this.crossLineRangeGroup.appendChild(e.rangeGroup),this.crossLineLineGroup.appendChild(e.lineGroup),this.crossLineLabelGroup.appendChild(e.labelGroup)}detachCrossLine(e){e.rangeGroup.remove(),e.lineGroup.remove(),e.labelGroup.remove()}destroy(){this.moduleMap.destroy(),this.cleanup.flush()}setScaleRange(e){const{range:i,scale:n}=this,s=(i[1]-i[0])/(e[1]-e[0]),a=s*e[0],o=i[0]-a;n.range=[o,o+s]}updateScale(){const{range:[e,i]}=this;this.setScaleRange(this.visibleRange);for(const n of this.crossLines)n.clippedRange=[e,i]}setCrossLinesVisible(e){this.crossLineRangeGroup.visible=e,this.crossLineLineGroup.visible=e,this.crossLineLabelGroup.visible=e}attachAxis(e){e.gridNode.appendChild(this.gridGroup),e.axisNode.appendChild(this.axisGroup),e.labelNode.appendChild(this.labelGroup),e.crossLineRangeNode.appendChild(this.crossLineRangeGroup),e.crossLineLineNode.appendChild(this.crossLineLineGroup),e.crossLineLabelNode.appendChild(this.crossLineLabelGroup)}detachAxis(){this.gridGroup.remove(),this.axisGroup.remove(),this.labelGroup.remove(),this.crossLineRangeGroup.remove(),this.crossLineLineGroup.remove(),this.crossLineLabelGroup.remove()}attachLabel(e){this.labelGroup.append(e)}inRange(e,i=0){const[n,s]=xi(this.range);return e>=n-i&&e<=s+i}getRangeOverflow(e){const{range:i,visibleRange:n}=this,s=(i[1]-i[0])/(n[1]-n[0]),[a,o]=xi([i[0]-s*n[0],i[0]-s*n[0]+s]);return eo?e-o:0}onGridLengthChange(e,i){i^e&&this.onGridVisibilityChange();for(const n of this.crossLines)this.initCrossLine(n)}onGridVisibilityChange(){}createLabel(){return new Mi}update(){this.formatterBoundSeries.clear(),this.updatePosition(),this.updateSelections(),this.gridLineGroup.visible=this.gridLine.enabled,this.updateLabels(),this.updateCrossLines()}getLabelStyles(e,i,n=this.label){const s={border:n.border,color:n.color,cornerRadius:n.cornerRadius,fill:n.fill,fillOpacity:n.fillOpacity,fontFamily:n.fontFamily,fontSize:n.fontSize,fontStyle:n.fontStyle,fontWeight:n.fontWeight,padding:n.padding,spacing:n.spacing};let a;n.itemStyler&&(a=this.cachedCallWithContext(n.itemStyler,{...e,...s}));const o=Et(a,i,s);return{border:o.border,color:o.color,cornerRadius:o.cornerRadius,fill:o.fill,fillOpacity:o.fillOpacity,fontFamily:o.fontFamily,fontSize:o.fontSize,fontStyle:o.fontStyle,fontWeight:o.fontWeight,padding:o.padding,spacing:o.spacing}}getTickSize(e=this.tick){return e.enabled?e.size:0}getTickSpacing(e=this.tick){if(!e.enabled)return 0;const i=this.chartLayout?.scrollbars?.[this.id];return!i?.enabled||i.placement!=="inner"?0:i.tickSpacing??0}processData(){this.invalidateLayoutCache();const{includeInvisibleDomains:e,boundSeries:i,direction:n}=this,a=(e?i:i.filter(o=>o.isEnabled())).map(o=>o.getDomain(n));this.setDomains(...a)}getDomainExtentsNice(){return[this.nice,this.nice]}setDomains(...e){let i,n;if(e.length>0){const s=this.scale.normalizeDomains(...e);i={domain:s.domain,sortMetadata:{sortOrder:1}},n=s.animatable}else i={domain:[]},n=!0;this.dataDomain=this.normaliseDataDomain(i),this.allowNull=this.dataDomain.domain.some(function(s){return s==null}),this.reverse&&(this.dataDomain={...this.dataDomain,domain:this.dataDomain.domain.toReversed()}),this.animatable=n}calculateDomain(e,i="none"){const{dataDomain:{domain:n},range:s,scale:a,gridLength:o}=this,r=Tc(s),l=[0,1],c=this.getDomainExtentsNice();this.updateScale();const{unzoomedTickLayoutCache:u}=this;let d;if(u==null||!AB(u,{domain:n,rangeExtent:r,nice:c,gridLength:o,visibleRange:l,initialPrimaryTickCount:e,scrollbarKey:i})){const g=a.range;this.setScaleRange([0,1]);const f=c.map(y=>y?0:2);d=this.calculateTickLayout(n,f,[0,1],e),a.range=g,this.unzoomedTickLayoutCache={domain:n,rangeExtent:r,nice:c,gridLength:o,visibleRange:l,initialPrimaryTickCount:e,scrollbarKey:i,tickLayout:d}}else d=u.tickLayout;return this.updateScale(),a.domain=d.niceDomain,{unzoomedTickLayout:d,domain:a.domain}}calculateLayout(e,i){this.chartLayout=i;const n=this.getScrollbarLayoutCacheKey(i),{visibleRange:s}=this,a=s[0]===0&&s[1]===1,{unzoomedTickLayout:o,domain:r}=this.calculateDomain(e,n),l=this.getDomainExtentsNice();let c;if(a)c=o;else{const{range:x,gridLength:S}=this,D=Tc(x),A=l.map(w=>w?1:2),{tickLayoutCache:I}=this;I==null||!AB(I,{domain:r,rangeExtent:D,nice:l,gridLength:S,visibleRange:s,initialPrimaryTickCount:e,scrollbarKey:n})?(c=this.calculateTickLayout(r,A,s,e),this.tickLayoutCache={domain:r,rangeExtent:D,nice:l,gridLength:S,visibleRange:s,initialPrimaryTickCount:e,scrollbarKey:n,tickLayout:c}):c=I.tickLayout}const{rawTickCount:u=0,fractionDigits:d,bbox:g}=c,f=o.rawTickCount??0,y=u!==0&&f!==0?{zoomed:u,unzoomed:f}:void 0;return this.tickLayout=c.layout,this.layout.label={fractionDigits:d,spacing:this.label.spacing,format:this.label.format},this.layoutCrossLines(),{primaryTickCount:y,bbox:g}}invalidateLayoutCache(){this.unzoomedTickLayoutCache=void 0,this.tickLayoutCache=void 0,this.tickLayout=void 0}getScrollbarLayoutCacheKey(e){const i=e?.scrollbars?.[this.id];return i?.enabled?`${i.placement}:${i.spacing}:${i.thickness}:${i.tickSpacing}`:"none"}updateCrossLines(){const e=this.hasDefinedDomain()||this.hasVisibleSeries();for(const i of this.crossLines)i.gridPadding=this.gridPadding,i.update(e)}updatePosition(){const{crossLineRangeGroup:e,crossLineLineGroup:i,crossLineLabelGroup:n,gridGroup:s,translation:a}=this,o=Math.floor(a.x),r=Math.floor(a.y);s.setProperties({translationX:o,translationY:r}),e.setProperties({translationX:o,translationY:r}),i.setProperties({translationX:o,translationY:r}),n.setProperties({translationX:o,translationY:r})}tickFormatter(e,i,n,s,a,o="long"){const{moduleCtx:r,label:l}=this,{formatManager:c}=r,u=n?this.primaryLabel:void 0,d=this.tickFormatParams(e,i,s,a),g=this.formatterBoundSeries.get();let f,y,x;if(d.type==="number")f=d.fractionDigits;else if(d.type==="date"){const{unit:O,step:L,epoch:R}=d;y={unit:O,step:L,epoch:R},x=d.truncateDate}const S=this.uncachedCallWithContext.bind(this),D={datum:void 0,seriesId:void 0,legendItemName:void 0,key:void 0,source:"axis-label",property:this.getFormatterProperty(),domain:e,boundSeries:g},A=u??l,I=n?l.format:void 0,{allowNull:w}=this,N={specifier:Tf.mergeSpecifiers(u?.format,l.format),truncateDate:x,allowNull:w};return(O,L)=>{const R=this.datumFormatParams(O,D,f,y,o);return R.value=O,A.formatValue(S,R,L,{specifier:I,dateStyle:o,truncateDate:x})??c.format(S,R,N)??c.defaultFormat(R,N)}}formatDatum(e,i,n,s,a,o,r,l,c,u,d){if(i==null&&!d)return"";const{moduleCtx:g,dataDomain:f}=this;l??(l=f.domain);const{formatManager:y}=g,x=this.formatterBoundSeries.get();let S;switch(n){case"crosshair":case"annotation-label":S=this.layout.label.fractionDigits+1;break;case"series-label":S=2;break;case"tooltip":S=3;break;case"legend-label":S=void 0;break}const D=this.datumFormatParams(i,{source:n,datum:o,seriesId:s,legendItemName:a,key:r,property:this.getFormatterProperty(),domain:l,boundSeries:x},S,void 0,"long"),{type:A,value:I}=D,w=this.createCallWithContext(e),N=c?.formatValue(w,A,I,u??D)??y.format(w,D,{allowNull:d})??this.label.formatValue(w,D,Number.NaN)??y.defaultFormat(D);return qt(N)?N:String(N)}getBBox(){return this.axisGroup.getBBox()}initCrossLine(e){e.scale=this.scale,e.gridLength=this.gridLength,e.gridPadding=this.gridPadding}hasVisibleSeries(){return this.boundSeries.some(e=>e.isEnabled())}clipTickLines(e,i,n,s){this.tickLineGroup.setClipRect(new Tt(e,i,n,s))}clipGrid(e,i,n,s){this.gridGroup.setClipRect(new Tt(e,i,n,s))}getFormatterProperty(){const{direction:e,boundSeries:i}=this;let n=e;for(const s of i){const a=s.resolveKeyDirection(e);if(a!==e){n=a;break}}return n}getTitleFormatterParams(e){const{direction:i}=this,n=this.formatterBoundSeries.get();return{domain:e,direction:i,boundSeries:n,defaultValue:this.title?.text}}normaliseDataDomain(e){return{domain:[...e.domain],clipped:!1}}getLayoutTranslation(){return this.translation}getLayoutState(){return{id:this.id,rect:this.getBBox(),translation:this.getLayoutTranslation(),gridPadding:this.gridPadding,seriesAreaPadding:this.seriesAreaPadding,tickSize:this.getTickSize(),direction:this.direction,domain:this.dataDomain.domain,scale:this.scale,...this.layout}}getModuleMap(){return this.moduleMap}getUpdateTypeOnResize(){return Ct.PERFORM_LAYOUT}createModuleContext(){return this.axisContext??(this.axisContext=this.createAxisContext()),{...this.moduleCtx,parent:this.axisContext}}createAxisContext(){const{scale:e}=this;return{axisId:this.id,scale:this.scale,direction:this.direction,continuous:ti.is(e)||Gc.is(e),getCanvasBounds:()=>Ti.toCanvas(this.axisGroup),seriesKeyProperties:()=>this.boundSeries.reduce((i,n)=>{const s=n.getKeyProperties(this.direction);for(const a of s)i.add(a);return i},new Set),seriesIds:()=>this.boundSeries.map(i=>i.id),scaleInvert:i=>e.invert(i,!0),scaleInvertNearest:i=>e.invert(i,!0),formatScaleValue:(i,n,s)=>{const{allowNull:a}=this;return this.formatDatum(void 0,i,n,void 0,void 0,void 0,void 0,void 0,s,void 0,a)},attachLabel:i=>this.attachLabel(i),inRange:(i,n)=>this.inRange(i,n),getRangeOverflow:i=>this.getRangeOverflow(i),pickBand:i=>this.pickBand(i),measureBand:i=>this.measureBand(i)}}pickBand(e){if(!Rr.is(this.scale))return;const{scale:i,range:n,id:s}=this,a=i.invert(this.isVertical()?e.y:e.x,!0),[o,r,l]=IB(i,n,a);return{id:s,value:a,band:[r,l],position:o}}measureBand(e){if(!Rr.is(this.scale))return;const[,i,n]=IB(this.scale,this.range,e);return{band:[i,n]}}isVertical(){return this.direction===z.Y}isReversed(){return this.reverse}cachedCallWithContext(e,i){const{callbackCache:n,chartService:s}=this.moduleCtx;return n.call([this,s],e,i)}uncachedCallWithContext(e,i){const{chartService:n}=this.moduleCtx;return js([this,n],e,i)}createCallWithContext(e){const{chartService:i}=this.moduleCtx;return(n,s)=>js([e,this,i],n,s)}};Hu.defaultTickMinSpacing=50;Hu.CrossLineConstructor=Xs;T([b],Hu.prototype,"nice",2);T([b],Hu.prototype,"reverse",2);T([b],Hu.prototype,"interval",2);T([b],Hu.prototype,"title",2);T([Bi((t,e,i)=>t.onGridLengthChange(e,i))],Hu.prototype,"gridLength",2);var JT=Hu,tL=class extends Mi{constructor(){super(...arguments),this.autoRotateAngle=335}};T([b],tL.prototype,"autoRotate",2);T([b],tL.prototype,"autoRotateAngle",2);var Of=class m3 extends Rr{constructor(){super(...arguments),this.type="category",this.defaultTickCount=0,this.index=new Map,this.indexInitialized=!1,this._domain=[]}static is(e){return e instanceof m3}set domain(e){this._domain!==e&&(this.invalid=!0,this._domain=e,this.index.clear(),this.indexInitialized=!1)}get domain(){return this._domain}get bands(){return this._domain}normalizeDomains(...e){let i;const n=new Set;let s=!0;for(const a of e){const o=a.domain;n.has(o)||(n.add(o),i==null?i=kB(o):(s&&(s=TQ(o,i)),i=kB([...i,...o])))}return i??(i=[]),{domain:i,animatable:s}}toDomain(e){}invert(e,i=!1){this.refresh();const n=i?this.bandwidth/2:0,s=this.invertNearestIndex(Math.max(0,e-n));return i||e===this.ordinalRange(s)?this.domain[s]:void 0}ticks(e,i=this.domain,n){const{bands:s}=this;let{tickCount:a}=e;if(a===0){const x=s.length>1?1:0;return{ticks:s[x]?[s[x]]:[],count:void 0,firstTickIndex:x}}let o=a!=null&&a!==0?Math.trunc(s.length/a):1;if(o=nN(o),o<=1)return dG(i,!1,n);a=Math.trunc(s.length/o);const r=o*a,l=nN(Math.trunc((s.length-r)/2)),c=Nt(0,Math.floor((n?.[0]??0)*s.length),s.length),u=Nt(0,Math.ceil((n?.[1]??1)*s.length),s.length),d=Math.floor((c-l)/o)*o+l,g=Math.ceil((u-l)/o)*o+l,f=[];for(let x=d;x=0&&x0?this.findIndex(f[0]):void 0;return y!=null&&(y=Math.floor((y-l)/o)),{ticks:f,count:void 0,firstTickIndex:y}}findIndex(e){const{index:i,indexInitialized:n}=this;if(!n){const{domain:s}=this;for(let a=0;ao%d.duration===0);if(r){const{timeInterval:d,step:g,duration:f}=r,y={...d,step:g*Al(d)*Math.round(o/f),epoch:xT(d,{weekStart:XD})};return fo(y,new Date(t),new Date(e),{visibleRange:s,extend:a})}let l=new Date(Math.min(t,e));const c=new Date(Math.max(t,e)),u=[];for(;l<=c;)u.push(l),l=new Date(l),l.setMilliseconds(l.getMilliseconds()+o);return u}function OQ(t,e,i,n){const{interval:s}=i,a=Math.min(Ss(t),Ss(e)),o=Math.max(Ss(t),Ss(e));let r;if(Ie(s)||typeof s=="string")r=s;else{let d;typeof s=="number"&&(d=(o-a)/Math.max(s,1),lp(d,n)&&(d=void 0)),d??(d=i.tickCount??ti.defaultTickCount),r=Px(a,o,d,i.minTickCount,i.maxTickCount,{weekStart:XD})}if(r==null)return[t,e];const l=fo(r,new Date(a),new Date(o),{extend:!0});if(l==null||l.length<2)return[t,e];const c=l[0],u=l.at(-1);return t<=e?[c,u]:[u,c]}var EQ=1e3,du=class x3 extends Gc{constructor(){super(...arguments),this.type="ordinal-time",this.defaultTickCount=ti.defaultTickCount,this._domain=[],this.isReversed=!1}static is(e){return e instanceof x3}set domain(e){e!==this._domain&&(this.invalid=!0,this._domain=e,this._bands=void 0,this._numericBands=void 0,this._uniformityCache=void 0,this.isReversed=CB(e))}get domain(){return this._domain}get bands(){return this._bands??(this._bands=this.isReversed?this.domain.slice().reverse():this.domain),this._bands}get numericBands(){return this._numericBands??(this._numericBands=this.bands.map(e=>e.valueOf())),this._numericBands}getUniformityCache(e){const{bands:i}=this,n=i.length;if(!e||e[0]===0&&e[1]===1)return n>EQ&&this._uniformityCache===void 0&&(this._uniformityCache=fB(i)),this._uniformityCache;const s=Math.floor(e[0]*n),a=Math.min(Math.ceil(e[1]*n),n-1);return fB(i,s,a)}normalizeDomains(...e){const i=e.filter(a=>a.domain.length>0);if(i.length===0)return{domain:[],animatable:!1};const n=i[0].domain,s=i.every(a=>a.domain===n);if(i.length===1||s){const a=i[0];let o=a.domain,r,l=!1;return a.sortMetadata?.sortOrder===void 0?r=aT(o):(r=a.sortMetadata.sortOrder,l=a.sortMetadata.isUnique??!1),r===-1?o=o.slice().reverse():r==null&&(o=l?o.slice().sort((c,u)=>c.valueOf()-u.valueOf()):rN(o.slice())),{domain:o,animatable:!0}}return{domain:rN(i.map(a=>a.domain).flat()),animatable:!0}}ticks(e,i,n=[0,1],{extend:s=!1,dropInitial:a=!1}={}){const{interval:o,maxTickCount:r,tickCount:l=r}=e,{bands:c,reversed:u}=this;if(!c.length)return;if(u&&(n=[1-n[1],1-n[0]]),this.refresh(),o==null){const{ticks:I,tickOffset:w,tickEvery:N}=this.getDefaultTicks(i,l,n,s);let O=I.length>0?this.findIndex(I[0]):void 0;return O=O==null?void 0:Math.floor((O-w)/N),{ticks:I,count:void 0,firstTickIndex:O}}let d,g;i&&i.length>=2?(d=i[0].valueOf(),g=i.at(-1).valueOf()):(d=c[0].valueOf(),g=c.at(-1).valueOf());const[f,y]=this.range,x=Math.abs(y-f),S=b3({start:d,stop:g,interval:o,availableRange:x,visibleRange:n,extend:s})??this.getDefaultTicks(i,l,n,s).ticks,D=[];let A=-1;for(const I of S){const w=this.findIndex(I,wi.Trailing)??-1,N=w===A;A=w,!(a&&w===0)&&w!==-1&&!N&&D.push(c[w])}return{ticks:D,count:void 0,firstTickIndex:void 0}}stepTicks(e,i,n=[0,1],s=!0){const a=i?this.bandDomainIndices(i):void 0,o=this.ticksEvery(a,n,e,0,!1),r=o.at(-1),l=s&&e>1?a?.[1]:void 0,c=l!=null&&r!=null?this.findIndex(r):void 0;return c!=null&&l!=null&&l-c0&&t[0]>t.at(-1)}var RQ=1e3,TN=5e7,eu=class v3 extends Gc{constructor(){super(...arguments),this.type="unit-time",this.defaultTickCount=1/0,this._domain=[],this._bands=void 0}static is(e){return e instanceof v3}static supportsInterval(e,i){return wB(e,i)}set domain(e){if(e!==this._domain){if(e.length===this._domain.length&&e.length>=2&&e[0].valueOf()===this._domain[0].valueOf()&&e[1].valueOf()===this._domain[1].valueOf()){this._domain=e;return}this._domain=e,this.invalidateCaches()}}get domain(){return this._domain}get interval(){return this._interval}set interval(e){this._interval!==e&&(this._interval=e,this.invalidateCaches())}invalidateCaches(){this._bands=void 0,this._numericBands=void 0,this._uniformityCache=void 0,this._domainBoundaries=void 0,this._bandRangeCache=void 0,this._encodedBands=void 0,this._encodingParams=void 0,this._linearParams=void 0}get bands(){if(this._bands===void 0)if(this.ensureEncodedBands(),this._encodedBands!=null&&this._encodingParams!=null){const e=this._encodingParams;this._bands=this._encodedBands.map(i=>Lj(i,e))}else this._bands=[];return this._bands}get numericBands(){if(this._numericBands===void 0)if(this.ensureEncodedBands(),this._encodedBands!=null&&this._encodingParams!=null){const e=this._encodingParams;this._numericBands=this._encodedBands.map(i=>Hh(i,e))}else this._numericBands=[];return this._numericBands}ensureEncodedBands(){if(this._encodedBands!==void 0)return;const{domain:e,interval:i}=this;if(e.length<2||i==null){this._encodedBands=[];return}const n=this.getCachedBandRange();if(n==null){this._encodedBands=[];return}const[s,a]=n,o={visibleRange:[0,1],extend:!1};if(mM(i,s,a,o)>TN){pt.warnOnce("the configured unit results in too many bands, ignoring. Supply a larger unit."),this._encodedBands=[];return}const{encodedValues:r,encodingParams:l}=Tj(i,s,a,o);this._encodedBands=r,this._encodingParams=l}getBandCountForUpdate(){return this.ensureEncodedBands(),this._encodedBands?.length??0}getUniformityCache(e){const i=this.getBandCountForUpdate();if(!e||e[0]===0&&e[1]===1){if(i>RQ&&this._uniformityCache===void 0)if(this.ensureEncodedBands(),this._encodingParams!=null&&this._encodedBands!=null&&this._encodedBands.length>=2){const n=Hh(this._encodedBands[0],this._encodingParams),s=Hh(this._encodedBands[1],this._encodingParams);this._uniformityCache={isUniform:!0,interval:s-n}}else this._uniformityCache={isUniform:!1};return this._uniformityCache}if(this.ensureEncodedBands(),this._encodingParams!=null&&this._encodedBands!=null&&this._encodedBands.length>=2){const n=Hh(this._encodedBands[0],this._encodingParams);return{isUniform:!0,interval:Hh(this._encodedBands[1],this._encodingParams)-n}}return{isUniform:!1}}normalizeDomains(...e){return e3(...e)}getCachedBandRange(){const{domain:e,interval:i}=this;if(!(e.length<2||i==null))return this._bandRangeCache??(this._bandRangeCache={start:La(i,e[0]),stop:La(i,e[1])}),[this._bandRangeCache.start,this._bandRangeCache.stop]}getDomainBoundaries(){const{interval:e}=this;if(e!=null){if(this._domainBoundaries===void 0){const i=this.getCachedBandRange();if(i==null)return;const[n,s]=i,a=Math.min(n.valueOf(),s.valueOf()),o=Math.max(n.valueOf(),s.valueOf()),r=mT(e,new Date(o)).valueOf();this._domainBoundaries={d0:a,dNext:r}}return this._domainBoundaries}}getLinearParams(){if(this._linearParams===void 0&&(this.ensureEncodedBands(),this._encodedBands!=null&&this._encodingParams!=null&&this._encodedBands.length>=2)){const e=Hh(this._encodedBands[0],this._encodingParams),i=Hh(this._encodedBands[1],this._encodingParams);this._linearParams={firstBandTime:e,intervalMs:i-e}}return this._linearParams}isLinearUnit(){const e=this._encodingParams?.unit;return e==="millisecond"||e==="second"||e==="minute"||e==="hour"}findIndex(e,i=wi.Leading){if(e==null)return;const n=this.getBandCountForUpdate();if(n===0)return;if(n===1)return 0;const s=this.getLinearParams();if(s==null||s.intervalMs===0)return super.findIndex(e,i);const{firstBandTime:a,intervalMs:o}=s,r=e.valueOf(),l=(r-a)/o;let c=i===wi.Trailing?Math.ceil(l):Math.floor(l);if(c=Math.max(0,Math.min(c,n-1)),this.isLinearUnit()){if(i===wi.Trailing){if(a+c*or&&c===0)return;return c}const u=this.numericBands;if(i===wi.Trailing){for(;c>0&&u[c-1]>=r;)c--;for(;c0&&u[c]>r;)c--;if(u[c]>r)return}return c}convert(e,i){this.refresh(),e instanceof Date||(e=new Date(e));const{domain:n,interval:s}=this;if(n.length<2)return Number.NaN;if(i?.clamp!==!0&&s!=null){const a=this.getDomainBoundaries();if(a!=null){const o=e.valueOf();if(o=a.dNext)return Number.NaN}}return super.convert(e,i)}calculateBands(e,i,n=!1){const s=e===this.domain&&i[0]===0&&i[1]===1&&!n;if(s&&this._bands!=null)return{bands:this._bands,firstBandIndex:0};if(e.length<2)return{bands:[],firstBandIndex:void 0};const{interval:a}=this;if(a==null)return{bands:[],firstBandIndex:void 0};const o={visibleRange:i,extend:n};if(!wB(e,a,o))return{bands:[],firstBandIndex:void 0};const r=e===this.domain?this.getCachedBandRange():LN(e,a);if(r==null)return{bands:[],firstBandIndex:void 0};const[l,c]=r;if(mM(a,l,c,o)>TN)return pt.warnOnce("the configured unit results in too many bands, ignoring. Supply a larger unit."),{bands:[],firstBandIndex:void 0};const u=fo(a,l,c,o),d=bT(a,l,c,o);return s&&(this._bands=u),{bands:u,firstBandIndex:d}}ticks({interval:e},i=this.domain,n=[0,1],{extend:s=!1}={}){if(i.length<2)return;const a=i===this.domain&&!s;if(a&&e!=null)return this.ticksFromNumericBands(e,i,n);let o,r,l;return a?({bands:o}=this.calculateBands(i,[0,1],!1),l=zz(o,!1,n),r=l[0]):{bands:o,firstBandIndex:r}=this.calculateBands(i,n,s),e==null?{ticks:o,count:void 0,firstTickIndex:r}:this.ticksFromBands(e,o,i,n,s,l,r)}ticksFromNumericBands(e,i,n){const s=this.numericBands,a=s.length;if(a===0)return{ticks:[],count:0,firstTickIndex:void 0};const o=zz(s,!1,n),r=o[0],l=this.interval?Ms(this.interval):1/0,c=Math.min(i[0].valueOf(),i[1].valueOf()),u=Math.max(i[0].valueOf(),i[1].valueOf());let d,g,f;if(Ie(e)||typeof e=="string")d=fo(e,i[0],i[1],{extend:!0,visibleRange:n}).map(I=>I.valueOf()),g=0,f=d.length-1;else{const A=o[0],I=o[1]-1;d=s,g=Dr(A,I,w=>s[w]<=c)??A,f=Dr(A,I,w=>s[w]<=u)??I}const y=[];let x;for(let A=g;A<=f;A++){const I=d[A],w=Dr(0,a-1,N=>s[N]<=I);w!=null&&w!==x&&I-s[w]<=l&&y.push(s[w]),x=w}const[S,D]=this.sliceTickWindow(y,c,u,!1);return{ticks:y.slice(S,D+1).map(A=>new Date(A)),count:y.length,firstTickIndex:r}}ticksFromBands(e,i,n,s,a,o,r){const l=this.interval?Ms(this.interval):1/0,c=Math.min(n[0].valueOf(),n[1].valueOf()),u=Math.max(n[0].valueOf(),n[1].valueOf());let d,g,f;if(Ie(e)||typeof e=="string")d=fo(e,n[0],n[1],{extend:!0,visibleRange:s}),g=0,f=d.length-1;else{const I=o?o[0]:0,w=o?o[1]-1:i.length-1;d=i,g=Dr(I,w,N=>i[N].valueOf()<=c)??I,f=Dr(I,w,N=>i[N].valueOf()<=u)??w}const y=[];let x;for(let I=g;I<=f;I++){const w=d[I].valueOf(),N=Dr(0,i.length-1,L=>i[L].valueOf()<=w),O=N!=null&&N!=x?i[N]:void 0;x=N,O!=null&&w-O.getTime()<=l&&y.push(O)}const S=y.map(I=>I.valueOf()),[D,A]=this.sliceTickWindow(S,c,u,a);return{ticks:y.slice(D,A+1),count:y.length,firstTickIndex:r}}sliceTickWindow(e,i,n,s){let a,o;if(this.interval){const c=LN([new Date(i),new Date(n)],this.interval);a=c[0].valueOf(),o=c[1].valueOf()}else a=i,o=n;let r=vf(0,e.length-1,c=>e[c]>=a)??0,l=Dr(0,e.length-1,c=>e[c]<=o)??e.length-1;return s&&(r=Math.max(r-1,0),l=Math.min(l+1,e.length-1)),[r,l]}};function wB(t,e,i){const[n,s]=LN(t,e);return mM(e,n,s,i)<=TN}function LN(t,e){const i=La(e,t[0]),n=La(e,t[1]);return[i,n]}function PQ(t,e,i,n,s){let[a,o]=xi(e.map(Number));const r=Math.floor(i.unzoomed);if(r<=1){const[D,A]=zQ(a,o),I=5*Math.pow(2,-Math.ceil(Math.log2(s[1]-s[0]))),{ticks:w}=Xf(D,A,I,void 0,void 0,s),N=[t.toDomain(D),t.toDomain(A)];return n&&N.reverse(),{domain:N,ticks:w}}if(a===o){const D=Math.floor(Math.log10(a)),A=Math.pow(10,D),I=Math.min(A,1),w=r-1;a-=I*Math.floor(w/2),o=a+I*w}let l=a,c=o;l=BQ(l,c,r);const u=_Q(l,c,r),d=r-1;c=l+d*u;const g=Math.floor(l/u)*u,f=Math.floor(c/u)*u;g<=a&&f>=o&&(l=g,c=f);const y=[t.toDomain(l),t.toDomain(c)];n&&y.reverse();const x=u*((i.unzoomed-1)/(i.zoomed-1)),S=VQ(l,x,Math.floor(i.zoomed));return{domain:y,ticks:S}}function zQ(t,e){let i=t,n=e,s=0;do{[i,n]=ST(i,n);const{ticks:a}=Xf(i,n,5);if(a.length%2===1)return[i,n];i-=1,n+=1}while(s++<10);return[t,e]}function BQ(t,e,i){t=Math.floor(t);const n=Math.abs(e-t)/(i-1),s=Math.floor(Math.log10(n)),a=Math.pow(10,s);return Math.floor(t/a)*a}function VQ(t,e,i){const n=Hf(e),s=Math.pow(10,n),a=[];for(let o=0;o0&&n<=1?i:n>1&&n<=2?2*i:n>2&&n<=5?5*i:n>5&&n<=10?10*i:t}var HQ=18,jQ=[1,2,3,4,6,8,9,10,12];function NB(t,e=0){const i=[];for(const n of t){const{x:s,y:a,width:o,height:r}=n;if(i.some(l=>iT(l,s,a,o+e,r+e)))return!0;i.push(n)}return!1}function GQ(t,e,i,n){if(t==null)return e;if(typeof t!="number"){const r=e[0],l=typeof t=="string"?{unit:t,epoch:r}:{...t,epoch:r};return fo(l,e[0],e[1],{visibleRange:i,extend:n})}const s=[],a=e[0].valueOf(),o=e[1].valueOf();for(let r=a;r<=o;r+=t)s.push(new Date(r));return s}function TB(t,e){if(t.length!==e.length)return!1;for(let i=0;i{const I=Rr.is(c)&&c.bandwidth||1/0,w=(c.bandwidth??0)/2,N=KQ(u.enabled,s,e,i,r,l,d);let O=f?y:I,L=f?I:y;if(u.rotation){const P=tT(u.rotation,O,L);O=P.width,L=P.height}const R={font:u,maxWidth:O,maxHeight:L,overflow:u.truncate?"ellipsis":"hide",textWrap:u.wrapping};for(let P=0;P(d?c:u)?.(g,f)??String(g)}function YQ(t,e,i,n,s,a,o,r){if(!Ef.is(t)&&!Gc.is(t))return;const l=Rx(a);if(l==null)return;o&&(e=[1-e[1],1-e[0]]);const c=Math.min(t.domain[0].valueOf(),t.domain.at(-1).valueOf()),u=Math.max(t.domain[0].valueOf(),t.domain.at(-1).valueOf());let[d,g]=yT(new Date(c),new Date(u),e);d=La(l,d),d.valueOf()>=c&&(d=Nj(l,d)),g=wj(l,g),g.valueOf()<=u&&(g=mT(l,g));const f=fo(l,d,g),y=Ms(a),x=du.is(t),S={...s,interval:a},D=[];let A,I,w,N=0;if(du.is(t)){const O=Er(a);I=r!=null&&Ms(r)>=Ms(O)?2:3,w=wi.Trailing;const L=i/n,R=t.bandCount(e)/(L*HQ);N=jQ.findLast(P=>R>=P)??1}else eu.is(t)&&(t.interval==null||Ms(t.interval)>=y)?I=1:(I=0,w=wi.Interpolate);for(let O=0;OZ.valueOf(){switch(I){case 0:case 3:return Z.valueOf()+y>R.valueOf();case 1:case 2:return Z.valueOf()>=R.valueOf()}}),$.length===0)continue;const Y=$[0],U=sT(Y,L);(I===0?U===0:U<=y)&&(!x||!P)&&(A??(A=new Set),A.add(D.length)),D.push(...$)}return A?.size===1&&A.has(0)&&(A=void 0),{ticks:D,primaryTicksIndices:A,alignment:w}}function $Q(t,e,i,n,s){const a=LB(t.format,n);if(a==null)return{width:0,height:0};const o=kf(a),r=n?Rx(n):void 0,l=LB(e?.format,r),c=l?kf(l):o,u=new Date(i[0]),d=new Date(i.at(-1)),g=r?fo(r,new Date(i[0]),new Date(i.at(-1)),{extend:!0}):void 0;let f=0,y=0;if(o!=null){const x=Lf(t),S=x.left+x.right,D=x.top+x.bottom;let A,I;g!=null&&g.length>1?(A=g[0],I=g[1]):(A=u,I=d);const w=fo(n,A,I,{limit:50});for(const N of w){const O=o(N),{width:L,height:R}=s.measureLines(O);f=Math.max(f,L+S),y=Math.max(y,R+D)}}if(c!=null&&g!=null){const x=Lf(e),S=x.left+x.right,D=x.top+x.bottom;for(const A of g){const I=c(A),{width:w,height:N}=s.measureLines(I);f=Math.max(f,w+S),y=Math.max(y,N+D)}}return{width:Math.ceil(f),height:Math.ceil(y)}}function XQ(t,e,i,n){return t&&!e?i*n===-1?"top":"bottom":"middle"}function ZQ(t,e,i,n,s){const a=e>0&&e<=Math.PI,o=i>0&&i<=Math.PI,r=a||o?-1:1;if(t)if(e||i){if(n*r===-1)return"right"}else return"center";else if(n*s===-1)return"right";return"left"}function LB(t,e){if(t!=null){if(typeof t=="string")return t;if(Ie(t)&&e!=null)return t[Er(e)]}}function qQ(t,e,i=0){const n=Dl(t),s=!n&&i>=0&&i<=Math.PI?-1:1,a=!n&&i-Math.PI/2>=0&&i-Math.PI/2<=Math.PI?-1:1,o=e?s*(Math.PI/2):0;return{configuredRotation:n,defaultRotation:o,parallelFlipFlag:s,regularFlipFlag:a}}var QQ=new Date(1970,0,4);function M3(t){const{label:e,domain:i,axisRotation:n,labelOffset:s,sideFlag:a}=t,{defaultRotation:o,configuredRotation:r,parallelFlipFlag:l,regularFlipFlag:c}=qQ(e.rotation,e.parallel,n),u=r+o,d=(R,P=0)=>{const B=e.minSpacing??(r===0&&P===0?10:0),F=u+P,H=Lf(e);return NB(eJ(t,R,F),B)||NB(iJ(R.ticks,s,F,H),B)},{maxTickCount:g}=D3(t),f=JQ(t),y=e.enabled&&e.avoidCollisions,x=Number.isFinite(g)?g:10,S=y&&e.autoRotate&&e.rotation==null;let D=0,A=0,I=!0,w={tickDomain:[],niceDomain:i,ticks:[],rawTicks:[],rawTickCount:void 0,timeInterval:void 0,fractionDigits:0};for(;I&&D<=x;)({tickData:w,index:D}=tJ(t,f,w,D)),A=S&&d(w,0)?Dl(e.autoRotateAngle):0,I=y&&d(w,A);const N=ZQ(e.parallel,r,A,a,c),O=XQ(e.parallel,r,a,l),L=r+A;return{tickData:w,textAlign:N,textBaseline:O,rotation:L}}function JQ(t){return t.interval?.values?2:t.primaryTickCount!=null?1:0}function D3({scale:t,domain:e,range:i,visibleRange:n,label:s,defaultTickMinSpacing:a,interval:{minSpacing:o,maxSpacing:r}}){const{defaultTickCount:l}=t,c=Tc(i),u=Tc(n);if(Of.is(t)||du.is(t)&&e.length<1e3){const d=Of.is(t)?e.length:Math.min(e.length,Math.max(1,Math.floor(c/(u*a)))),g=Math.ceil(c/(u*s.fontSize));return{tickCount:Math.min(g,d),minTickCount:0,maxTickCount:d}}return MT(c,u,o,r,l,a)}function tJ(t,e,i,n){const{step:s,values:a}=t.interval,{maxTickCount:o,minTickCount:r,tickCount:l}=D3(t),c=P=>Math.max(l-P,r),u=s==null&&a==null&&c(n)>r,d=i.rawTicks,g=l-r,f={minTickCount:r,maxTickCount:o,tickCount:c(n)};let y=OB(t,e,f);if(u&&TB(y.rawTicks,d)){let P=n,B=g;for(;P<=B;){n=Math.trunc((P+B)/2),f.tickCount=c(n);const F=OB(t,e,f);TB(F.rawTicks,d)?P=n+1:(y=F,B=n-1)}}const{tickDomain:x,niceDomain:S,rawTicks:D,rawTickCount:A,rawFirstTickIndex:I,generatePrimaryTicks:w,primaryTicksIndices:N,alignment:O,fractionDigits:L,timeInterval:R}=y;return{tickData:{tickDomain:x,niceDomain:S,rawTicks:D,rawTickCount:A,fractionDigits:L,timeInterval:R,ticks:WQ(t,{niceDomain:S,rawTicks:D,rawFirstTickIndex:I,generatePrimaryTicks:w,primaryTicksIndices:N,alignment:O,fractionDigits:L,timeInterval:R})},index:n+1}}function OB(t,e,i){const{domain:n,reverse:s,visibleRange:a,scale:o,interval:r,primaryLabel:l,niceMode:c,primaryTickCount:u,minimumTimeGranularity:d}=t,g={nice:c.map(P=>P===0),interval:r.step,...i},f={...g,nice:c.map(P=>P===0||P===1)};let y;e===1&&u!=null&&ti.is(o)&&(y=PQ(o,n,u,s,a));const x=c.includes(0)?y?.domain??o.niceDomain(g,n):n;let S=x,D,A,I,w,N,O;const L=l?.enabled===!0&&f.interval==null;S3(o,x,()=>{switch(e){case 2:if(S=r.values,D=r.values,A=D.length,du.is(o)?O=wi.Trailing:eu.is(o)&&(O=wi.Interpolate),ti.is(o)){const[P,B]=xi(x.map(Number));D=D.filter(F=>Number(F)>=P&&Number(F)<=B).sort((F,H)=>Number(F)-Number(H))}break;case 1:if(y)D=y.ticks,A=y.ticks.length;else{const P=o.ticks(f,x,a);D=P?.ticks,A=P?.count}break;default:{const{tickCount:P,minTickCount:B,maxTickCount:F}=i;if(x.length>0&&f.interval==null&&(eu.is(o)||L&&(Ef.is(o)||du.is(o)))){const Y=x,U=Math.min(Y[0].valueOf(),Y.at(-1).valueOf()),V=Math.max(Y[0].valueOf(),Y.at(-1).valueOf());w=Px(U,V,P,B,F,{weekStart:l==null?QQ:void 0,primaryOnly:!0})}let H;du.is(o)?H=d:eu.is(o)&&(H=o.interval),H!=null&&w!=null&&Ms(H)>=Ms(w)&&(w=H);const $=w?YQ(o,a,P,F,f,w,s,d):void 0;if($)({ticks:D,primaryTicksIndices:N,alignment:O}=$);else{const Y=eu.is(o)&&f.interval==null&&w!=null?{...f,interval:w}:f,U=o.ticks(Y,x,a);if(D=U?.ticks,A=U?.count,I=U?.firstTickIndex,Ef.is(o)||Gc.is(o)){const V=typeof f.interval=="number"?zx(f.interval):f.interval;w??(w=V??U?.timeInterval)}}}}}),D??(D=[]);let R=0;for(const P of D){if(typeof P!="number")continue;const B=Hf(P);B>R&&(R=B)}return L||(N=void 0),{tickDomain:S,niceDomain:x,rawTicks:D,rawTickCount:A,rawFirstTickIndex:I,generatePrimaryTicks:L,primaryTicksIndices:N,alignment:O,fractionDigits:R,timeInterval:w}}function eJ(t,e,i){const{niceDomain:n,ticks:s,timeInterval:a}=e;if(a==null)return[];const o=UQ(s),{label:r,labelOffset:l,primaryLabel:c,domain:u}=t,{width:d,height:g}=$Q(r,c,n??u,a,Ve(r)),f=[];for(const y of[0,o]){const{x,y:S}=eT(l,y,i);f.push({x,y:S,width:d,height:g})}return f}function iJ(t,e,i,n){const s=[],a=n.left+n.right,o=n.top+n.bottom;for(const{tickLabel:r,textMetrics:l,translation:c}of t){if(!r)continue;const{x:u,y:d}=eT(e,c,i),g=l.width+a,f=l.height+o;s.push({x:u,y:d,width:g,height:f})}return s}var jx=class A3 extends JT{constructor(e,i){super(e,i),this.maxThicknessRatio=.3,this.crossAxisTranslation={x:0,y:0},this.minimumTimeGranularity=void 0,this.headingLabelGroup=this.axisGroup.appendChild(new Ds({name:`${this.id}-Axis-heading`})),this.lineNodeGroup=this.axisGroup.appendChild(new Ds({name:`${this.id}-Axis-line`})),this.lineNode=this.lineNodeGroup.appendChild(new mo({zIndex:1})),this.tickLineGroupSelection=pn.select(this.tickLineGroup,mo,!1),this.gridLineGroupSelection=pn.select(this.gridLineGroup,mo,!1),this.gridFillGroupSelection=pn.select(this.gridFillGroup,On,!1),this.tempText=new wf({debugDirty:!1}),this.tempCaption=new Ri,this.animationManager=e.animationManager,this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:()=>this.resetSelectionNodes()},reset:"empty"},ready:{update:s=>this.animateReadyUpdate(s),resize:()=>this.resetSelectionNodes(),reset:"empty"}}),this.headingLabelGroup.appendChild(this.title.caption.node);let n;this.cleanup.register(e.eventsHub.on("layout:complete",s=>{const a=[s.chart.width,s.chart.height];n!=null&&!tr(a,n)&&this.animationState.transition("resize"),n=a}),this.title.caption.registerInteraction(this.moduleCtx,"afterend"))}static is(e){return e instanceof A3}get horizontal(){return this.position==="top"||this.position==="bottom"}onGridVisibilityChange(){}resetAnimation(e){e==="initial"&&this.animationState.transition("reset")}get direction(){return this.position==="top"||this.position==="bottom"?z.X:z.Y}createAxisContext(){return{...super.createAxisContext(),position:this.position}}createLabel(){return new tL}updateDirection(){switch(this.position){case"top":this.label.mirrored=!0,this.label.parallel=!0;break;case"right":this.label.mirrored=!0,this.label.parallel=!1;break;case"bottom":this.label.mirrored=!1,this.label.parallel=!0;break;case"left":this.label.mirrored=!1,this.label.parallel=!1;break}this.axisContext&&(this.axisContext.position=this.position,this.axisContext.direction=this.direction)}calculateLayout(e,i){return this.updateDirection(),super.calculateLayout(e,i)}layoutCrossLines(){const e=this.hasDefinedDomain()||this.hasVisibleSeries();for(const i of this.crossLines)i.calculateLayout?.(e)}calculateTickLayout(e,i,n,s){const a=this.label.getSideFlag(),o=a*(this.getTickSize()+this.getTickSpacing()+this.label.spacing+this.seriesAreaPadding),r=this.chartLayout?.scrollbars?.[this.id],l=this.getScrollbarThickness(r);if(i[0]===2&&i[1]===2&&this.label.enabled===!1&&this.tick.enabled===!1&&this.gridLine.enabled===!1){const{bbox:lt,spacing:mt}=this.measureAxisLayout(e,[],[],r,l);return{ticks:[],rawTickCount:0,tickDomain:e,niceDomain:e,fractionDigits:0,timeInterval:void 0,bbox:lt,layout:{ticks:[],tickLines:[],gridLines:[],gridFills:[],labels:[],spacing:mt}}}const{label:c,primaryLabel:u,scale:d,range:g,interval:f,reverse:y,defaultTickMinSpacing:x,minimumTimeGranularity:S}=this,D=M3({label:c,scale:d,interval:f,primaryLabel:u,domain:e,range:g,reverse:y,niceMode:i,visibleRange:n,defaultTickMinSpacing:x,minimumTimeGranularity:S,sideFlag:a,labelOffset:o,primaryTickCount:s,axisRotation:this.horizontal?Math.PI/-2:0,isVertical:this.direction===z.Y,sizeLimit:this.chartLayout?.sizeLimit,inRange:lt=>this.inRange(lt,.001),tickFormatter:(...lt)=>this.tickFormatter(...lt)}),{tickData:A}=D;if(this.label.avoidCollisions&&this.horizontal&&A.ticks.length>2&&(ti.is(this.scale)||Gc.is(this.scale))){const lt=this.chartLayout?.padding.right??0,mt=A.ticks.at(-1);mt?.tickLabel!=null&&mt.translation+mt.textMetrics.width/2>g[1]+lt&&(mt.tickLabel=void 0,n[0]===0&&n[1]===1&&(A.ticks[0].tickLabel=void 0))}const{ticks:w,tickDomain:N,rawTicks:O,rawTickCount:L,fractionDigits:R,timeInterval:P,niceDomain:B}=A,F=w.map(lt=>this.getTickLabelProps(lt,D,l)),{position:H,gridPadding:$,gridLength:Y}=this,U=H==="bottom"||H==="right"?-1:1,V=U*$,Z=U*(Y+$),W=this.calculateGridLines(w,V,Z),q=this.calculateGridFills(w,V,Z),nt=this.calculateTickLines(w,U,l),{bbox:G,spacing:et}=this.measureAxisLayout(N,w,F,r,l);return{ticks:O,rawTickCount:L,tickDomain:N,niceDomain:B,fractionDigits:R,timeInterval:P,bbox:G,layout:{ticks:w,gridLines:W,gridFills:q,tickLines:nt,labels:F,spacing:et}}}calculateGridLines(e,i,n){return e.map((s,a)=>this.calculateGridLine(s,a,i,n,e))}calculateGridLine({index:e,tickId:i,translation:n},s,a,o,r){const{gridLine:l,horizontal:c}=this,[u,d,g,f]=c?[n,a,n,o]:[a,n,o,n],{style:y}=l,{stroke:x,strokeWidth:S=0,lineDash:D}=y[e%y.length]??{};return{tickId:i,offset:n,x1:u,y1:d,x2:g,y2:f,stroke:x,strokeWidth:S,lineDash:D}}calculateGridFills(e,i,n){const{horizontal:s,range:a,type:o}=this,r=[];if(e.length==0)return r;let l=0;const c=!s&&o==="unit-time";if(c&&e[0].translationa[0]){const d={tickId:`before:${e[0].tickId}`,translation:a[0]};r.push(this.calculateGridFill(d,-1,e[0].index,i,n,e)),l=1}return r.push(...e.map((d,g)=>this.calculateGridFill(d,g,d.index+l,i,n,e))),r}calculateGridFill({tickId:e,translation:i},n,s,a,o,r){const{gridLine:l,horizontal:c,range:u}=this,d=r[n+1],g=i,f=d?d.translation:u[1],[y,x,S,D]=c?[g,Math.max(a,o),f,Math.min(a,o)]:[Math.min(a,o),Math.min(g,f),Math.max(a,o),Math.max(g,f)],{fill:A,fillOpacity:I}=l.style[s%l.style.length]??{};return{tickId:e,x1:y,y1:x,x2:S,y2:D,fill:A,fillOpacity:I}}calculateTickLines(e,i,n=0){return e.map(s=>this.calculateTickLine(s,s.index,i,e,n))}calculateTickLine({isPrimary:e,tickId:i,translation:n},s,a,o,r=0){const{horizontal:l,tick:c,primaryTick:u}=this,d=e&&u?u:c,g=this.getTickSize(d),f=this.getTickSpacing(d),y=-a*(r+f),x=-a*g,[S,D,A,I]=l?[n,y,n,y+x]:[y,n,y+x,n],{stroke:w,width:N}=d;return{tickId:i,offset:n,x1:S,y1:D,x2:A,y2:I,stroke:w,strokeWidth:N,lineDash:void 0}}update(){this.updateDirection();const e=Array.from(this.tickLabelGroupSelection.nodes(),o=>o.datum.tickId);super.update();const{tickLayout:i}=this;if(this.updateTitle(this.scale.domain,i?.spacing??0),this.animatable||this.moduleCtx.animationManager.skipCurrentBatch(),i){const{ticks:o}=i;if(this.animationManager.isSkipped())this.resetSelectionNodes();else{const r=o.map(c=>c.tickId),l=rj(e,r);this.animationState.transition("update",l)}}const{enabled:n,stroke:s,width:a}=this.line;this.lineNode.setProperties({stroke:s,strokeWidth:n?a:0}),this.updateTickLines(),this.updateGridLines(),this.updateGridFills()}getAxisTransform(){return{translationX:Math.floor(this.translation.x+this.crossAxisTranslation.x),translationY:Math.floor(this.translation.y+this.crossAxisTranslation.y)}}getLayoutTranslation(){const{translationX:e,translationY:i}=this.getAxisTransform();return{x:e,y:i}}getLayoutState(){return{...super.getLayoutState(),position:this.position}}updatePosition(){super.updatePosition();const e=this.getAxisTransform();this.tickLineGroup.datum=e,this.tickLabelGroup.datum=e,this.lineNodeGroup.datum=e,this.headingLabelGroup.datum=e}setAxisVisible(e){this.tickLineGroup.visible=e&&(this.tick.enabled||(this.primaryTick?.enabled??!1)),this.tickLabelGroup.visible=e&&(this.label.enabled||(this.primaryTick?.enabled??!1)),this.lineNodeGroup.visible=e,this.headingLabelGroup.visible=e}getAxisLineCoordinates(){const{horizontal:e}=this,[i,n]=xi(this.lineRange??this.range);return e?{x1:i,x2:n,y1:0,y2:0}:{x1:0,x2:0,y1:i,y2:n}}getTickLineBBox(e,i){const{translation:n}=e,{position:s,primaryTick:a}=this;let o=this.getTickSize();a?.enabled&&(o=Math.max(o,this.getTickSize(a)));const r=s==="bottom"||s==="right"?-1:1,l=this.getTickSpacing(this.tick),c=-r*(i+l),u=c,d=c-r*(o+l),g=Math.min(u,d),f=Math.max(u,d);switch(s){case"top":return new Tt(n,g,0,f-g);case"bottom":return new Tt(n,g,0,f-g);case"left":return new Tt(g,n,f-g,0);case"right":return new Tt(g,n,f-g,0)}}lineNodeBBox(){const{position:e,seriesAreaPadding:i}=this,{y1:n,y2:s}=this.getAxisLineCoordinates(),a=s-n;switch(e){case"top":return new Tt(n,-i,a,i);case"bottom":return new Tt(n,0,a,i);case"left":return new Tt(-i,n,i,a);case"right":return new Tt(0,n,i,a)}}titleBBox(e,i){const{tempCaption:n}=this,s=Math.abs(this.range[1]-this.range[0])||1/0;return n.node.setProperties(this.titleProps(n,e,i)),n.computeTextWrap(s,this.thickness??1/0),n.node.getBBox()}getScrollbarThickness(e){return e?.enabled&&e.placement==="inner"?e.spacing+e.thickness:0}resolveScrollbarLayout(e,i){if(!e)return;const{position:n}=this,s=n==="top"||n==="left"?-1:1;if(e.placement==="inner"){const o=s===1?e.spacing:-e.spacing-e.thickness;return{...e,offset:o}}const a=s===1?i+e.spacing:-i-e.spacing-e.thickness;return{...e,offset:a}}applyScrollbarLayout(e,i,n){const s=this.resolveScrollbarLayout(n,i);let a=i;if(s){const{offset:o,thickness:r,placement:l}=s;l==="outer"&&(a+=s.spacing+r),this.horizontal?e.push(new Tt(0,o,0,r)):e.push(new Tt(o,0,r,0))}return{spacing:a,scrollbarLayout:s}}measureAxisLayout(e,i,n,s,a){const{tick:o,primaryTick:r,label:l,primaryLabel:c,title:u,position:d,horizontal:g,seriesAreaPadding:f}=this,y=[];if(y.push(this.lineNodeBBox()),o.enabled||r?.enabled)for(const N of i)y.push(this.getTickLineBBox(N,a));const{tempText:x}=this;if(l.enabled)for(const N of n){if(!N.visible)continue;x.setProperties(N);const O=x.getBBox();O&&y.push(O)}if(c?.enabled&&d==="bottom"&&(y.push(new Tt(0,nr(l.fontSize)+2,1,this.getTickSize(o)+this.getTickSpacing(o)+l.spacing+f)),c.format!=null)){const{format:O}=c,R=(Ie(O)?Object.values(O):[O]).reduce((P,B)=>Math.max(P,d4(B)),0);y.push(new Tt(0,this.getTickSize(r??o)+this.getTickSpacing(r??o)+c.spacing+f,1,R*nr(c.fontSize)+2))}const S=Tt.merge(y),D=g?S.height:S.width,{spacing:A,scrollbarLayout:I}=this.applyScrollbarLayout(y,D,s);return this.layout.labelThickness=D,this.layout.scrollbar=I,u.enabled&&y.push(this.titleBBox(e,A)),{bbox:Tt.merge(y),spacing:A}}titleProps(e,i,n){const{title:s}=this;if(!s.enabled)return e.enabled=!1,{visible:!1,text:"",textBaseline:"bottom",x:0,y:0,rotationCenterX:0,rotationCenterY:0,rotation:0};e.enabled=!0,e.color=s.color,e.fontFamily=s.fontFamily,e.fontSize=s.fontSize,e.fontStyle=s.fontStyle,e.fontWeight=s.fontWeight,e.wrapping=s.wrapping,e.truncate=s.truncate,e.maxWidth=s.maxWidth,e.maxHeight=s.maxHeight;const{range:a}=this,o=(a[0]+a[1])/2,r=s.spacing+n;let l,c,u,d;switch(this.position){case"top":l=o,c=-r,u=0,d="bottom";break;case"bottom":l=o,c=r,u=0,d="top";break;case"left":l=-r,c=o,u=Math.PI/-2,d="bottom";break;case"right":l=r,c=o,u=Math.PI/2,d="bottom";break}const{formatter:g=y=>y.defaultValue}=s,f=this.cachedCallWithContext(g,this.getTitleFormatterParams(i));return e.text=f,{visible:!0,text:f,textBaseline:d,x:l,y:c,rotationCenterX:l,rotationCenterY:c,rotation:u}}getTickLabelProps(e,i,n){const{horizontal:s,primaryLabel:a,primaryTick:o,seriesAreaPadding:r,scale:l}=this,{tickId:c,tickLabel:u="",translation:d,isPrimary:g,textUntruncated:f}=e,y=g&&a?.enabled?a:this.label,x=g&&o?.enabled?o:this.tick,{rotation:S,textBaseline:D,textAlign:A}=i,{range:I}=l,w=this.label.getSideFlag(),N=Lf(y)[this.position];let O=w*(this.getTickSize(x)+this.getTickSpacing(x)+y.spacing+r)-N;n&&(O+=w*n);const L=u!=="",R=s?d:O,P=s?-O:d;return{...this.getLabelStyles({value:e.tick,formattedValue:u},void 0,y),tickId:c,rotation:S,text:u,textAlign:A,textBaseline:D,textUntruncated:f,visible:L,x:R,y:P,rotationCenterX:R,rotationCenterY:P,range:I}}updateSelections(){if(!this.tickLayout)return;const e=this.getAxisLineCoordinates(),{tickLines:i,gridLines:n,gridFills:s,labels:a}=this.tickLayout,o=r=>r.tickId;this.lineNode.datum=e,this.gridLineGroupSelection.update(this.gridLine.enabled?n:[],void 0,o),this.gridFillGroupSelection.update(this.gridLine.enabled?s:[],void 0,o),this.tickLineGroupSelection.update(i,void 0,o),this.tickLabelGroupSelection.update(a,void 0,o)}updateGridLines(){this.gridLineGroupSelection.each((e,i)=>{e.stroke=i.stroke,e.strokeWidth=i.strokeWidth,e.lineDash=i.lineDash})}updateGridFills(){this.gridFillGroupSelection.each((e,i)=>{e.fill=i.fill,e.fillOpacity=i.fillOpacity??1})}updateTickLines(){this.tickLineGroupSelection.each((e,i)=>{e.stroke=i.stroke,e.strokeWidth=i.strokeWidth,e.lineDash=i.lineDash})}updateTitle(e,i){const{caption:n}=this.title,s=this.titleProps(n,e,i);if(n.node.visible=s.visible,n.node.text=s.text,n.node.textBaseline=s.textBaseline,n.node.datum=s,s.visible){const a=Math.abs(this.range[1]-this.range[0])||1/0;n.computeTextWrap(a,this.thickness??1/0)}}updateLabels(){this.label.enabled&&this.tickLabelGroupSelection.each((e,i)=>{e.fill=i.color,e.text=i.text,e.textBaseline=i.textBaseline,e.textAlign=i.textAlign??"center",e.pointerEvents=i.textUntruncated==null?1:0,e.setFont(i),e.setBoxing(i)})}animateReadyUpdate(e){const{animationManager:i}=this.moduleCtx,n=AQ(this),s=CQ(n);dn(this.id,"axis-group",i,[this.lineNodeGroup,this.tickLabelGroup,this.tickLineGroup,this.headingLabelGroup],s.group),dn(this.id,"line",i,[this.lineNode],s.line),dn(this.id,"line-paths",i,[this.gridLineGroupSelection,this.tickLineGroupSelection],s.tick,(a,o)=>o.tickId,e),dn(this.id,"tick-labels",i,[this.tickLabelGroupSelection],s.label,(a,o)=>o.tickId,e),dn(this.id,"title",i,[this.title.caption.node],s.label,(a,o)=>o.tickId,e)}resetSelectionNodes(){Qn([this.lineNodeGroup,this.tickLabelGroup,this.tickLineGroup,this.headingLabelGroup],wQ()),Qn([this.gridLineGroupSelection,this.tickLineGroupSelection],DB()),Qn([this.gridFillGroupSelection],NQ()),Qn([this.tickLabelGroupSelection],CM()),Qn([this.title.caption.node],CM()),Qn([this.lineNode],DB())}};T([b],jx.prototype,"thickness",2);T([b],jx.prototype,"maxThicknessRatio",2);T([b],jx.prototype,"position",2);T([b],jx.prototype,"crossAt",2);var Gx=jx,I3=["right","top","left","bottom"];function nJ(t){return typeof t=="string"&&I3.includes(t)}function sJ(t){const e=[],i=[],n=[...I3];for(const s of t)s instanceof Gx&&(nJ(s.position)?i.push(s.position):e.push(s));for(const s of e){let a;do a=n.pop();while(a&&i.includes(a));if(a==null)break;s.position=a}}var EB=["direction","xKey","yKey","sizeKey","angleKey","radiusKey","normalizedTo"];function aJ(t,e,i){const n=new Map,s=d=>{if(d===void 0)return EB;if(n.has(d))return n.get(d);const g=Ut.getSeriesModule(d)?.matchingKeys??EB;return n.set(d,g),g},a=(d,g,f)=>{const y=s(d),x=[d];for(const S of y)S in g&&g[S]!=null&&x.push(`${S}=${g[S]}`);return f?.seriesGrouping&&x.push(`seriesGrouping.groupId=${f?.seriesGrouping.groupId}`),x.join(";")},o=new Map;let r=0;for(const d of t){const g=a(d.type,d.properties,i?.[r]);o.has(g)||o.set(g,[]),o.get(g)?.push([d,r++])}const l=new Map;r=0;for(const d of e){const g=a(d.type,d,d);l.has(g)||l.set(g,[]),l.get(g)?.push([d,r++])}if(![...o.keys()].some(d=>l.has(d)))return{status:"no-overlap",oldKeys:o.keys(),newKeys:l.keys()};const u=[];for(const[d,g]of l.entries())for(const[f,y]of g){const x=o.get(d);if(x==null||x.length<1){u.push({opts:f,targetIdx:y,idx:y,status:"add"}),o.delete(d);continue}const[S,D]=x.shift(),A=i?.[D]??{},I=or(A,f??{}),{groupIndex:w,stackIndex:N}=I?.seriesGrouping??{};w!=null||N!=null?u.push({opts:f,series:S,diff:I,targetIdx:y,idx:D,status:"series-grouping"}):I?u.push({opts:f,series:S,diff:I,targetIdx:y,idx:D,status:"update"}):u.push({opts:f,series:S,targetIdx:y,idx:D,status:"no-op"}),x.length===0&&o.delete(d)}for(const d of o.values())for(const[g,f]of d)u.push({series:g,idx:f,targetIdx:-1,status:"remove"});return{status:"overlap",changes:u}}var iu=new Map([{type:"chart",name:"cartesian",moduleId:"CartesianChartModule"},{type:"chart",name:"standalone",moduleId:"StandaloneChartModule",enterprise:!0},{type:"chart",name:"polar",moduleId:"PolarChartModule"},{type:"chart",name:"topology",moduleId:"TopologyChartModule",enterprise:!0},{type:"axis",name:"number",chartType:"cartesian",moduleId:"NumberAxisModule"},{type:"axis",name:"log",chartType:"cartesian",moduleId:"LogAxisModule"},{type:"axis",name:"time",chartType:"cartesian",moduleId:"TimeAxisModule"},{type:"axis",name:"unit-time",chartType:"cartesian",moduleId:"UnitTimeAxisModule"},{type:"axis",name:"category",chartType:"cartesian",moduleId:"CategoryAxisModule"},{type:"axis",name:"grouped-category",chartType:"cartesian",moduleId:"GroupedCategoryAxisModule"},{type:"axis",name:"ordinal-time",chartType:"cartesian",enterprise:!0,moduleId:"OrdinalTimeAxisModule"},{type:"axis",name:"angle-category",chartType:"polar",enterprise:!0,moduleId:"AngleCategoryAxisModule"},{type:"axis",name:"angle-number",chartType:"polar",enterprise:!0,moduleId:"AngleNumberAxisModule"},{type:"axis",name:"radius-category",chartType:"polar",enterprise:!0,moduleId:"RadiusCategoryAxisModule"},{type:"axis",name:"radius-number",chartType:"polar",enterprise:!0,moduleId:"RadiusNumberAxisModule"},{type:"series",name:"bar",chartType:"cartesian",moduleId:"BarSeriesModule"},{type:"series",name:"scatter",chartType:"cartesian",moduleId:"ScatterSeriesModule"},{type:"series",name:"bubble",chartType:"cartesian",moduleId:"BubbleSeriesModule"},{type:"series",name:"line",chartType:"cartesian",moduleId:"LineSeriesModule"},{type:"series",name:"area",chartType:"cartesian",moduleId:"AreaSeriesModule"},{type:"series",name:"pie",chartType:"polar",moduleId:"PieSeriesModule"},{type:"series",name:"donut",chartType:"polar",moduleId:"DonutSeriesModule"},{type:"series",name:"box-plot",chartType:"cartesian",enterprise:!0,moduleId:"BoxPlotSeriesModule"},{type:"series",name:"candlestick",chartType:"cartesian",enterprise:!0,moduleId:"CandlestickSeriesModule"},{type:"series",name:"cone-funnel",chartType:"cartesian",enterprise:!0,moduleId:"ConeFunnelSeriesModule"},{type:"series",name:"funnel",chartType:"cartesian",enterprise:!0,moduleId:"FunnelSeriesModule"},{type:"series",name:"ohlc",chartType:"cartesian",enterprise:!0,moduleId:"OhlcSeriesModule"},{type:"series",name:"heatmap",chartType:"cartesian",enterprise:!0,moduleId:"HeatmapSeriesModule"},{type:"series",name:"histogram",chartType:"cartesian",moduleId:"HistogramSeriesModule"},{type:"series",name:"range-area",chartType:"cartesian",enterprise:!0,moduleId:"RangeAreaSeriesModule"},{type:"series",name:"range-bar",chartType:"cartesian",enterprise:!0,moduleId:"RangeBarSeriesModule"},{type:"series",name:"waterfall",chartType:"cartesian",enterprise:!0,moduleId:"WaterfallSeriesModule"},{type:"series",name:"nightingale",chartType:"polar",enterprise:!0,moduleId:"NightingaleSeriesModule"},{type:"series",name:"radar-area",chartType:"polar",enterprise:!0,moduleId:"RadarAreaSeriesModule"},{type:"series",name:"radar-line",chartType:"polar",enterprise:!0,moduleId:"RadarLineSeriesModule"},{type:"series",name:"radial-bar",chartType:"polar",enterprise:!0,moduleId:"RadialBarSeriesModule"},{type:"series",name:"radial-column",chartType:"polar",enterprise:!0,moduleId:"RadialColumnSeriesModule"},{type:"series",name:"map-shape",chartType:"topology",enterprise:!0,moduleId:"MapShapeSeriesModule"},{type:"series",name:"map-line",chartType:"topology",enterprise:!0,moduleId:"MapLineSeriesModule"},{type:"series",name:"map-marker",chartType:"topology",enterprise:!0,moduleId:"MapMarkerSeriesModule"},{type:"series",name:"map-shape-background",chartType:"topology",enterprise:!0,moduleId:"MapShapeBackgroundSeriesModule"},{type:"series",name:"map-line-background",chartType:"topology",enterprise:!0,moduleId:"MapLineBackgroundSeriesModule"},{type:"series",name:"pyramid",chartType:"standalone",enterprise:!0,moduleId:"PyramidSeriesModule"},{type:"series",name:"linear-gauge",chartType:"standalone",enterprise:!0,moduleId:"LinearGaugeModule"},{type:"series",name:"radial-gauge",chartType:"standalone",enterprise:!0,moduleId:"RadialGaugeModule"},{type:"series",name:"sunburst",chartType:"standalone",enterprise:!0,moduleId:"SunburstSeriesModule"},{type:"series",name:"treemap",chartType:"standalone",enterprise:!0,moduleId:"TreemapSeriesModule"},{type:"series",name:"chord",chartType:"standalone",enterprise:!0,moduleId:"ChordSeriesModule"},{type:"series",name:"sankey",chartType:"standalone",enterprise:!0,moduleId:"SankeySeriesModule"},{type:"plugin",name:"animation",enterprise:!0,moduleId:"AnimationModule"},{type:"plugin",name:"annotations",chartType:"cartesian",enterprise:!0,moduleId:"AnnotationsModule"},{type:"plugin",name:"legend",moduleId:"LegendModule"},{type:"plugin",name:"locale",moduleId:"LocaleModule"},{type:"plugin",name:"chartToolbar",chartType:"cartesian",enterprise:!0,moduleId:"ChartToolbarModule"},{type:"plugin",name:"contextMenu",enterprise:!0,moduleId:"ContextMenuModule"},{type:"plugin",name:"statusBar",chartType:"cartesian",enterprise:!0,moduleId:"StatusBarModule"},{type:"plugin",name:"dataSource",enterprise:!0,moduleId:"DataSourceModule"},{type:"plugin",name:"sync",chartType:"cartesian",enterprise:!0,moduleId:"SyncModule"},{type:"plugin",name:"ranges",chartType:"cartesian",enterprise:!0,moduleId:"RangesModule"},{type:"plugin",name:"zoom",enterprise:!0,moduleId:"ZoomModule"},{type:"plugin",name:"flashOnUpdate",enterprise:!0,moduleId:"FlashOnUpdateModule"},{type:"plugin",name:"gradientLegend",enterprise:!0,moduleId:"GradientLegendModule"},{type:"plugin",name:"navigator",chartType:"cartesian",enterprise:!0,moduleId:"NavigatorModule"},{type:"plugin",name:"scrollbar",chartType:"cartesian",enterprise:!0,moduleId:"ScrollbarModule"},{type:"axis:plugin",name:"crosshair",chartType:"cartesian",enterprise:!0,moduleId:"CrosshairModule"},{type:"axis:plugin",name:"bandHighlight",chartType:"cartesian",enterprise:!0,moduleId:"BandHighlightModule"},{type:"series:plugin",name:"errorBar",chartType:"cartesian",enterprise:!0,moduleId:"ErrorBarsModule"},{type:"preset",name:"gauge-preset",chartType:"standalone",enterprise:!0,moduleId:"GaugePresetModule"},{type:"preset",name:"price-volume",chartType:"cartesian",enterprise:!0,moduleId:"PriceVolumePresetModule"},{type:"preset",name:"sparkline",moduleId:"SparklinePresetModule"}].map(t=>[t.name,t]));function oJ(t){const e=iu.get(t);return e?.type===Le.Series?e.chartType:void 0}function Mb(t){const e=t.series?.[0]?.type??"line";return Ut.getSeriesModule(e)?.chartType??oJ(e)??"unknown"}function rJ(t){return Mb(t)==="cartesian"}var lJ=class extends QT{*legends(){for(const t of Ut.listModulesByType(Le.Plugin))(t.name==="legend"||t.name==="gradientLegend")&&(yield{legendType:t.name==="legend"?"category":"gradient",legend:this.getModule(t.name)})}},ON="ag-charts-overlay",cJ="ag-charts-dark-overlay",Kd=class extends xt{constructor(t,e){super(),this.className=t,this.defaultMessageId=e,this.enabled=!0}getText(t){return qt(this.text)?ce(this.text):this.rendererAsText?this.rendererAsText:t.t(bi(this.text)||this.defaultMessageId)}getElement(t,e,i,n){if(this.content?.remove(),this.rendererAsText=void 0,this.focusBox=n,this.renderer){const s={},a=js(t,this.renderer,s);if(Eb(a))this.content=a;else{const o=$t("div");o.innerHTML=a;const{firstElementChild:r}=o;Eb(r)&&o.childElementCount===1?this.content=r:this.content=o}this.rendererAsText=this.content?.textContent?.trim()}else{const s=$t("div",{display:"flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",height:"100%",margin:"8px",fontFamily:"var(--ag-charts-font-family)",fontSize:"var(--ag-charts-font-size)",fontWeight:"var(--ag-charts-font-weight)"});if(qt(this.text)){const a=$t("div");for(const o of this.text){const r=$t("span",{color:o.color,fontSize:`${o.fontSize}px`,fontFamily:o.fontFamily??"inherit",fontWeight:String(o.fontWeight),fontStyle:o.fontStyle});r.innerText=bi(o.text),a.appendChild(r)}s.appendChild(a)}else s.innerText=this.getText(i);this.content=s,this.content.classList.add(this.className),e?.animate({from:0,to:1,id:"overlay",phase:"add",groupId:"opacity",onUpdate(a){s.style.opacity=String(a)},onStop(){s.style.opacity="1"}})}return this.content}removeElement(t=()=>this.content?.remove(),e){if(this.content){if(e){const{content:i}=this;e.animate({from:1,to:0,phase:"remove",id:"overlay",groupId:"opacity",onUpdate(n){i.style.opacity=String(n)},onStop(){t?.()}})}else t?.();this.content=void 0,this.focusBox=void 0}}};T([b],Kd.prototype,"enabled",2);T([b],Kd.prototype,"text",2);T([b],Kd.prototype,"renderer",2);var im=class extends xt{constructor(){super(...arguments),this.darkTheme=!1,this.loading=new Kd("ag-charts-loading-overlay","overlayLoadingData"),this.noData=new Kd("ag-charts-no-data-overlay","overlayNoData"),this.noVisibleSeries=new Kd("ag-charts-no-visible-series","overlayNoVisibleSeries"),this.unsupportedBrowser=new Kd("ag-charts-unsupported-browser","overlayUnsupportedBrowser")}getFocusInfo(t){for(const e of[this.loading,this.noData,this.noVisibleSeries,this.unsupportedBrowser])if(e.focusBox!==void 0)return{text:e.getText(t),rect:e.focusBox}}destroy(){this.loading.removeElement(),this.noData.removeElement(),this.noVisibleSeries.removeElement(),this.unsupportedBrowser.removeElement()}};T([b],im.prototype,"darkTheme",2);T([b],im.prototype,"loading",2);T([b],im.prototype,"noData",2);T([b],im.prototype,"noVisibleSeries",2);T([b],im.prototype,"unsupportedBrowser",2);function hJ(t,e,i){const{animationDuration:n}=Zb.add,s=n*i,a=t.createElement("div",`${ON}--loading`,{display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",height:"100%",boxSizing:"border-box",font:"13px Verdana, sans-serif",userSelect:"none",animation:`ag-charts-loading ${s}ms linear 50ms both`}),o=t.createElement("span",{width:"45px",height:"40px",backgroundImage:["linear-gradient(#0000 calc(1 * 100% / 6), #ccc 0 calc(3 * 100% / 6), #0000 0), ","linear-gradient(#0000 calc(2 * 100% / 6), #ccc 0 calc(4 * 100% / 6), #0000 0), ","linear-gradient(#0000 calc(3 * 100% / 6), #ccc 0 calc(5 * 100% / 6), #0000 0)"].join(""),backgroundSize:"10px 400%",backgroundRepeat:"no-repeat",animation:"ag-charts-loading-matrix 1s infinite linear"}),r=t.createElement("p",{marginTop:"1em"});r.innerText=e;const l=t.createElement("div",`${ON}__loading-background`,{position:"absolute",inset:"0",opacity:"0.5",zIndex:"-1"}),c=t.createElement("style");return c.innerText=["@keyframes ag-charts-loading { from { opacity: 0 } to { opacity: 1 } }","@keyframes ag-charts-loading-matrix {","0% { background-position: 0% 0%, 50% 0%, 100% 0%; }","100% { background-position: 0% 100%, 50% 100%, 100% 100%; }","}"].join(" "),a.replaceChildren(c,o,r,l),a}var Ux=class extends xt{constructor(t){super(),this.ctx=t,this.rectNode=new On,this.border=new Ru(this.rectNode),this.cornerRadius=0,this.padding=0,this.cleanup=new qe,this.node=this.createNode(),this.node.append([this.rectNode]),this.rectNode.fill=void 0,this.cleanup.register(t.scene.attachNode(this.node),t.eventsHub.on("layout:complete",e=>this.onLayoutComplete(e)))}destroy(){this.cleanup.flush()}getPadding(){const{border:t,padding:e}=this,i=t.enabled?t.strokeWidth:0;if(typeof e=="number"){const n=e+i;return{top:n,right:n,bottom:n,left:n}}return{top:(e.top??0)+i,right:(e.right??0)+i,bottom:(e.bottom??0)+i,left:(e.left??0)+i}}createNode(){return new ee({name:"series-area-container",zIndex:pe.SERIES_AREA_CONTAINER})}onLayoutComplete(t){const{x:e,y:i,width:n,height:s}=t.series.paddedRect;this.rectNode.x=e,this.rectNode.y=i,this.rectNode.width=n,this.rectNode.height=s}};T([b],Ux.prototype,"border",2);T([b],Ux.prototype,"clip",2);T([pi("rectNode","cornerRadius"),b],Ux.prototype,"cornerRadius",2);T([b],Ux.prototype,"padding",2);function ZD(t,e){if(t.itemId!==void 0)return t.itemId;if(e!==void 0){const i=t.datum?.[e];if(i!=null)return typeof i=="number"?i:String(i)}return typeof t.datumIndex=="number"?t.datumIndex:JSON.stringify(t.datumIndex)}function EN(t,e){return t.series===e.series&&ks(t.datumIndex,e.datumIndex)}function uJ(t,e){return e==null?-1:t.findIndex(i=>EN(i,e))}var dJ=class{constructor(t,e){this.activeManager=t,this.tooltipProperties=e,this.candidates=[],this.blockEntrance=!1,this.activationPrevented=!1}clear(){this.candidates.length=0,this.pendingPickedNodes=void 0}popPendingPickedNodes(){const t=this.pendingPickedNodes;return this.pendingPickedNodes=void 0,t}getActivationArgs(t){if(t===void 0)return[void 0,void 0];{const e=t.series.id,i=ZD(t,t.series.data?.dataIdKey);return[{type:"series-node",seriesId:e,itemId:i},t]}}maybeActivate(t,e,i){if(this.blockEntrance)throw new Error("PickManager.maybeActivate is not re-entrant");try{this.activationPrevented=!1,this.blockEntrance=!0;const[n,s]=this.getActivationArgs(t);this.activeManager.update(n,s)?this.activationPrevented=!0:(this.active=t,e(i?.defaultCbArg))}finally{this.blockEntrance=!1}}onClearUI(){this.activeManager.clear(),this.clear()}onClearAPI(){this.clear()}onPickedNodesHighlight(t){if(t!==void 0){const i=this.active;if(this.tooltipProperties.pagination&&i!==void 0){const n=t.matches.find(s=>EN(s,i));if(n)return n}}return t?.matches[0]}onPickedNodesTooltip(t){if(t!==void 0&&this.tooltipProperties.pagination){const i=this.active,n=t.matches;this.candidates=n;let s=uJ(n,i);s===-1&&(s=0);const a=n[s],o={index:s,length:n.length};return{active:a,paginationState:o}}return{active:t?.matches[0]}}onPickedNodesAPI(t){return this.pendingPickedNodes=t,t.matches[0]}onPickedNodesAPIDebounced(){return{active:this.onPickedNodesHighlight(this.popPendingPickedNodes())}}nextCandidate(){if(this.tooltipProperties.pagination){const{candidates:t}=this,e=this.active,i=e==null?-1:t.findIndex(o=>EN(o,e));if(i===-1)return{active:void 0,paginationState:void 0};let n=i+1;n>=t.length&&(n=0);const s=t[n],a={index:n,length:this.candidates.length};return{active:s,paginationState:a}}return{active:this.active}}wasActivationPrevented(){return this.activationPrevented}};function k3(t,e,i,n){if(an(t))return{type:"gradient",gradient:t.gradient??e.gradient,colorStops:t.colorStops??e.colorStops,bounds:t.bounds??e.bounds,rotation:t.rotation??e.rotation,reverse:t.reverse??e.reverse,colorSpace:t.colorSpace??e.colorSpace};if(ir(t)){const s=t.pattern??i.pattern;let a=t.strokeWidth;s==="backward-slanted-lines"||s==="forward-slanted-lines"||s==="horizontal-lines"||s==="vertical-lines"?a??(a=i.strokeWidth):a??(a=0);const o=t.width??t.height??i.width,r=t.height??t.width??i.height;return{type:"pattern",pattern:s,width:o,height:r,path:t.path,padding:t.padding??i.padding,fill:t.fill??i.fill,fillOpacity:t.fillOpacity??i.fillOpacity,backgroundFill:t.backgroundFill??i.backgroundFill,backgroundFillOpacity:t.backgroundFillOpacity??i.backgroundFillOpacity,stroke:t.stroke??i.stroke,strokeOpacity:t.strokeOpacity??i.strokeOpacity,strokeWidth:a,rotation:t.rotation??i.rotation,scale:t.scale??i.scale}}return ml(t)?{type:"image",url:t.url,width:t.width,height:t.height,backgroundFill:t.backgroundFill??n.backgroundFill,backgroundFillOpacity:t.backgroundFillOpacity??n.backgroundFillOpacity,rotation:t.rotation??n.rotation,repeat:t.repeat??n.repeat,fit:t.fit??n.fit}:t}function RN(t,e,i,n){return!an(t?.fill)&&!ir(t?.fill)&&!ml(t?.fill)?t:{...t,fill:k3(t.fill,e,i,n)}}var C3=(t=>(t[t.EXACT_SHAPE_MATCH=0]="EXACT_SHAPE_MATCH",t[t.NEAREST_NODE=1]="NEAREST_NODE",t[t.AXIS_ALIGNED=2]="AXIS_ALIGNED",t))(C3||{}),pJ=.25,gJ=.125,qD=class{constructor(t,e,i,n){this.type=t,this.event=e,this.defaultPrevented=!1,this.datum=i.datum,this.seriesId=n.id,this.dataIdKey=n.data?.dataIdKey,this.itemId=ZD(i,this.dataIdKey)}preventDefault(){this.defaultPrevented=!0}},PN=class{constructor(t,e){this.series=t,this.seriesGrouping=e,this.type="groupingChanged"}};function RB(t){switch(t){case"x":return z.X;case"y":return z.Y;case"angle":return z.Angle;case"radius":return z.Radius}}function OC(t){switch(t){case z.X:return"x";case z.Y:return"y";case z.Angle:return"angle";case z.Radius:return"radius";default:return"x"}}var Wx=class extends vG{constructor(e){super(),this.cleanup=new qe,this.usesPlacedLabels=!1,this.alwaysClip=!1,this.hasChangesOnHighlight=!1,this.seriesGrouping=void 0,this.NodeEvent=qD,this.internalId=Nn(this),this.contentGroup=new Ds({name:`${this.internalId}-content`,zIndex:Vs.ANY_CONTENT}),this.highlightGroup=new Ds({name:`${this.internalId}-highlight`,zIndex:Vs.ANY_CONTENT}),this.highlightNodeGroup=this.highlightGroup.appendChild(new ee({name:`${this.internalId}-highlight-node`})),this.highlightLabelGroup=this.highlightGroup.appendChild(new ee({name:`${this.internalId}-highlight-label`,zIndex:Mc.LABEL})),this.annotationGroup=new Ds({name:`${this.internalId}-annotation`}),this.labelGroup=new Ds({name:`${this.internalId}-series-labels`}),this.axes={},this.directions=[z.X,z.Y],this.nodeDataRefresh=!0,this.processedDataUpdated=!0,this.moduleMap=new QT,this.datumCallbackCache=new Map,this.connectsToYAxis=!1,this.declarationOrder=-1,this._broughtToFront=!1,this.events=new cr,this._pickNodeCache=new XM(5),this.fireEventWrapper=c=>super.fireEvent(c);const{moduleCtx:i,pickModes:n,propertyKeys:s={},propertyNames:a={},canHaveAxes:o=!1,usesPlacedLabels:r=!1,alwaysClip:l=!1}=e;this.ctx=i,this.propertyKeys=s,this.propertyNames=a,this.canHaveAxes=o,this.usesPlacedLabels=r,this.pickModes=n,this.alwaysClip=l,this.highlightLabelGroup.pointerEvents=1,this.cleanup.register(this.ctx.eventsHub.on("data:update",c=>this.setChartData(c)),this.ctx.eventsHub.on("highlight:change",c=>this.onChangeHighlight(c)))}get pickModeAxis(){return"main"}get id(){return this.properties?.id??this.internalId}get type(){return this.constructor.type??""}get focusable(){return!0}get data(){return this._data??this._chartData}set visible(e){this.properties.visible=e,this.ctx.legendManager.toggleItem(e,this.id),this.ctx.legendManager.update(),this.visibleMaybeChanged()}get visible(){return this.ctx.legendManager.getSeriesEnabled(this.id)??this.properties.visible}get hasData(){const e=this.data;return e==null?!1:e.netSize()>0}get tooltipEnabled(){return this.properties.tooltip?.enabled}onDataChange(){this.nodeDataRefresh=!0,this.processedDataUpdated=!0,this._pickNodeCache.clear()}setOptionsData(e){this._data=e,this.onDataChange()}isHighlightEnabled(){return this.properties.highlight.enabled}setChartData(e){this._chartData=e,this.data===e&&this.onDataChange()}onSeriesGroupingChange(e,i){const{internalId:n,type:s,visible:a}=this;e&&this.ctx.seriesStateManager.deregisterSeries(this),i&&this.ctx.seriesStateManager.registerSeries({internalId:n,type:s,visible:a,seriesGrouping:i,width:"width"in this.properties?this.properties.width:0}),this.fireEvent(new PN(this,i))}getBandScalePadding(){return{inner:1,outer:0}}attachSeries(e,i,n){e.appendChild(this.contentGroup),i.appendChild(this.highlightGroup),i.appendChild(this.labelGroup),n?.appendChild(this.annotationGroup)}detachSeries(e,i,n){this.contentGroup.remove(),this.highlightGroup.remove(),this.labelGroup.remove(),this.annotationGroup.remove()}setSeriesIndex(e,i=!1){const n=this.bringToFront();return!i&&e===this.declarationOrder&&n===this._broughtToFront?!1:(this.declarationOrder=e,this._broughtToFront=n,this.setZIndex(n?Number.MAX_VALUE:e),this.fireEvent(new PN(this,this.seriesGrouping)),!0)}setZIndex(e){this.contentGroup.zIndex=[Vs.ANY_CONTENT,e,Mc.FOREGROUND],this.highlightGroup.zIndex=[Vs.ANY_CONTENT,e,Mc.HIGHLIGHT],this.labelGroup.zIndex=[Vs.ANY_CONTENT,e,Mc.LABEL],this.annotationGroup.zIndex=e}renderToOffscreenCanvas(){return!1}hasHighlightOpacity(){if(!this.properties.highlight.enabled)return!1;const e=this.ctx.highlightManager.getActiveHighlight();if(e==null||e.series?.isHighlightEnabled()===!1)return!1;const{unhighlightedItem:i,unhighlightedSeries:n}=this.properties.highlight;return CN(i)||CN(n)}getDrawingMode(e,i="cutout"){return e?i:this.hasHighlightOpacity()?this.ctx.chartService.highlight?.drawingMode??"overlay":"overlay"}getAnimationDrawingModes(){const e=this.getDrawingMode(!1);return{start:{drawingMode:"overlay"},finish:{drawingMode:e}}}addEventListener(e,i){return super.addEventListener(e,i)}removeEventListener(e,i){return super.removeEventListener(e,i)}hasEventListener(e){return super.hasEventListener(e)}updatedDomains(){}destroy(){this.cleanup.flush(),this.resetDatumCallbackCache(),this.ctx.seriesStateManager.deregisterSeries(this)}getPropertyValues(e,i){const n=RB(e),s=n==null?e:OC(this.resolveKeyDirection(n)),a=i?.[s],o=[];if(!a)return o;const r=(...l)=>{for(const c of l)Array.isArray(c)?r(...c):typeof c=="object"?r(...Object.values(c)):o.push(c)};return r(...a.map(l=>this.properties[l])),o}getKeyAxis(e){}getKeys(e){return this.getPropertyValues(OC(e),this.propertyKeys)}getKeyProperties(e){return this.propertyKeys[this.resolveKeyDirection(e)]??[]}getNames(e){return this.getPropertyValues(OC(e),this.propertyNames)}getFormatterContext(e){const{id:i}=this,n=this.getPropertyValues(e,this.propertyKeys),s=this.getPropertyValues(e,this.propertyNames),a=[];for(let o=0;os.getDomain(e)).flat();return n.length===0?i:{domain:i.domain.concat(n)}}getRange(e,i){return this.getSeriesRange(e,i)}getMinimumRangeSeries(e){}getMinimumRangeChart(e){return 0}getZoomRangeFittingItems(e,i,n){}getVisibleItems(e,i,n){return 1/0}toCanvasFromMidPoint(e){const{x:i=0,y:n=0}=e.midPoint??{};return Ti.toCanvasPoint(this.contentGroup,i,n)}markNodeDataDirty(){this.nodeDataRefresh=!0,this._pickNodeCache.clear(),this.visibleMaybeChanged()}visibleMaybeChanged(){const{internalId:e,seriesGrouping:i,type:n,visible:s}=this;this.ctx.seriesStateManager.updateSeries({internalId:e,type:n,visible:s,seriesGrouping:i,width:"width"in this.properties?this.properties.width:0})}getOpacity(){if(!this.properties.highlight)return 1;const{opacity:i=1}=this.getHighlightStyle();return i}getHighlightState(e,i,n,s){return this.properties.highlight.enabled?i?1:e?.series==null||e.series.isHighlightEnabled()===!1?0:this.isSeriesHighlighted(e,s)?this.isItemHighlighted(e,n)==null?2:4:3:0}getHighlightStateString(e,i,n,s){return em(this.getHighlightState(e,i,n,s))}onChangeHighlight(e){const i=e.previousHighlight,n=e.currentHighlight,s=this.getHighlightState(n),a=this.getHighlightState(i);this.setSeriesIndex(this.declarationOrder);const o=this.hasItemStylers();if(!o&&s===a){this.hasChangesOnHighlight=!1;return}const{highlightedSeries:r,unhighlightedItem:l,unhighlightedSeries:c}=this.properties.highlight;this.hasChangesOnHighlight=o||!cb(r)||!cb(l)||!cb(c)}bringToFront(){return this.properties.highlight.enabled&&this.properties.highlight.bringToFront&&this.isSeriesHighlighted(this.ctx.highlightManager.getActiveHighlight())}isSeriesHighlighted(e,i){return this.properties.highlight.enabled?e?.series===this:!1}isItemHighlighted(e,i){if(!(e?.datumIndex==null||i==null))return e.datumIndex===i}getHighlightStyle(e,i,n,s){const a=this.ctx.highlightManager?.getActiveHighlight();return n??(n=this.getHighlightState(a,e,i,s)),this.properties.highlight.getStyle(n)}resolveMarkerDrawingModeForState(e,i){return W7(e,i)}filterItemStylerFillParams(e){return an(e)?At(e,["bounds","colorSpace","gradient","reverse"]):ir(e)?At(e,["padding"]):e}getModuleTooltipParams(){return this.moduleMap.mapModules(e=>e.getTooltipParams()).reduce((e,i)=>Object.assign(e,i),{})}pickNodes(e,i,n=!1){const{pickModes:s,pickModeAxis:a,visible:o,contentGroup:r}=this;if(!o||!r.visible)return;let l=1/0;if(i==="tooltip"||i==="highlight-tooltip"){const{tooltip:f}=this.properties;l=typeof f.range=="number"?f.range:1/0,n||(n=f.range==="exact")}else if(i==="event"||i==="context-menu"){const{nodeClickRange:f}=this.properties;l=typeof f=="number"?f:1/0,n||(n=f==="exact")}const c=s.filter(f=>!n||f===0),{x:u,y:d}=e,g=JSON.stringify({x:u,y:d,maxDistance:l,selectedPickModes:c});if(this._pickNodeCache.has(g))return this._pickNodeCache.get(g);for(const f of c){let y;switch(f){case 0:{const x=this.pickNodesExactShape(e);y=x.length===0?void 0:{datums:x,distance:0};break}case 1:{const x=this.pickNodeClosestDatum(e),S=x?.distance===0?this.pickNodesExactShape(e):void 0;S!=null&&S.length!==0?y={datums:S,distance:0}:x?y={datums:[x.datum],distance:x.distance}:y=void 0;break}case 2:{const x=a==null?void 0:this.pickNodeMainAxisFirst(e,a==="main-category");y=x==null?void 0:{datums:[x.datum],distance:x.distance};break}}if(y&&y.distance<=l)return this._pickNodeCache.set(g,{pickMode:f,datums:y.datums,distance:y.distance})}return this._pickNodeCache.set(g,void 0)}pickNodesExactShape(e){const i=[];for(const n of this.contentGroup.pickNodes(e.x,e.y)){const s=n.closestDatum();typeof s=="object"&&s!=null&&s.missing!==!0&&i.push(s)}return i}pickNodeClosestDatum(e){throw new Error("AG Charts - Series.pickNodeClosestDatum() not implemented")}pickNodeNearestDistantObject(e,i){const n=Tx(e.x,e.y,i),s=n.nearest?.closestDatum();if(typeof s=="object"&&s!=null&&s.missing!==!0)return{datum:s,distance:Math.sqrt(n.distanceSquared)}}pickNodeMainAxisFirst(e,i){throw new Error("AG Charts - Series.pickNodeMainAxisFirst() not implemented")}getLabelData(){return[]}updatePlacedLabelData(e){}fireEvent(e){js([this.properties,this.ctx.chartService],this.fireEventWrapper,e)}fireNodeClickEvent(e,i){const n=new this.NodeEvent("seriesNodeClick",e,i,this);return this.fireEvent(n),!n.defaultPrevented}fireNodeDoubleClickEvent(e,i){const n=new this.NodeEvent("seriesNodeDoubleClick",e,i,this);return this.fireEvent(n),!n.defaultPrevented}createNodeContextMenuActionEvent(e,i){return new this.NodeEvent("nodeContextMenuAction",e,i,this)}onLegendInitialState(e,i){const{visible:n=!0,itemId:s,legendItemName:a}=i??{};this.toggleSeriesItem(n,e,s,a)}onLegendItemClick(e){const{enabled:i,itemId:n,series:s,legendType:a}=e,o="legendItemName"in this.properties?this.properties.legendItemName:void 0,r="legendItemKey"in this.properties?this.properties.legendItemKey:void 0,l=o!=null&&o===e.legendItemName;(s.id===this.id||l||r!=null)&&this.toggleSeriesItem(i,a,n,o,e)}onLegendItemDoubleClick(e){const{enabled:i,itemId:n,series:s,numVisibleItems:a,legendType:o}=e,r="legendItemName"in this.properties?this.properties.legendItemName:void 0,l="legendItemKey"in this.properties?this.properties.legendItemKey:void 0,c=r!=null&&r===e.legendItemName;s.id===this.id||c||l!=null?this.toggleSeriesItem(!0,o,n,r,e):i&&a===1?this.toggleSeriesItem(!0,o,void 0,r):this.toggleSeriesItem(!1,o,void 0,r)}toggleSeriesItem(e,i,n,s,a){const o=this.id;(e||i!=="category")&&(this.visible=e),this.nodeDataRefresh=!0,this._pickNodeCache.clear();const r={type:"seriesVisibilityChange",seriesId:o,itemId:n,legendItemName:a?.legendItemName??s,visible:e};this.fireEvent(r),this.ctx.legendManager.toggleItem(e,o,n,s)}isEnabled(){return this.visible}getModuleMap(){return this.moduleMap}createModuleContext(){return{...this.ctx,series:this}}getAxisValueText(e,i,n,s,a,o,r){const{id:l,properties:c}=this;return e.formatDatum(c,n,i,l,o,s,a,void 0,void 0,void 0,r)}getLabelText(e,i,n,s,a,o,r,l=!1){if(e==null&&!l)return"";const{axes:c,canHaveAxes:u,ctx:d,id:g,properties:f}=this,y="series-label",x="legendItemName"in f?f.legendItemName:void 0,S={seriesId:this.id,...r},D=u?RB(s):void 0,A=D==null?void 0:c[this.resolveKeyDirection(D)];if(A!=null)return A.formatDatum(f,e,y,g,x,i,n,a,o,S,l);const{formatManager:I}=d,w=this.callWithContext.bind(this),N=L=>o.formatValue(w,L.type,L.value,S)??I.format(w,L)??(e==null?"":String(e)),O=this.getFormatterContext(s);switch(s){case"y":case"color":case"size":return N({type:"number",value:e,datum:i,seriesId:g,legendItemName:x,key:n,source:y,property:s,domain:a,boundSeries:O,fractionDigits:void 0,visibleDomain:void 0});case"x":case"radius":case"angle":case"label":case"secondaryLabel":case"calloutLabel":case"sectorLabel":case"legendItem":return N({type:"category",value:e,datum:i,seriesId:g,legendItemName:x,key:n,source:y,property:s,domain:a,boundSeries:O})}}getMarkerStyle(e,{datumIndex:i,datum:n,point:s},a,o,r={size:s?.size??e.size??0},l){const{itemStyler:c}=e,{highlightState:u,isHighlight:d=!1,checkForHighlight:g=!0,resolveMarkerSubPath:f=["marker"],resolveStyler:y=!1}=o??{},x=["series",`${this.declarationOrder}`,...f];if(y){const I={permissivePath:!0},w=this.ctx.optionsGraphService.resolvePartial(x,r,I);w&&(r={...w,size:w.size??r.size})}const S=g?this.getHighlightStyle(d,i,u):void 0;let A=Et(S,r,e.getStyle(),l);if(c&&a){const I=this.ctx.highlightManager?.getActiveHighlight(),w=this.getHighlightStateString(I,d,i),N=this.filterItemStylerFillParams(A.fill),O=this.cachedCallWithContext(c,{seriesId:this.id,...A,fill:N,...a,highlightState:w,datum:n}),L=this.ctx.optionsGraphService.resolvePartial(x,O);A=Et(L,A)}return A}applyMarkerStyle(e,i,n,s,{applyTranslation:a=!0,selected:o=!0}={}){const{shape:r,size:l=0}=e,c=this.visible&&l>0&&n&&!Number.isNaN(n.x)&&!Number.isNaN(n.y);if(i.setStyleProperties(e,s),a?i.setProperties({visible:c,shape:r,size:l,x:n?.x,y:n?.y,scalingCenterX:n?.x,scalingCenterY:n?.y}):i.setProperties({visible:c,shape:r,size:l}),o||(i.fillOpacity*=pJ,i.strokeOpacity*=gJ),typeof r=="function"&&!i.dirtyPath){i.path.clear(!0),i.updatePath(),i.checkPathDirty();const u=i.getBBox();if(n!=null&&u.isFinite()){const d=u.computeCenter(),[g,f]=["x","y"].map(y=>(e.strokeWidth??0)+Math.abs(d[y]-n[y]));n.focusSize=Math.max(u.width+g,u.height+f)}}}get nodeDataDependencies(){return this._nodeDataDependencies??{seriesRectWidth:Number.NaN,seriesRectHeight:Number.NaN}}checkResize(e){const{width:i,height:n}=e??{width:Number.NaN,height:Number.NaN},s=e?{seriesRectWidth:i,seriesRectHeight:n}:void 0,a=or(this.nodeDataDependencies,s)!=null;return a&&(this._nodeDataDependencies=s,this.markNodeDataDirty()),a}pickFocus(e){}pickViewportFocus(e){}resetDatumCallbackCache(){this.datumCallbackCache.clear()}cachedDatumCallback(e,i){const{datumCallbackCache:n}=this,s=n.get(e);if(s!=null)return s;try{const a=i();return n.set(e,a),a}catch(a){pt.error(String(a))}}cachedCallWithContext(e,i){return this.ctx.callbackCache.call([this.properties,this.ctx.chartService],e,i)}callWithContext(e,i){return js([this.properties,this.ctx.chartService],e,i)}formatTooltipWithContext(e,i,n){return e.formatTooltip([this.properties,this.ctx.chartService],i,n)}minTimeInterval(){}needsDataModelDiff(){return!this.ctx.animationManager.isSkipped()||!!this.chart?.flashOnUpdateEnabled}};Wx.className="Series";T([Pe({changeValue:function(t,e){this.onSeriesGroupingChange(e,t)}})],Wx.prototype,"seriesGrouping",2);var fJ=class{constructor(t){this.swapChain=t,this.focusVisibleStyle=!1,this.div=$t("div"),this.svg=$i("svg"),this.outerPath=$i("path"),this.innerPath=$i("path"),this.svg.append(this.outerPath),this.svg.append(this.innerPath),this.outerPath.classList.add("ag-charts-focus-svg-outer-path"),this.innerPath.classList.add("ag-charts-focus-svg-inner-path"),this.element=$t("div","ag-charts-focus-indicator"),this.element.ariaHidden="true",this.element.append(this.svg),this.swapChain.addListener("swap",e=>this.onSwap(e))}clear(){}update(t,e,i){if(e!=null)if(t instanceof Tn){const n=(a,o)=>{let{x:r,y:l}=Ti.toCanvasPoint(t,a,o);return r-=e.x??0,l-=e.y??0,{x:r,y:l}},s=t.svgPathData(n);this.outerPath.setAttribute("d",s),this.innerPath.setAttribute("d",s),this.show(this.svg)}else{let n;if(i){const s=Math.max(t.x-e.x,0),a=Math.max(t.y-e.y,0),o=Math.min(t.x+t.width-e.x,e.width),r=Math.min(t.y+t.height-e.y,e.height);n=new Tt(s,a,o-s,r-a)}else n=new Tt(t.x-e.x,t.y-e.y,t.width,t.height);tM(this.div,n),this.show(this.div)}}onSwap(t){t!==this.element.parentElement&&(this.element.remove(),t.appendChild(this.element),this.overrideFocusVisible(this.focusVisible))}show(t){this.element.innerHTML="",this.element.append(t)}overrideFocusVisible(t){this.focusVisible=t;const e={true:"1",false:"0",undefined:""};this.element.parentElement?.style.setProperty("opacity",e[`${t}`])}isFocusVisible(){return this.focusVisible??this.focusVisibleStyle}onFocus(){this.overrideFocusVisible(void 0);const t=this.element.parentElement,e=this.element.ownerDocument.defaultView;return this.focusVisibleStyle=t!=null&&e.getComputedStyle(t).opacity==="1",this.focusVisibleStyle}onBlur(){this.overrideFocusVisible(void 0),this.focusVisibleStyle=!1}},mJ=class{constructor(t,e,i,n){this.label1=t,this.label2=e,this.hasFocus=!1,this.skipDispatch=!1,this.listeners={blur:[],focus:[],swap:[]},this.onBlur=s=>(Cr(s.target,"pointer-events",void 0),!this.skipDispatch&&this.dispatch("blur",s)),this.onFocus=s=>(Cr(s.target,"pointer-events","auto"),!this.skipDispatch&&this.dispatch("focus",s)),ye(this.label1,"id",lu()),ye(this.label2,"id",lu()),Cr(this.label1,"display","none"),Cr(this.label2,"display","none"),this.label1.textContent=n,this.label2.textContent=n,this.activeAnnouncer=this.createAnnouncer(i),this.inactiveAnnouncer=this.createAnnouncer(i),ye(this.activeAnnouncer,"tabindex",0),this.label2.insertAdjacentElement("afterend",this.activeAnnouncer),this.label2.insertAdjacentElement("afterend",this.inactiveAnnouncer),this.swap(n)}createAnnouncer(t){const e=$t("div");return e.role=t,e.className="ag-charts-swapchain",e.addEventListener("blur",this.onBlur),e.addEventListener("focus",this.onFocus),e}destroy(){for(const t of[this.activeAnnouncer,this.inactiveAnnouncer])t.removeEventListener("blur",this.onBlur),t.removeEventListener("focus",this.onFocus),t.remove()}focus(t){this.focusOptions=t,this.activeAnnouncer.focus(t),this.focusOptions=void 0}update(t){this.skipDispatch=!0,this.swap(t),this.hasFocus&&this.activeAnnouncer.focus(this.focusOptions),this.skipDispatch=!1}addListener(t,e){this.listeners[t].push(e),t==="swap"&&e(this.activeAnnouncer)}dispatch(t,e){t==="focus"?this.hasFocus=!0:t==="blur"&&(this.hasFocus=!1);for(const i of this.listeners[t])i(e)}swap(t){const e=this.activeAnnouncer.tabIndex;this.label2.textContent=t,[this.inactiveAnnouncer,this.activeAnnouncer]=[this.activeAnnouncer,this.inactiveAnnouncer],[this.label1,this.label2]=[this.label2,this.label1],Nr(this.inactiveAnnouncer,{"aria-labelledby":this.label1.id,"aria-hidden":!0,tabindex:void 0}),Nr(this.activeAnnouncer,{"aria-labelledby":this.label1.id,"aria-hidden":!1,tabindex:e}),this.dispatch("swap",this.activeAnnouncer)}},yJ={arrowdown:{bindings:[{code:"ArrowDown"}]},arrowleft:{bindings:[{code:"ArrowLeft"}]},arrowright:{bindings:[{code:"ArrowRight"}]},arrowup:{bindings:[{code:"ArrowUp"}]},home:{bindings:[{code:"Home"}]},end:{bindings:[{code:"End"}]},delete:{bindings:[{key:"Backspace"},{key:"Delete"}],activatesFocusIndicator:!1},redo:{bindings:[{key:"y",ctrlOrMeta:!0},{key:"z",ctrlOrMeta:!0,shift:!0}],activatesFocusIndicator:!1},undo:{bindings:[{key:"z",ctrlOrMeta:!0}],activatesFocusIndicator:!1},submit:{bindings:[{key:"Enter"},{code:"Enter"},{code:"Space"}]},zoomin:{bindings:[{key:"+"},{code:"ZoomIn"},{code:"Add"}],activatesFocusIndicator:!1},zoomout:{bindings:[{key:"-"},{code:"ZoomOut"},{code:"Substract"}],activatesFocusIndicator:!1},panxleft:{bindings:[{key:"PageUp"},{code:"PageUp"}],activatesFocusIndicator:!0},panxright:{bindings:[{key:"PageDown"},{code:"PageDown"}],activatesFocusIndicator:!0}};function bJ(t,e){for(const i of e)if("code"in i){if(i.code===t.code)return!0}else if(i.key===t.key&&(i.shift===void 0||i.shift===t.shiftKey)&&(i.ctrlOrMeta===void 0||i.ctrlOrMeta===t.ctrlKey||i.ctrlOrMeta===t.metaKey))return!0;return!1}function xJ(t){for(const[e,{activatesFocusIndicator:i=!0,bindings:n}]of Xe(yJ))if(bJ(t,n))return{name:e,activatesFocusIndicator:i}}function vJ(t,e,i){const n=KT(t,i.datum,i.movedBounds);if(n!=null)return{x:n.canvasX,y:n.canvasY};const s=i.bounds;if(s!=null){if(s instanceof Tt){const{x:a,y:o}=s.computeCenter();return{x:e.x+a,y:e.y+o}}return Ti.toCanvas(s).computeCenter()}}function zN({bounds:t}){return t instanceof Tt?t:t!=null?Ti.toCanvas(t):Tt.NaN}function SJ(t,e,i){const{x:n,y:s}=vJ(t,e,i)??{};if(n!==void 0&&s!==void 0)return{type:"keyboard",canvasX:n,canvasY:s}}var PB=.1,zB=200,BB=12,MJ=.5,DJ=class{constructor(t){this.agDocument=t,this.events=new cr,this.x1=Number.NaN,this.y1=Number.NaN,this.x=Number.NaN,this.y=Number.NaN,this.vx=0,this.vy=0,this.t0=Number.NaN,this.animationFrameHandle=void 0}reset(){this.x=Number.NaN,this.y=Number.NaN,this.animationFrameHandle!=null&&(this.agDocument.cancelAnimationFrame(this.animationFrameHandle),this.animationFrameHandle=void 0)}update(t,e){if(Number.isNaN(this.x)||Number.isNaN(this.y)){this.x=t,this.y=e,this.vx=0,this.vy=0,this.emitUpdate(),this.animationFrameHandle!=null&&(this.agDocument.cancelAnimationFrame(this.animationFrameHandle),this.animationFrameHandle=void 0);return}this.x1=t,this.y1=e,this.t0=Date.now(),this.animationFrameHandle??(this.animationFrameHandle=this.agDocument.requestAnimationFrame(this.onFrame.bind(this)))}onFrame(){this.animationFrameHandle=void 0;const{x1:t,y1:e,t0:i}=this,n=Date.now(),s=n-i;this.t0=n;const a=.001,o=Math.trunc(Math.ceil(s/(a*1e3)));let{x:r,y:l,vx:c,vy:u}=this;for(let d=0;d"))}function tb(t,e){const{path:i,size:n}=t,{x:s,y:a}=t;i.clear();let o=!1;for(const[r,l]of e){const c=s+(r-.5)*n,u=a+(l-.5)*n;o?i.lineTo(c,u):i.moveTo(c,u),o=!0}i.closePath()}var AJ={circle({path:t,x:e,y:i,size:n}){const s=n/2;t.arc(e,i,s,0,Math.PI*2),t.closePath()},cross(t){tb(t,[[.25,0],[.5,.25],[.75,0],[1,.25],[.75,.5],[1,.75],[.75,1],[.5,.75],[.25,1],[0,.75],[.25,.5],[0,.25]])},diamond(t){tb(t,[[.5,0],[1,.5],[.5,1],[0,.5]])},heart({path:t,x:e,y:i,size:n}){const s=n/4;i=i+s/2,t.arc(e-s,i-s,s,Ze(130),Ze(330)),t.arc(e+s,i-s,s,Ze(220),Ze(50)),t.lineTo(e,i+s),t.closePath()},pin({path:t,x:e,y:i,size:n}){t.moveTo(e+(.891-.5)*n,i+(.391-.5)*n),t.cubicCurveTo(e+(.891-.5)*n,i+(.606-.5)*n,e+(.5-.5)*n,i+(1-.5)*n,e+(.5-.5)*n,i+(1-.5)*n),t.cubicCurveTo(e+(.5-.5)*n,i+(1-.5)*n,e+(.109-.5)*n,i+(.606-.5)*n,e+(.109-.5)*n,i+(.391-.5)*n),t.cubicCurveTo(e+(.109-.5)*n,i+(.175-.5)*n,e+(.284-.5)*n,i+(0-.5)*n,e+(.5-.5)*n,i+(0-.5)*n),t.cubicCurveTo(e+(.716-.5)*n,i+(0-.5)*n,e+(.891-.5)*n,i+(.175-.5)*n,e+(.891-.5)*n,i+(.391-.5)*n),t.closePath()},plus(t){tb(t,[[1/3,0],[2/3,0],[2/3,1/3],[1,1/3],[1,2/3],[2/3,2/3],[2/3,1],[1/3,1],[1/3,2/3],[0,2/3],[0,1/3],[1/3,1/3]])},square({path:t,x:e,y:i,size:n,pixelRatio:s}){const a=n/2;t.moveTo(Fn(s,e-a),Fn(s,i-a)),t.lineTo(Fn(s,e+a),Fn(s,i-a)),t.lineTo(Fn(s,e+a),Fn(s,i+a)),t.lineTo(Fn(s,e-a),Fn(s,i+a)),t.closePath()},star({path:t,x:e,y:i,size:n}){const a=n/2,o=a/2,r=Math.PI/2;for(let l=0;l<10;l++){const c=l%2===0?a:o,u=l*Math.PI/5-r,d=e+Math.cos(u)*c,g=i+Math.sin(u)*c;t.lineTo(d,g)}t.closePath()},triangle(t){tb(t,[[.5,0],[1,.87],[0,.87]])}},Kx=class extends Tn{constructor(){super(...arguments),this.shape="square",this.x=0,this.y=0,this.size=12}isPointInPath(t,e){return this.distanceSquared(t,e)<=0}get midPoint(){return{x:this.x,y:this.y}}distanceSquared(t,e){const i=wn.anchor(this.shape),n=t-this.x+(i.x-.5)*this.size,s=e-this.y+(i.y-.5)*this.size,a=this.size/2;return Math.max(n*n+s*s-a*a,0)}updatePath(){const{path:t,shape:e,x:i,y:n,size:s}=this,a=this.layerManager?.canvas?.pixelRatio??1,o=wn.anchor(e),r={path:t,x:i-(o.x-.5)*s,y:n-(o.y-.5)*s,size:s,pixelRatio:a};t.clear(),typeof e=="string"?AJ[e](r):typeof e=="function"&&e(r)}computeBBox(){const{x:t,y:e,size:i}=this,n=wn.anchor(this.shape);return new Tt(t-i*n.x,e-i*n.y,i,i)}executeFill(t,e){if(e)return super.executeFill(t,e)}executeStroke(t,e){if(e)return super.executeStroke(t,e)}};T([_x({})],Kx.prototype,"shape",2);T([fe()],Kx.prototype,"x",2);T([fe()],Kx.prototype,"y",2);T([fe({convertor:Math.abs})],Kx.prototype,"size",2);var wn=class extends Qf(PD(Jf(Kx))){static anchor(e){return e==="pin"?{x:.5,y:1}:typeof e=="function"&&"anchor"in e?e.anchor:{x:.5,y:.5}}constructor(e){super(e),e?.shape!=null&&(this.shape=e.shape)}resetAnimationProperties(e,i,n,s,a,o){this.__x=e,this.__y=i,this.__size=n,this.__opacity=s,this.resetScalingProperties(a,o,e,i),this.dirtyPath=!0,this.markDirty()}};function IJ(t,e,i=e*(5/3)){const n=new ee,s=Math.min(t.marker.strokeWidth??1,2),a=t.line?.enabled?Math.min(t.line.strokeWidth,2):0,o=Math.max(t.marker.enabled===!1?0:e,t.line==null?0:i),r=Math.max(t.marker.enabled===!1?0:e,a);if(t.line?.enabled){const{stroke:l,strokeOpacity:c,lineDash:u}=t.line,d=new mo;d.x1=0,d.y1=r/2,d.x2=o,d.y2=r/2,d.stroke=l,d.strokeOpacity=c,d.strokeWidth=a,d.lineDash=u,n.append(d)}if(t.marker.enabled!==!1){const{shape:l,fill:c,fillOpacity:u,stroke:d,strokeOpacity:g,lineDash:f,lineDashOffset:y}=t.marker,x=new wn;x.shape=l??"square",x.size=e,x.fill=c,x.fillOpacity=u??1,x.stroke=d,x.strokeOpacity=g??1,x.strokeWidth=s,x.lineDash=f,x.lineDashOffset=y??0;const S=wn.anchor(l),D=o/2+(S.x-.5)*e,A=r/2+(S.y-.5)*e,I=e/(e+s);x.x=D,x.y=A,x.scalingCenterX=D,x.scalingCenterY=A,x.scalingX=I,x.scalingY=I,n.append(x)}return ee.toSVG(n,o,r)}var es="ag-charts-tooltip",kJ="ag-charts-tooltip--dark";function Cc(t){return t==null?!1:Array.isArray(t)?t.some(e=>Cc(e.text)):bi(t).trim()!==""}function dp(t,e=!1){return t==null?!e:typeof t=="number"&&!Number.isFinite(t)}function CJ(t){return t.type==="raw"||!t.data||t.data.length===0?!1:t.data.every(e=>e.missing===!0)}function w3(t){const e=[],i=new Map;for(const n of t)if(!CJ(n))if(n.type==="structured"){const{heading:s}=n,a=Cc(s)?i.get(s):void 0,o={type:"structured",heading:s,items:[n]};a==null?(i.set(s,o),e.push(o)):a.items.push(n)}else e.push(n);return e}function wJ(t){const e=bp().createElement("div");e.innerHTML=t;const i=e.textContent?.trim();return i??(pt.warnOnce("cannot retrieve tooltip textContent (required for aria-label)"),"")}function NJ(t){const e=w3(t),i=[];for(const n of e){if(n.type==="raw"){i.push(wJ(n.rawHtmlString));continue}Cc(n.heading)&&i.push(ce(n.heading));for(const s of n.items)if(Cc(s.title)&&i.push(ce(s.title)),s.data)for(const a of s.data)a.missing!==!0&&i.push(a.label??a.fallbackLabel,ce(a.value))}return i.filter(n=>n!=="").join("; ")}function N3(t,e,i){let n="";Cc(t)?(n+=`${cf(t)}`,n+=" ",n+=`${cf(e)}`):n+=`${cf(e)}`;const s=[`${es}-row`];return i&&s.push(`${es}-row--inline`),n=`
${n}
`,n}function TJ(t){let e="";if(t.data?.length&&t.data.every(a=>a.missing===!0))return e;const i=Cc(t.title),n=!i&&t.data?.length===1,s=t.symbol==null?void 0:IJ(t.symbol,12);if(s!=null&&(i||t.data?.length)&&(e+=`${s}`),i&&(e+=`${cf(t.title)}`,e+=" "),t.data)for(const a of t.data)a.missing!==!0&&(e+=N3(a.label??a.fallbackLabel,ce(a.value),n),e+=" ");return e}function T3(t,e){if(t==null||e.length===1)return;const i=t?.t("tooltipPaginationStatus",{index:e.index+1,count:e.length});return``}function VB(t,e,i,n){const s=e.items.length===1?e.items[0]:void 0;let a,o,r;switch(i){case"compact":a=!0,o=ce(s?.title);break;case"single":const u=Cc(e.heading);a=s!=null&&(!u||s.title==null)&&s.data?.length===1&&s.data[0].label==null&&s.data[0].value!=null,r=ce(u?e.heading:s?.title);break;case"shared":a=!1}let l="";if(a&&s!=null){if(Cc(o)&&(l+=`${cf(o)}`),s.data)for(const u of s.data)u.missing!==!0&&(l+=N3(u.label??r,ce(u.value),!1),l+=" ")}else{Cc(e.heading)&&(l+=`${cf(ce(e.heading))}`,l+=" ");for(const u of e.items)l+=TJ(u)}if(l.length===0)return;const c=i!=="compact"&&n!=null?T3(t,n):void 0;return c+null&&(l+=c),l=`
${l.trimEnd()}
`,l}function LJ(t,e){const i=e==null?void 0:T3(t,e);return i==null?"":`
${i}
`}function OJ(t,e,i,n){const s=w3(e);if(s.length!==0){if(s.length===1&&s[0].type==="structured")return VB(t,s[0],i,n);{const a=s.map(o=>o.type==="structured"?VB(t,o,i):o.rawHtmlString);return n!=null&&a.push(LJ(t,n)??""),a.join("")}}}var EJ={left:-1,"top-left":-1,"bottom-left":-1,top:0,center:0,bottom:0,right:1,"top-right":1,"bottom-right":1},RJ={"top-left":-1,top:-1,"top-right":-1,left:0,center:0,right:0,"bottom-left":1,bottom:1,"bottom-right":1},PJ={left:3,"top-left":void 0,"bottom-left":void 0,top:2,center:void 0,bottom:1,right:0,"top-right":void 0,"bottom-right":void 0},_B={top:2,bottom:2,left:1,right:1,"top-right":3,"top-left":3,"bottom-right":3,"bottom-left":3,center:0},zJ={pointer:"top",node:"top",chart:"top-left"},nm=class extends xt{constructor(){super(...arguments),this.xOffset=0,this.yOffset=0}};T([b],nm.prototype,"xOffset",2);T([b],nm.prototype,"yOffset",2);T([b],nm.prototype,"anchorTo",2);T([b],nm.prototype,"placement",2);var Hr=class extends xt{constructor(t){super(),this.agDocument=t,this.enabled=!0,this.mode="single",this.delay=0,this.range=void 0,this.wrapping="hyphenate",this.position=new nm,this.pagination=!1,this.darkTheme=!1,this.bounds="extended",this.cleanup=new qe,this.springAnimation=new DJ(this.agDocument),this.enableInteraction=!1,this.wrapTypes=["always","hyphenate","on-space","never"],this._elementSize=void 0,this._showTimeout=void 0,this.arrowPosition=void 0,this._visible=!1,this.positionParams=void 0,this.localeManager=void 0,this.cleanup.register(this.springAnimation.events.on("update",()=>{this.updateTooltipPosition()}))}get interactive(){return this.enableInteraction}setup(t,e){this.elementProxy=e.addDeferredProxyChild("tooltip-container",es),this.elementProxy.toggleClass(es,!0),this.elementProxy.setProperty("position-anchor",e.anchorName),this.elementProxy.setAttr("popover","manual");const i=this.elementProxy.addResizeListener(n=>{this._elementSize=n,this.updateTooltipPosition()});return this.localeManager=t,()=>{e.removeChild("tooltip-container",es),this.cleanup.flush(),i()}}isVisible(){return this._visible}contains(t){return this.elementProxy?.contains(t)??!1}updateTooltipPosition(){const{elementProxy:t,_elementSize:e,positionParams:i}=this;if(t==null||e==null||i==null)return;const{canvasRect:n,relativeRect:s,meta:a}=i,{x:o,y:r}=this.springAnimation,l=a.position?.anchorTo??"pointer";let c=a.position?.placement??zJ[l];Array.isArray(c)||(c=[c]);const u=a.position?.xOffset??0,d=a.position?.yOffset??0,g=s.x,f=s.y,y=s.width-e.width-1+g,x=s.height-e.height+f;let S=0,D,A,I=!1;do{D=c[S],S+=1;const R=this.getTooltipBounds({elementSize:e,placement:D,anchorTo:l,canvasX:o,canvasY:r,yOffset:d,xOffset:u,canvasRect:n});A=uT(e.width,e.height,s,R),I=!1,_B[D]&1&&(I||(I=A.xy)),_B[D]&2&&(I||(I=A.yx))}while(S{(r.relatedTarget==null||JS(r.relatedTarget)&&!this.contains(r.relatedTarget))&&this.popInteractiveLeaveCallback()}},a.addEventListener("focusout",this.interactiveLeave.listener),a.addEventListener("mouseout",this.interactiveLeave.listener)),o}popInteractiveLeaveCallback(){const{interactiveLeave:t,elementProxy:e}=this;this.interactiveLeave=void 0,t&&(e&&(e.removeEventListener("focusout",t.listener),e.removeEventListener("mouseout",t.listener)),t.callback())}toggle(t,e=!1){const{delay:i}=this;t&&i>0&&!e?this._showTimeout??(this._showTimeout=setTimeout(()=>{this._showTimeout=void 0,this.toggleCallback(!0)},i)):(clearTimeout(this._showTimeout),this._showTimeout=void 0,this.toggleCallback(t))}toggleCallback(t){this.elementProxy?.isConnected&&this._visible!==t&&(this._visible=t,this.elementProxy.togglePopover(t),t?this.updateTooltipPosition():(this.springAnimation.reset(),this.popInteractiveLeaveCallback(),this.elementProxy.reset()))}updateClassModifiers(){if(!this.elementProxy?.isConnected)return;const{elementProxy:t}=this,{enableInteraction:e,arrowPosition:i,mode:n,darkTheme:s,wrapping:a}=this,o=(r,l)=>t.toggleClass(`${es}--${r}`,l);o("no-interaction",!e),o("arrow-top",i===1),o("arrow-right",i===3),o("arrow-bottom",i===2),o("arrow-left",i===0),o("compact",n==="compact"),t.toggleClass(kJ,s);for(const r of this.wrapTypes)t.toggleClass(`${es}--wrap-${r}`,r===a)}getTooltipBounds(t){const{elementSize:e,anchorTo:i,placement:n,canvasX:s,canvasY:a,yOffset:o,xOffset:r,canvasRect:l}=t,{width:c,height:u}=e,d={width:c,height:u};if(i==="node"||i==="pointer"){const g=EJ[n],f=RJ[n];return d.top=a+o+u*(f-1)/2+8*f,d.left=s+r+c*(g-1)/2+8*g,d}switch(n){case"top":return d.top=o,d.left=l.width/2-c/2+r,d;case"right":return d.top=l.height/2-u/2+o,d.left=l.width-c+r,d;case"left":return d.top=l.height/2-u/2+o,d.left=r,d;case"bottom":return d.top=l.height-u+o,d.left=l.width/2-c/2+r,d;case"top-left":return d.top=o,d.left=r,d;case"top-right":return d.top=o,d.left=l.width-c+r,d;case"bottom-right":return d.top=l.height-u+o,d.left=l.width-c+r,d;case"bottom-left":return d.top=l.height-u+o,d.left=r,d}return d}};T([b],Hr.prototype,"enabled",2);T([b],Hr.prototype,"mode",2);T([b],Hr.prototype,"showArrow",2);T([b],Hr.prototype,"delay",2);T([b],Hr.prototype,"range",2);T([b],Hr.prototype,"wrapping",2);T([b],Hr.prototype,"position",2);T([b],Hr.prototype,"pagination",2);T([b],Hr.prototype,"darkTheme",2);T([b],Hr.prototype,"bounds",2);function BJ(t,e){for(const i of t)if(Ti.toCanvas(i.node).intersectsWith(e))return!0;return!1}function VJ(t){switch(t.sourceDetail){case"keyboard-page(1)":case"keyboard-page(-1)":return"viewport-start";case"keyboard-page(home)":return"data-start";case"keyboard-page(end)":return"data-end";default:return}}var L3=class extends PT{constructor(t){super(),this.chart=t,this.id=Nn(this),this.series=[],this.announceMode="when-changed",this.highlight={pendingHoverEvent:void 0,appliedHoverEvent:void 0,stashedHoverEvent:void 0},this.tooltip={lastHover:void 0},this.activeState={lastActive:void 0,highlightInViewport:!0},this._device="pointer",this.focus={initialized:!1,sortedSeries:[],series:void 0,seriesIndex:0,datumIndex:0,datum:void 0,pendingViewportFocus:void 0},this.cachedTooltipContent=void 0,this.hoverScheduler=this.createHoverScheduler(),this.pickManager=new dJ(t.ctx.activeManager,t.tooltip);const e=t.ctx.localeManager.t("ariaInitSeriesArea"),i=t.ctx.domManager.addChild("series-area","series-area-aria-label1"),n=t.ctx.domManager.addChild("series-area","series-area-aria-label2");this.swapChain=new mJ(i,n,"img",e),this.swapChain.addListener("blur",r=>this.onBlur(r)),this.swapChain.addListener("focus",()=>this.onFocus()),t.ctx.domManager.mode==="normal"&&(this.focusIndicator=new fJ(this.swapChain),this.focusIndicator.overrideFocusVisible(t.mode==="integrated"?!1:void 0));const{seriesDragInterpreter:s,seriesWidget:a,containerWidget:o}=t.ctx.widgets;a.setTabIndex(-1),this.cleanup.register(()=>t.ctx.domManager.removeChild("series-area","series-area-aria-label1"),()=>t.ctx.domManager.removeChild("series-area","series-area-aria-label2"),a.addListener("focus",()=>this.swapChain.focus({preventScroll:!0})),a.addListener("mousemove",r=>this.onHover(r,a)),a.addListener("wheel",r=>this.onWheel(r)),a.addListener("mouseleave",r=>this.onLeave(r)),a.addListener("keydown",r=>this.onKeyDown(r)),a.addListener("contextmenu",(r,l)=>this.onContextMenu(r,l)),o.addListener("contextmenu",(r,l)=>this.onContextMenu(r,l)),o.addListener("click",(r,l)=>this.onClick(r,l)),o.addListener("dblclick",(r,l)=>this.onClick(r,l)),t.ctx.animationManager.addListener("animation-start",()=>this.onAnimationStart()),t.ctx.eventsHub.on("active:load-memento",r=>this.onActiveLoadMemento(r)),t.ctx.eventsHub.on("active:update",r=>this.onActiveUpdate(r)),t.ctx.eventsHub.on("dom:resize",()=>this.onResize()),t.ctx.eventsHub.on("dom:container-change",()=>this.resetHoverScheduler()),t.ctx.eventsHub.on("highlight:change",r=>this.changeHighlightDatum(r)),t.ctx.eventsHub.on("highlight:selection-updated",r=>this.onHighlightSelectionUpdate(r)),t.ctx.eventsHub.on("layout:complete",r=>this.layoutComplete(r)),t.ctx.updateService.addListener("pre-scene-render",()=>this.preSceneRender()),t.ctx.updateService.addListener("update-complete",()=>this.updateComplete()),t.ctx.eventsHub.on("zoom:change-complete",r=>this.onZoomChangeComplete(r)),t.ctx.eventsHub.on("zoom:pan-start",()=>this.clearAll())),s&&this.cleanup.register(s.events.on("drag-move",r=>this.onDragMove(r,a)),s.events.on("click",r=>this.onClick(r,a)),s.events.on("dblclick",r=>this.onClick(r,a)))}get bbox(){return(this.seriesRect??Tt.zero).clone()}setHoverDevice(t){(t==="setState"||!this.isState(1))&&(this._device=t)}getHoverDevice(){return this._device}initFocus(t){if(!this.focus.initialized)switch(this.focus.initialized=!0,t){case"data-end":{this.focus.datumIndex=Number.MAX_VALUE;break}case"viewport-start":case"viewport-end":{this.focus.pendingViewportFocus=t;break}}}isState(t){return this.chart.ctx.interactionManager.isState(t)}isIgnoredTouch(t){return!(t.device!=="touch"||t.type==="click"||this.chart.ctx.chartService.touch.dragAction==="hover"||this.chart.ctx.chartService.touch.dragAction==="drag"&&this.isState(18))}dataChanged(){var t;this.cachedTooltipContent=void 0,this.highlight.appliedHoverEvent&&((t=this.highlight).stashedHoverEvent??(t.stashedHoverEvent=this.highlight.appliedHoverEvent),this.clearHighlight()),this.getHoverDevice()!=="setState"&&(this.chart.ctx.tooltipManager.removeTooltip(this.id),this.focusIndicator?.clear())}preSceneRender(){this.highlight.stashedHoverEvent!=null&&(this.highlight.pendingHoverEvent=this.tooltip.lastHover??this.highlight.stashedHoverEvent,this.highlight.stashedHoverEvent=void 0,this.handleHoverHighlight(!0)),this.tooltip.lastHover!=null&&this.handleHoverTooltip(this.tooltip.lastHover,!0),this.getHoverDevice()==="setState"&&this.refreshSetState()}updateComplete(){const{pendingViewportFocus:t}=this.focus;t&&this.focus.series!==void 0?(this.focus.pendingViewportFocus=void 0,this.pickViewportFocus(t)):this.isState(69)&&this.focusIndicator?.isFocusVisible()&&(this.announceMode!=="always"&&(this.announceMode="never"),this.refreshFocus())}update(t,e){this.chart.ctx.eventsHub.emit("chart:request-update",{type:t,opts:e})}seriesChanged(t){this.focus.sortedSeries=[...t].sort((e,i)=>{let n=e.properties.focusPriority??1/0,s=i.properties.focusPriority??1/0;return n===s&&([n,s]=[e.declarationOrder,i.declarationOrder]),ns?1:0}),this.series=t}layoutComplete(t){this.seriesRect=t.series.rect,this.hoverRect=t.series.rect,this.chart.ctx.widgets.seriesWidget.setBounds(t.series.rect),this.chart.ctx.domManager.mode==="normal"&&this.chart.ctx.widgets.chartWidget.setBounds(t.chart)}onAnimationStart(){this.getHoverDevice()!=="setState"&&this.clearAll()}onResize(){const t=this.chart.ctx.highlightManager.getActiveHighlight();this.clearAll(),this.pickManager.wasActivationPrevented()&&t!==void 0&&(this.setHoverDevice("setState"),this.activeState.lastActive={itemId:ZD(t),seriesId:t.series.id})}onZoomChangeComplete(t){this.clearAll(),this.focus.pendingViewportFocus=VJ(t)}onContextMenu(t,e){const{sourceEvent:i}=t;if(i.currentTarget!=e.getElement())return;if(e!==this.chart.ctx.widgets.seriesWidget){if(this.isState(72)){const{currentX:c,currentY:u}=t;this.chart.ctx.contextMenuRegistry.dispatchContext("always",{widgetEvent:t,canvasX:c,canvasY:u},void 0)}return}let n,s;if(this.focusIndicator?.isFocusVisible())n=this.chart.ctx.highlightManager.getActiveHighlight(),n&&this.seriesRect&&n.midPoint&&(s=Ti.toCanvasPoint(n.series.contentGroup,n.midPoint.x,n.midPoint.y));else if(this.isState(72)){const c=this.pickNodes({x:t.currentX,y:t.currentY},"context-menu");c&&(this.pickManager.maybeActivate(void 0,()=>{this.chart.ctx.highlightManager.updateHighlight(this.id)}),n=c.matches[0])}const a=n?.series;this.clearAll();const o=t.currentX+e.cssLeft(),r=t.currentY+e.cssTop(),{datumIndex:l}=n??{};a&&n&&l!=null?this.chart.ctx.contextMenuRegistry.dispatchContext("series-node",{widgetEvent:t,canvasX:o,canvasY:r},{pickedSeries:a,pickedNode:{...n,datumIndex:l}},s):this.chart.ctx.contextMenuRegistry.dispatchContext("series-area",{widgetEvent:t,canvasX:o,canvasY:r},void 0,s)}onLeave(t){!this.isState(82)||t.sourceEvent.relatedTarget?.className==="ag-charts-text-input__textarea"||this.maybeEnterInteractiveTooltip(t.sourceEvent)||(this.chart.ctx.domManager.updateCursor(this.id),this.getHoverDevice()!=="keyboard"&&this.clearAll(!0))}onWheel(t){this.isState(82)&&(this.focusIndicator?.overrideFocusVisible(!1),this.setHoverDevice("pointer"))}onDragMove(t,e){this.isState(82)&&(this.focusIndicator?.overrideFocusVisible(!1),this.onHoverLikeEvent(t,e))}onHover(t,e){this.isState(83)&&this.onHoverLikeEvent(t,e)}onHoverLikeEvent(t,e){if(this.isIgnoredTouch(t)||(t.device==="touch"&&this.chart.ctx.chartService.touch.dragAction==="hover"&&t.sourceEvent.preventDefault(),e!==this.chart.ctx.widgets.seriesWidget))return;this.tooltip.lastHover=t,this.setHoverDevice("pointer"),this.highlight.pendingHoverEvent=t,this.hoverScheduler.schedule();let i;if(this.isState(65)){const{currentX:s,currentY:a}=t;i=this.pickNodes({x:s,y:a},"event");const o=i?.matches,r=o?.[0];r?.series.hasEventListener("seriesNodeClick")||r?.series.hasEventListener("seriesNodeDoubleClick")||o!=null&&o.length>1&&this.chart.tooltip.pagination?this.chart.ctx.domManager.updateCursor(this.id,"pointer"):this.chart.ctx.domManager.updateCursor(this.id)}const n=!!i?.matches.length;this.emitSeriesAreaHoverEvent(t,n)}onClick(t,e){if(t.device==="keyboard"||(e===this.chart.ctx.widgets.seriesWidget&&this.chart.ctx.animationManager.isActive()&&this.chart.ctx.animationManager.skipCurrentBatch(),t.device==="touch"&&e===this.chart.ctx.widgets.seriesWidget&&this.swapChain.focus({preventScroll:!0}),!this.isState(83)))return;if(e===this.chart.ctx.widgets.seriesWidget){if(!e.getElement().contains(t.sourceEvent.target))return}else if(t.sourceEvent.target!=e.getElement())return;this.focusIndicator?.overrideFocusVisible(!1),this.onHoverLikeEvent(t,e);const i=e===this.chart.ctx.widgets.seriesWidget;if(this.isState(18)){i&&this.emitSeriesAreaClickEvent(t,!1);return}if(i){if(this.checkSeriesNodeClick(t)){this.emitSeriesAreaClickEvent(t,!0),this.update(Ct.SERIES_UPDATE),t.sourceEvent.preventDefault();return}this.emitSeriesAreaClickEvent(t,!1)}const n={type:t.type==="click"?"click":"doubleClick",event:t.sourceEvent};this.chart.fireEvent(n)}emitSeriesAreaHoverEvent(t,e){const{canvasX:i,canvasY:n}=this.toCanvasCoordinates(t),s={canvasX:i,canvasY:n,consumed:e,sourceEvent:t.sourceEvent};this.chart.ctx.eventsHub.emit("series-area:hover",s)}emitSeriesAreaClickEvent(t,e){if(!("currentX"in t))return;const{canvasX:i,canvasY:n}=this.toCanvasCoordinates(t),s={canvasX:i,canvasY:n,consumed:e,sourceEvent:t.sourceEvent};this.chart.ctx.eventsHub.emit("series-area:click",s)}toCanvasCoordinates(t){return{canvasX:t.currentX+(this.hoverRect?.x??this.seriesRect?.x??0),canvasY:t.currentY+(this.hoverRect?.y??this.seriesRect?.y??0)}}onFocus(){if(!this.isState(69)||!this.focusIndicator)return;this.initFocus(this.chart.keyboard.initialFocus);const t=this.focusIndicator.onFocus();this.setHoverDevice(t?"keyboard":"pointer");const{pendingViewportFocus:e}=this.focus;this.refreshFocus()===4&&e&&(this.focus.pendingViewportFocus=void 0,this.pickViewportFocus(e))}onBlur(t){this.isState(69)&&(this.setHoverDevice("pointer"),!this.isState(1)&&!this.maybeEnterInteractiveTooltip(t)&&this.clearAll(!0),this.focusIndicator?.onBlur())}onKeyDown(t){if(!this.isState(87))return;const e=xJ(t.sourceEvent);switch(e?.activatesFocusIndicator===!1&&this.focusIndicator?.overrideFocusVisible(this.getHoverDevice()==="keyboard"),e?.name){case"redo":return this.chart.ctx.eventsHub.emit("series:redo",null);case"undo":return this.chart.ctx.eventsHub.emit("series:undo",null);case"zoomin":return this.chart.ctx.eventsHub.emit("series:keynav-zoom",{delta:1,widgetEvent:t});case"zoomout":return this.chart.ctx.eventsHub.emit("series:keynav-zoom",{delta:-1,widgetEvent:t});case"panxleft":return this.onPage(-1,t);case"panxright":return this.onPage(1,t);case"arrowup":return this.onArrow(-1,0,t);case"arrowdown":return this.onArrow(1,0,t);case"arrowleft":return this.onArrow(0,-1,t);case"arrowright":return this.onArrow(0,1,t);case"home":return this.onHome(t);case"end":return this.onEnd(t);case"submit":return this.onSubmit(t);case"delete":return;default:e?.name}}onPage(t,e){if(!this.chart.hasPgUpPgDownSupport()||!this.onNav(e))return;const i=this.focus.series?.axes.x?.reverse??!1;this.chart.ctx.eventsHub.emit("series:keynav-panx",{delta:t,reverse:i,widgetEvent:e})}onNav(t){return this.isState(69)?(this.setHoverDevice("keyboard"),this.focusIndicator?.overrideFocusVisible(!0),t.sourceEvent.preventDefault(),!0):!1}onArrow(t,e,i){this.onNav(i)&&(this.focus.seriesIndex+=t,this.focus.datumIndex+=e,this.handleFocusFromUserInput({datumIndexDelta:e,otherIndexDelta:t}))}onHome(t){if(this.chart.hasViewportSupport())return this.onPage("home",t);this.onNav(t)&&this.handleFocusFromUserInput({otherIndex:this.focus.seriesIndex,datumIndex:0})}onEnd(t){if(this.chart.hasViewportSupport())return this.onPage("end",t);if(!this.onNav(t))return;const e=this.focus.series?.data?.data.length;e!==void 0&&this.handleFocusFromUserInput({otherIndex:this.focus.seriesIndex,datumIndex:e-1})}onSubmit(t){if(!this.onNav(t))return;const{series:e,datum:i}=this.focus,n=t.sourceEvent;e!=null&&i!=null?e.fireNodeClickEvent(n,i):this.chart.fireEvent({type:"click",event:n})}checkSeriesNodeClick(t){var e;const i=this.pickNodes({x:t.currentX,y:t.currentY},"event"),n=this.pickManager.onPickedNodesTooltip(i);if(i===void 0||n.active===void 0)return!1;const s=n.paginationState==null?i.distance:0;if(t.type==="click"){if(n.active.series.fireNodeClickEvent(t.sourceEvent,n.active)){const o=this.pickManager.nextCandidate();if(o.active!==void 0){const{active:r}=o,{canvasX:l,canvasY:c}=this.toCanvasCoordinates(t);(e=this.highlight).pendingHoverEvent??(e.pendingHoverEvent=this.highlight.appliedHoverEvent),this.handleHoverHighlight(!1,{active:r,defaultCb:()=>{this.showTooltip(r,l,c,o.paginationState)}})}}return!0}return t.type==="dblclick"?(t.preventZoomDblClick=s===0,n.active.series.fireNodeDoubleClickEvent(t.sourceEvent,n.active),!0):!1}handleFocusFromUserInput(t){this.handleFocus(t),this.chart.ctx.eventsHub.emit("series:focus-change",null)}refreshFocus(){return this.handleFocus({datumIndexDelta:0,otherIndexDelta:0})}handleFocus(t){const e=this.chart.overlays.getFocusInfo(this.chart.ctx.localeManager);if(e==null){const i=this.handleSeriesFocus(t);return i===0?this.announceMode="when-changed":this.announceMode="always",i}else return this.focusIndicator?.update(e.rect,this.seriesRect,!1),this.swapChain.update(e.text),this.announceMode="always",0}handleSeriesFocus(t){return"datumIndexDelta"in t?this.handleSeriesFocusDeltas(t):this.handleSeriesFocusIndices(t)}makeUpdateFocusParamsFromDeltas(t){const{otherIndexDelta:e,datumIndexDelta:i}=t;if(this.chart.chartType==="standalone"){this.focus.series=this.focus.sortedSeries[0];const c=this.focus.datumIndex,u=this.focus.seriesIndex,d=this.focus.datumIndex-i,g=this.focus.seriesIndex-e;return{datumIndex:c,datumIndexDelta:i,oldDatumIndex:d,otherIndex:u,otherIndexDelta:e,oldOtherIndex:g}}const{focus:n}=this,s=n.sortedSeries.filter(c=>c.visible&&c.focusable);if(s.length===0)return 1;const a=n.datumIndex-i,o=n.seriesIndex-e;n.seriesIndex=Nt(0,n.seriesIndex,s.length-1),n.series=s[n.seriesIndex];const r=this.focus.datumIndex,l=this.focus.seriesIndex;return{datumIndex:r,datumIndexDelta:i,oldDatumIndex:a,otherIndex:l,otherIndexDelta:e,oldOtherIndex:o}}handleSeriesFocusDeltas(t){const e=this.makeUpdateFocusParamsFromDeltas(t);return e===1?1:this.pickFocus(e)}handleSeriesFocusIndices(t){const{datumIndex:e,otherIndex:i}=t,n=this.focus.datumIndex,s=this.focus.seriesIndex;return this.pickFocus({datumIndex:e,datumIndexDelta:e-n,oldDatumIndex:n,otherIndex:i,otherIndexDelta:i-s,oldOtherIndex:s})}pickFocus(t){const{datumIndex:e,datumIndexDelta:i,otherIndex:n,otherIndexDelta:s}=t,{focus:a,hoverRect:o,seriesRect:r}=this;if(a.series==null||o==null)return 1;const l={datumIndex:e,datumIndexDelta:i,otherIndex:n,otherIndexDelta:s,seriesRect:r},c=a.series.pickFocus(l);return c?this.updatePickedFocus(t,c):2}pickViewportFocus(t){const{focus:e,hoverRect:i}=this;if(e.series==null||i==null)return 1;const n=e.series.pickViewportFocus({where:t,hoverRect:i,otherIndex:e.seriesIndex});if(!n)return 2;const s={datumIndex:n.datumIndex,datumIndexDelta:0,oldDatumIndex:this.focus.datumIndex,otherIndex:n.otherIndex??this.focus.seriesIndex,otherIndexDelta:0,oldOtherIndex:this.focus.seriesIndex};return this.updatePickedFocus(s,n)}updatePickedFocus(t,e){const{datumIndexDelta:i,oldDatumIndex:n,otherIndexDelta:s,oldOtherIndex:a}=t,{focus:o,hoverRect:r}=this;if(o.series==null||r==null)return 1;if(o.pendingViewportFocus!==void 0)return 4;const{datum:l}=e;if(o.datum=l,o.datumIndex=e.datumIndex,e.otherIndex!=null&&(o.seriesIndex=e.otherIndex),this.focusIndicator?.isFocusVisible()){this.chart.ctx.animationManager.reset();const d=zN(e),{x:g,y:f}=d.computeCenter();if(!r.containsPoint(g,f)&&this.chart.ctx.zoomManager.panToBBox(r,d))return 3;const{x1:y,x2:x,y1:S,y2:D}=Wt.from(d),A=r.containsPoint(y,S),I=r.containsPoint(x,S),w=r.containsPoint(y,D),N=r.containsPoint(x,D);if(!(A||I||w||N)){const O=Wt.from(r);e.movedBounds=d.clone(),yO.x2&&x>O.x2&&(e.movedBounds.x=O.x2-2,e.movedBounds.width=4),SO.y2&&D>O.y2&&(e.movedBounds.y=O.y2-2,e.movedBounds.height=4)}}this.focusIndicator?.update(e.movedBounds??e.bounds,this.seriesRect,e.clipFocusBox);const c=this.getTooltipContent(l,"aria-label"),u=SJ(o.series,r,e);if(u!=null&&this.getHoverDevice()==="keyboard"&&(this.clearCachedEvents(),!this.isState(1))){const d=IM.makeTooltipMeta(u,o.series,l,e.movedBounds);this.pickManager.maybeActivate(l,({series:g})=>{this.chart.ctx.highlightManager.updateHighlight(this.id,l),this.isTooltipEnabled(g)&&this.chart.ctx.tooltipManager.updateTooltip(this.id,d,c)},{defaultCbArg:{series:o.series}})}return this.maybeAnnouncePickedFocus(i,n,s,a,e,c),0}maybeAnnouncePickedFocus(t,e,i,n,s,a){const{focus:o}=this;let r;this.announceMode==="when-changed"?t===0&&i===0||e!==s.datumIndex||n!==(s.otherIndex??o.seriesIndex)?r="always":r="never":r=this.announceMode,r==="always"&&this.swapChain.update(this.getDatumAriaText(s.datum,a))}getDatumAriaText(t,e){const i=e==null?"":NJ(e);return this.chart.ctx.localeManager.t("ariaAnnounceHoverDatum",{datum:t.series.getDatumAriaText?.(t,i)??i})}clearHighlight(t=!1){this.pickManager.maybeActivate(void 0,()=>{this.highlight.pendingHoverEvent=void 0,this.highlight.appliedHoverEvent=void 0,this.chart.ctx.highlightManager.updateHighlight(this.id,void 0,t)})}clearTooltip(t=!1){this.chart.ctx.tooltipManager.removeTooltip(this.id,void 0,t),this.tooltip.lastHover=void 0}clearAll(t=!1){this.isState(1)||(this.pickManager.onClearUI(),this.clearHighlight(t),this.pickManager.wasActivationPrevented()||this.clearTooltip(t),this.focusIndicator?.clear())}clearStaleHighlightTooltip(){this.getHoverDevice()==="setState"&&(this.clearCachedEvents(),this.chart.ctx.highlightManager.updateHighlight(this.id,void 0),this.chart.ctx.tooltipManager.removeTooltip(this.id,void 0))}clearUnpreventable(){this.activeState.lastActive=void 0,this.pickManager.onClearUI(),this.clearHighlight(!1),this.clearTooltip(!1)}clearCachedEvents(){this.tooltip.lastHover=void 0,this.highlight.appliedHoverEvent=void 0,this.highlight.pendingHoverEvent=void 0,this.highlight.stashedHoverEvent=void 0}createHoverScheduler(){return CZ(this.chart.ctx.domManager.getDocument(),()=>{if(this.getHoverDevice()==="setState")return this.handleHoverFromState();if(!(!this.tooltip.lastHover&&!this.highlight.pendingHoverEvent)){if(this.chart.getUpdateType()<=Ct.SERIES_UPDATE){this.hoverScheduler.schedule();return}this.highlight.pendingHoverEvent&&this.handleHoverHighlight(!1),this.tooltip.lastHover&&this.handleHoverTooltip(this.tooltip.lastHover,!1)}})}resetHoverScheduler(){this.hoverScheduler.cancel(),this.hoverScheduler=this.createHoverScheduler()}handleHoverFromState(){const{active:t,paginationState:e}=this.pickManager.onPickedNodesAPIDebounced();t!==void 0&&this.pickManager.maybeActivate(t,()=>{const i=KT(t.series,t,void 0);if(this.chart.tooltip.enabled){if(!t.series.visible)this.clearStaleHighlightTooltip();else if(i){const{canvasX:n,canvasY:s}=i,a=this.activeState.highlightInViewport;this.chart.ctx.highlightManager.updateHighlight(this.id,t,!1,a),a?this.showTooltip(t,n,s,e):this.clearTooltip()}}})}handleHoverHighlight(t,e){this.highlight.appliedHoverEvent=this.highlight.pendingHoverEvent,this.highlight.pendingHoverEvent=void 0;const i=this.highlight.appliedHoverEvent;if(!i||!this.isState(82))return;const{canvasX:n,canvasY:s}=this.toCanvasCoordinates(i);if(t?this.chart.ctx.animationManager.isActive():!this.hoverRect?.containsPoint(n,s)){this.clearHighlight();return}const{range:a}=this.chart.highlight,o=a==="tooltip"?"highlight-tooltip":"highlight",r=e?.active??this.pickManager.onPickedNodesHighlight(this.pickNodes({x:i.currentX,y:i.currentY},o));r===void 0?this.pickManager.maybeActivate(void 0,()=>{this.chart.ctx.highlightManager.updateHighlight(this.id,void 0,!0),e?.defaultCb()}):this.pickManager.maybeActivate(r,()=>{this.chart.ctx.highlightManager.updateHighlight(this.id,r,!1),e?.defaultCb()})}handleHoverTooltip(t,e){if(!this.isState(82))return;const{canvasX:i,canvasY:n}=this.toCanvasCoordinates(t),s=t.sourceEvent.target;if(e?this.chart.ctx.animationManager.isActive():!this.hoverRect?.containsPoint(i,n)){this.getHoverDevice()=="pointer"&&this.clearTooltip();return}if(s&&this.chart.tooltip.interactive&&this.chart.ctx.domManager.isManagedChildDOMElement(s,"canvas-overlay",es))return;const a=this.pickNodes({x:t.currentX,y:t.currentY},"tooltip"),{active:o,paginationState:r}=this.pickManager.onPickedNodesTooltip(a);this.pickManager.wasActivationPrevented()||(o===void 0?this.getHoverDevice()=="pointer"&&this.clearTooltip(!0):this.showTooltip(o,i,n,r))}showTooltip(t,e,i,n){const s=this.getTooltipContent(t,"tooltip");if(s!=null){const{series:o}=t,r=IM.makeTooltipMeta({type:"pointermove",canvasX:e,canvasY:i},o,t,void 0);this.chart.ctx.tooltipManager.updateTooltip(this.id,r,s,n)}else this.chart.ctx.tooltipManager.removeTooltip(this.id,void 0,!0)}maybeEnterInteractiveTooltip(t){return this.chart.tooltip.maybeEnterInteractiveTooltip(t,()=>{this.pickManager.maybeActivate(void 0,()=>{this.tooltip.lastHover=void 0,this.chart.ctx.tooltipManager.removeTooltip(this.id,void 0,!0),this.chart.ctx.highlightManager.updateHighlight(this.id,void 0,!0)})})}changeHighlightDatum(t){const e=t.previousHighlight?.series,i=t.currentHighlight?.series;e?.properties.cursor&&t.previousHighlight?.datum&&this.chart.ctx.domManager.updateCursor(e.id),i?.properties.cursor&&i.properties.cursor!=="default"&&t.currentHighlight?.datum&&this.chart.ctx.domManager.updateCursor(i.id,i.properties.cursor);const n=e?.isHighlightEnabled()??!1;if(t.highlightSuppressed&&!n)return;const s=t.highlightSuppressed!==!n;this.getHoverDevice()==="setState"||i==null||e==null||s?this.update(Ct.SERIES_UPDATE,{clearCallbackCache:!0}):this.update(Ct.SERIES_UPDATE,{seriesToUpdate:new Set([e,i].filter(Boolean)),clearCallbackCache:!0})}onHighlightSelectionUpdate(t){if(!this.isState(1)||!this.seriesRect){this.activeState.highlightInViewport=!0;return}if(t.highlightSelection.length===0)return;const e=BJ(t.highlightSelection,this.seriesRect);this.activeState.highlightInViewport=e}pickNodes(t,e,i){const n=[...this.series].reverse(),s=e==="event"||e==="context-menu",a=e==="tooltip"||e==="highlight-tooltip",o=g=>{if(s)return g.properties.nodeClickRange;if(a)return g.properties.tooltip.range},{x:r,y:l}=t,c=new Set;for(const g of n)g.visible&&g.contentGroup.visible&&o(g)==="area"&&g.isPointInArea?.(r,l)&&c.add(g);const u=c.size>0;let d;for(const g of n){if(!g.visible||!g.contentGroup.visible||u&&!(o(g)==="area"&&c.has(g)))continue;const f=g.pickNodes(t,e,i);if(f==null||f.datums.length===0)continue;const{datums:y,distance:x}=f;if(f.datums.length!==0)if(x===0){d?.distance!==0&&(d={matches:[],distance:0});for(const S of y)d.matches.push(S)}else(d==null||d.distance>x)&&(d={matches:y,distance:x})}return d}isTooltipEnabled(t){return t.tooltipEnabled??this.chart.tooltip.enabled}getTooltipContent(t,e){const{series:i,datumIndex:n}=t;let s;if(e==="aria-label"||this.isTooltipEnabled(i)){const{cachedTooltipContent:a}=this;if(a?.series===i&&a.datumIndex===n)s=a.content;else{const o=this.chart.getTooltipContent(i,n,t,e);this.cachedTooltipContent={series:i,datumIndex:n,content:o},s=o}}else this.cachedTooltipContent=void 0;return s}onActiveLoadMemento(t){switch(t.activeItem?.type){case void 0:case"legend":return this.onActiveClear();case"series-node":return this.onActiveDatum(t.activeItem,t);default:return t.activeItem?.type}}onActiveUpdate(t){t?.type==="legend"&&(this.clearStaleHighlightTooltip(),this.activeState.lastActive="legend")}onActiveClear(){this.pickManager.onClearAPI(),this.setHoverDevice("setState"),this.activeState.lastActive=void 0,this.clearHighlight(),this.clearTooltip()}refreshSetState(){if(this.activeState.lastActive===void 0)this.pickManager.onClearUI(),this.clearHighlight(!1),this.clearTooltip(!1);else if(this.activeState.lastActive!=="legend"){const{seriesId:t,itemId:e}=this.activeState.lastActive,i=this.findPickedNodes(t,e);i===void 0?this.clearUnpreventable():i==="series-hidden"?this.isState(1)?this.clearStaleHighlightTooltip():this.pickManager.maybeActivate(void 0,()=>{this.activeState.lastActive=void 0,this.clearCachedEvents(),this.chart.ctx.highlightManager.updateHighlight(this.id,void 0),this.chart.ctx.tooltipManager.removeTooltip(this.id,void 0)}):(this.pickManager.onPickedNodesAPI(i),this.hoverScheduler.schedule())}}onActiveDatum(t,e){const{seriesId:i,itemId:n}=t,s=this.findPickedNodes(i,n);if(s===void 0)e.reject(),this.onActiveClear();else{if(s!=="series-hidden"){const a=this.pickManager.onPickedNodesAPI(s);e.setDatum(a)}this.setHoverDevice("setState"),this.activeState.lastActive={seriesId:i,itemId:n},e.initialState?(this.chart.ctx.scene.applyPendingResize(),this.handleHoverFromState()):(this.clearCachedEvents(),this.hoverScheduler.schedule())}}findPickedNodes(t,e){const i=this.series.find(s=>s.id===t);if(i==null){pt.warn(`Cannot find seriesId: "${t}"`);return}if(!i.visible)return"series-hidden";const n=i.findNodeDatum(e);if(n==null){pt.warn(`Cannot find itemId: ${JSON.stringify(e)}`);return}return{matches:[n],distance:0}}};L3.className="SeriesAreaManager";var FB=30,_J=class{constructor(t){this.seriesRoot=t,this.groups=new Map,this.series=new Map,this.expectedSeriesCount=1,this.mode="normal"}setSeriesCount(t){this.expectedSeriesCount=t}getGroupIndex(t){const{internalId:e,seriesGrouping:i}=t;return i?.groupIndex??e}getGroupType(t,e){return e?"top":t.type}requestGroup(t){const{internalId:e,contentGroup:i}=t,n=t.bringToFront(),s=this.getGroupType(t,n),a=this.getGroupIndex(t),o=this.series.get(e);if(o!=null)throw new Error(`AG Charts - series already has an allocated layer: ${JSON.stringify(o)}`);this.series.size===0&&(this.mode=this.expectedSeriesCount>=FB?"aggressive-grouping":"normal");let r=this.groups.get(s);r==null&&(r=new Map,this.groups.set(s,r));const l=this.lookupIdx(a);let c=r.get(l);return c==null&&(c={type:s,id:l,seriesIds:[],group:this.seriesRoot.appendChild(new ee({name:`${t.contentGroup.name??s}-managed-layer`,zIndex:t.contentGroup.zIndex,renderToOffscreenCanvas:!1}))},r.set(l,c)),this.series.set(e,{layerState:c,seriesConfig:t,bringToFront:n}),c.seriesIds.push(e),c.group.appendChild(i),c.group}changeGroup(t){const{internalId:e,contentGroup:i}=t,n=t.bringToFront(),s=this.getGroupType(t,n),a=this.series.get(e),o=a?this.getGroupType(a.seriesConfig,a.bringToFront):void 0,r=this.getGroupIndex(t),l=this.lookupIdx(r),c=this.groups.get(s)?.get(l);if(!(o===s&&c?.seriesIds.includes(e)===!0))return this.series.has(e)&&this._releaseGroup({internalId:e,contentGroup:i,type:o}),this.requestGroup(t)}releaseGroup(t){const{internalId:e,contentGroup:i}=t,n=this.getGroupType(t,t.bringToFront());this._releaseGroup({internalId:e,contentGroup:i,type:n})}_releaseGroup(t){const{internalId:e,contentGroup:i,type:n}=t;if(!this.series.has(e))throw new Error(`AG Charts - series doesn't have an allocated layer: ${e}`);const s=this.series.get(e)?.layerState;s&&(s.seriesIds=s.seriesIds.filter(a=>a!==e),i.remove()),s?.seriesIds.length===0?(s.group.remove(),this.groups.get(s.type)?.delete(s.id),this.groups.get(n)?.delete(e)):s!=null&&s.seriesIds.length>0&&(s.group.zIndex=this.getLowestSeriesZIndex(s.seriesIds)),this.series.delete(e)}updateLayerCompositing(){for(const t of this.groups.values())for(const e of t.values()){const{group:i,seriesIds:n}=e;let s;n.length===0?s=!1:n.length>1?s=!0:s=this.series.get(n[0])?.seriesConfig.renderToOffscreenCanvas()===!0,i.renderToOffscreenCanvas=s,i.zIndex=this.getLowestSeriesZIndex(n)}}lookupIdx(t){return this.mode==="normal"?t:typeof t=="string"&&(t=Number(t.split("-").at(-1)),!Number.isFinite(t))?0:Math.floor(Nt(0,t/this.expectedSeriesCount,1)*FB)}destroy(){for(const t of this.groups.values())for(const e of t.values())e.group.remove();this.groups.clear(),this.series.clear()}getLowestSeriesZIndex(t){let e;for(const i of t){const s=this.series.get(i)?.seriesConfig.contentGroup.zIndex??Vs.ANY_CONTENT;if(e==null||s==null){e=s;continue}e=cG(e,s)<=0?e:s}return e??Vs.ANY_CONTENT}},O3=class extends xt{constructor(){super(...arguments),this.dragAction="drag"}};T([b],O3.prototype,"dragAction",2);var FJ=class{constructor(t,e,i,n,s,a){this.chart=t,this.eventsHub=e,this.dataService=i,this.updateService=n,this.zoomManager=s,this.animationManager=a,this.dirtyZoom=!1,this.dirtyDataSource=!1,this.lastAxisZooms=new Map,this.cleanup=new qe,this.cleanup.register(this.eventsHub.on("data:source-change",()=>this.onDataSourceChange()),this.eventsHub.on("data:load",()=>this.onDataLoad()),this.eventsHub.on("data:error",()=>this.onDataError()),this.updateService.addListener("update-complete",o=>this.onUpdateComplete(o)),this.eventsHub.on("zoom:change-complete",()=>this.onZoomChange()))}destroy(){this.cleanup.flush()}onDataLoad(){this.animationManager.skip(),this.eventsHub.emit("chart:request-update",{type:Ct.UPDATE_DATA})}onDataError(){this.eventsHub.emit("chart:request-update",{type:Ct.PERFORM_LAYOUT})}onDataSourceChange(){this.dirtyDataSource=!0}onUpdateComplete(t){!t.apiUpdate&&!this.dirtyZoom&&!this.dirtyDataSource||t.wasShortcut||this.updateWindow(t)}onZoomChange(){this.dirtyZoom=!0}updateWindow(t){if(!this.dataService.isLazy())return;const e=this.getValidAxis();let i,n=!0;if(e){const s=this.zoomManager.getAxisZoom(e.id);i=this.getAxisWindow(e,s),n=this.shouldRefresh(t,e,s)}this.dirtyZoom=!1,this.dirtyDataSource=!1,n&&this.dataService.load({windowStart:i?.min,windowEnd:i?.max})}getValidAxis(){return this.chart.axes.find(t=>t.type==="time")}shouldRefresh(t,e,i){if(t.apiUpdate||this.dirtyDataSource)return!0;if(!this.dirtyZoom)return!1;const n=this.lastAxisZooms.get(e.id);return n&&i.min===n.min&&i.max===n.max?!1:(this.lastAxisZooms.set(e.id,i),!0)}getAxisWindow(t,e){const{domain:i}=t.scale;if(!e||i.length===0||Number.isNaN(Number(i[0])))return;const n=Number(i[1])-Number(i[0]),s=new Date(Number(i[0])+n*e.min),a=new Date(Number(i[0])+n*e.max);return{min:s,max:a}}},HJ=/^((?!chrome|android).)*safari/i,jJ=/Version\/(\d+(\.\d+)?)/,GJ=/Chrome/,UJ=/Chrome\/(\d+)/,WJ=/Edg/,KJ=/OPR/;function YJ(){const{userAgent:t}=Ml("navigator");if(HJ.test(t)){const e=jJ.exec(t);if(e==null)return!1;const i=Number.parseFloat(e[1]),n=Math.floor(i)>16;return n||pt.warnOnce(`Unsupported Safari version: ${i}; ${t}`),!n}else if(GJ.test(t)&&!WJ.test(t)&&!KJ.test(t)){const e=UJ.exec(t);if(e==null)return!1;const i=Number.parseInt(e[1],10),n=i>126;return n||pt.warnOnce(`Unsupported Chrome version: ${i}; ${t}`),!n}return!1}var $J=new Set(["map-shape-background","map-line-background"]),XJ=class{constructor(t,e,i,n,s,a,o){this.chartLike=t,this.overlays=e,this.eventsHub=i,this.dataService=n,this.localeManager=s,this.animationManager=a,this.domManager=o,this.cleanup=new qe,this.overlayElem=this.domManager.addProxyChild("canvas-overlay","overlay"),this.overlayElem.setAttr("role","status"),this.overlayElem.setAttr("aria-atomic","false"),this.overlayElem.setAttr("aria-live","polite"),this.overlayElem.toggleClass(ON,!0),this.cleanup.register(this.eventsHub.on("layout:complete",r=>this.onLayoutComplete(r)))}destroy(){this.cleanup.flush(),this.domManager.removeChild("canvas-overlay","overlay")}onLayoutComplete({series:{rect:t}}){const e=this.dataService.isLoading(),i=this.chartLike.series.some(c=>c.hasData),n=this.chartLike.series.some(c=>c.visible&&!$J.has(c.type));this.overlayElem.toggleClass(cJ,this.overlays.darkTheme),this.overlayElem.setProperty("left",`${t.x}px`),this.overlayElem.setProperty("top",`${t.y}px`),this.overlayElem.setProperty("width",`${t.width}px`),this.overlayElem.setProperty("height",`${t.height}px`);const s=e,a=!e&&!i,o=i&&!n,r=this.overlays.unsupportedBrowser.enabled&&YJ();s?this.showOverlay(this.overlays.loading,t):this.hideOverlay(this.overlays.loading),a?this.showOverlay(this.overlays.noData,t):this.hideOverlay(this.overlays.noData),o?this.showOverlay(this.overlays.noVisibleSeries,t):this.hideOverlay(this.overlays.noVisibleSeries),r?this.showOverlay(this.overlays.unsupportedBrowser,t):this.hideOverlay(this.overlays.unsupportedBrowser);const l=s||a||o||r;this.overlayElem.setAttr("aria-hidden",String(!l))}showOverlay(t,e){if(!t.enabled)return;const i=t.getElement(this.chartLike,this.animationManager,this.localeManager,e);this.overlayElem.appendChild(i)}hideOverlay(t){t.removeElement(()=>{this.overlayElem.innerText=" "},this.animationManager)}},jo=Gt.create(!0,"opts"),vi=class E3 extends vG{constructor(e,i){var n;super(),this.id=Nn(this),this.seriesRoot=new Ds({name:`${this.id}-series-root`,zIndex:pe.SERIES_LAYER}),this.annotationRoot=new Ds({name:`${this.id}-annotation-root`,zIndex:pe.SERIES_ANNOTATION}),this.titleGroup=new ee({name:"titles",zIndex:pe.SERIES_LABEL,renderToOffscreenCanvas:!0,optimizeForInfrequentRedraws:!0}),this.debug=Gt.create(!0,"chart"),this.extraDebugStats={},this.data=Sb.empty(),this._firstAutoSize=!0,this._autoSizeNotify=new dM,this._requiredRange=0,this._requiredRangeDirection=z.X,this.chartCaptions=new BD,this.padding=new zu(20),this.keyboard=new KD,this.touch=new O3,this.mode="standalone",this.withinStudio=void 0,this.styleNonce=void 0,this.formatter=void 0,this.suppressFieldDotNotation=!1,this.loadGoogleFonts=!1,this.dataIdKey=void 0,this.destroyed=!1,this.cleanup=new qe,this.chartAnimationPhase="initial",this.modulesManager=new lJ,this.processors=[],this.queuedUserOptions=[],this.queuedChartOptions=[],this.firstApply=!0,this.syncStatus="init",this.fireEventWrapper=g=>super.fireEvent(g),this.apiUpdate=!1,this._pendingFactoryUpdatesCount=0,this._performUpdateSkipAnimations=!1,this._performUpdateNotify=new dM,this.performUpdateType=Ct.NONE,this.runningUpdateType=Ct.NONE,this.currentProcessingUpdateType=Ct.NONE,this.updateShortcutCount=0,this.seriesToUpdate=new Set,this.updateMutex=new kZ,this.clearCallbackCacheOnUpdate=!1,this.updateRequestors={},this.performUpdateTrigger=RT(({count:g})=>{this.destroyed||this.updateMutex.acquire(this.tryPerformUpdate.bind(this,g)).catch(f=>pt.errorOnce(f))}),this._performUpdateSplits={},this._previousSplit=0,this.axes=this.createChartAxes(),this.series=[],this._cachedData=void 0,this.onSeriesNodeClick=g=>{this.fireEvent(g)},this.onSeriesNodeDoubleClick=g=>{this.fireEvent(g)},this.onSeriesVisibilityChange=g=>{this.fireEvent(g)},this.seriesGroupingChanged=g=>{if(!(g instanceof PN))return;const{series:f,seriesGrouping:y}=g;if(f.contentGroup.isRoot())return;const x=this.seriesLayerManager.changeGroup({internalId:f.internalId,type:f.type,contentGroup:f.contentGroup,bringToFront:()=>f.bringToFront(),renderToOffscreenCanvas:()=>f.renderToOffscreenCanvas(),seriesGrouping:y});x!=null&&f.attachSeries(x,this.seriesRoot,this.annotationRoot)},this.chartOptions=e;const s=i?.scene,a=i?.container??e.processedOptions.container??void 0,o=i?.styleContainer??e.specialOverrides.styleContainer,r=e.specialOverrides.skipCss;s&&(this._firstAutoSize=!1,this._lastAutoSize=[s.width,s.height,s.pixelRatio]);const l=new ee({name:"root"});l.visible=!1,l.append(this.seriesRoot),l.append(this.annotationRoot),l.append(this.titleGroup),this.titleGroup.append(this.title.node),this.titleGroup.append(this.subtitle.node),this.titleGroup.append(this.footnote.node);const c=new J4(e.specialOverrides.document,e.specialOverrides.window);this.tooltip=new Hr(c),this.seriesLayerManager=new _J(this.seriesRoot),this.mode=e.userOptions.mode??this.mode,this.styleNonce=e.processedOptions.styleNonce;const u=this.ctx=new dQ(this,{chartType:this.getChartType(),scene:s,root:l,container:a,styleContainer:o,skipCss:r,agDocument:c,domMode:e.optionMetadata.domMode,withDragInterpretation:e.optionMetadata.withDragInterpretation??!0,syncManager:new bQ(this),fireEvent:g=>this.fireEvent(g),updateMutex:this.updateMutex});e.optionMetadata.presetType==="sparkline"&&(u.highlightManager.unhighlightDelay=0,u.tooltipManager.removeDelay=0),this.cleanup.register(u.eventsHub.on("dom:resize",()=>this.parentResize(u.domManager.containerSize)),u.eventsHub.on("font:load",()=>{this.title.node.markDirty(),this.subtitle.node.markDirty(),this.footnote.node.markDirty(),this.update(Ct.PERFORM_LAYOUT)}),u.eventsHub.on("rtl:change",()=>{u.scene.setDirection(u.domManager.isRtl),this.update(Ct.PERFORM_LAYOUT)}),u.eventsHub.on("chart:request-update",g=>this.update(g.type,g.opts)),u.scene.on("scene-changed",()=>this.update(Ct.SCENE_RENDER))),u.scene.setDirection(u.domManager.isRtl),this.overlays=new im,(n=this.overlays.loading).renderer??(n.renderer=()=>hJ(u.agDocument,this.overlays.loading.getText(u.localeManager),u.animationManager.defaultDuration)),this.processors=[new FJ(this,u.eventsHub,u.dataService,u.updateService,u.zoomManager,u.animationManager),new XJ(this,this.overlays,u.eventsHub,u.dataService,u.localeManager,u.animationManager,u.domManager)],this.highlight=new WD,this.container=a;const d=this.getModuleContext();this.background=po.createBackground?.(d)??new tm(d),this.foreground=po.createForeground?.(d),this.seriesArea=new Ux(d),u.domManager.setDataBoolean("animating",!1),u.domManager.setDataNumber("animationTimeMs",0),this.seriesAreaManager=new L3(this.initSeriesAreaDependencies()),this.cleanup.register(u.layoutManager.registerElement(0,g=>{g.layoutBox.shrink(this.padding.toJson()),this.chartCaptions.positionCaptions(g)}),u.eventsHub.on("layout:complete",g=>this.chartCaptions.positionAbsoluteCaptions(g)),u.eventsHub.on("data:load",g=>{this.data=this.createDataSet(g.data)}),this.title.registerInteraction(d,"beforebegin"),this.subtitle.registerInteraction(d,"beforebegin"),this.footnote.registerInteraction(d,"afterend"),()=>this.title.destroy(),()=>this.subtitle.destroy(),()=>this.footnote.destroy(),this.ctx.agDocument.attachListener("pagehide",g=>{g.persisted||this.destroy()}),u.animationManager.addListener("animation-frame",()=>{this.update(Ct.SCENE_RENDER),u.domManager.setDataNumber("animationTimeMs",u.animationManager.getCumulativeAnimationTime())}),u.animationManager.addListener("animation-start",()=>u.domManager.setDataBoolean("animating",!0)),u.animationManager.addListener("animation-stop",()=>{u.domManager.setDataBoolean("animating",!1),u.domManager.setDataNumber("animationTimeMs",u.animationManager.getCumulativeAnimationTime())}),u.eventsHub.on("zoom:change-complete",()=>{const g=this.chartAnimationPhase==="initial";for(const f of this.series)f.animationState?.transition("updateData");if(g)for(const f of this.axes)f.resetAnimation(this.chartAnimationPhase);this.update(Ct.PERFORM_LAYOUT,{forceNodeDataRefresh:!0,skipAnimations:!g})})),this.parentResize(u.domManager.containerSize)}static getInstance(e){return E3.chartsInstances.get(e)}get canvasElement(){return this.ctx.scene.canvas.element}download(e,i){this.ctx.scene.download(e,i)}getCanvasDataURL(e){return this.ctx.scene.getDataURL(e)}toSVG(){return this.ctx.scene.toSVG()}get seriesAreaBoundingBox(){return this.seriesAreaManager.bbox}getOptions(){return this.queuedUserOptions.at(-1)??this.chartOptions.userOptions}getChartOptions(){return this.queuedChartOptions.at(-1)??this.chartOptions}isDataTransactionSupported(){return!0}createDataSet(e){return new Sb(e,this.dataIdKey)}overrideFocusVisible(e){this.seriesAreaManager.focusIndicator?.overrideFocusVisible(e)}fireEvent(e){js(this,this.fireEventWrapper,e)}initSeriesAreaDependencies(){const{ctx:e,tooltip:i,highlight:n,keyboard:s,overlays:a,seriesRoot:o,mode:r}=this,l=this.getChartType(),c=()=>this.hasViewportSupport(),u=()=>this.hasPgUpPgDownSupport(),d=this.fireEvent.bind(this);return{hasViewportSupport:c,hasPgUpPgDownSupport:u,fireEvent:d,getUpdateType:()=>this.performUpdateType,getTooltipContent:(y,x,S,D)=>this.getTooltipContent(y,x,S,D),chartType:l,ctx:e,tooltip:i,highlight:n,keyboard:s,overlays:a,seriesRoot:o,mode:r}}getModuleContext(){return this.ctx}getTooltipContent(e,i,n,s){const o=s==="aria-label"||e.properties.tooltip.enabled!==!1?e.getTooltipContent(i,n):void 0,r=o==null?[]:[o];if(this.tooltip.mode!=="shared"||this.series.length===1)return r;const l=e.getCategoryValue(i);return l==null?r:this.series.flatMap(c=>{if(c===e)return r;if(!c.isEnabled()||c.properties.tooltip.enabled===!1)return[];const u=c.datumIndexForCategoryValue(l),d=u==null?void 0:c.getTooltipContent(u,void 0);return d==null?[]:[d]})}getCaptionText(){return[this.title,this.subtitle,this.footnote].filter(e=>e.enabled&&e.text).map(e=>e.text).join(". ")}getAriaLabel(){return this.ctx.localeManager.t("ariaAnnounceChart",{seriesCount:this.series.length})}refreshSeriesUserVisibility(e,i){for(let n=0;n{if(!this.destroyed)try{await e(this)}finally{this.destroyed||this._pendingFactoryUpdatesCount--}}).catch(i=>pt.errorOnce(i)))}clearCallbackCache(){this.ctx.callbackCache.invalidateCache();for(const e of this.series)e.resetDatumCallbackCache()}update(e=Ct.FULL,i){if(this.destroyed)return;const{forceNodeDataRefresh:n=!1,skipAnimations:s,seriesToUpdate:a=this.series,newAnimationBatch:o,apiUpdate:r=!1,clearCallbackCache:l=!1}=i??{};if(this.apiUpdate=r,this.ctx.widgets.seriesWidget.setDragTouchEnabled(this.touch.dragAction!=="none"),n)for(const c of this.series)c.markNodeDataDirty();for(const c of a)this.seriesToUpdate.add(c);if(s&&(this.ctx.animationManager.skipCurrentBatch(),this._performUpdateSkipAnimations=!0),o&&this.ctx.animationManager.isActive()&&(this._performUpdateSkipAnimations=!0),(e===Ct.FULL||l)&&(this.clearCallbackCacheOnUpdate=!0),this.debug.check()){let c=new Error("Stack trace for update tracking").stack??"";c=c.replaceAll(/\([^)]*/g,""),this.updateRequestors[c]=e,this.currentProcessingUpdateType!==Ct.NONE&&this.currentProcessingUpdateType>=e&&this.debug.group(`Chart.update() - ⚠️ received update for earlier update stage ${Ct[e]} ⚠️`,()=>{this.debug(`Current processing update type: ${Ct[this.currentProcessingUpdateType]}`),this.debug("Update from: ",c)})}e0?"⚠️ redo #"+this.updateShortcutCount+" ⚠️ ":""}`;await this.debug.group(`Chart.performUpdate() ${i}`,async()=>{await this.performUpdate(e)})}catch(i){pt.error("update error",i,i.stack)}}async performUpdate(e){const{performUpdateType:i,extraDebugStats:n,_performUpdateSplits:s,ctx:a}=this,o=[...this.seriesToUpdate];switch(this.clearCallbackCacheOnUpdate&&(this.clearCallbackCacheOnUpdate=!1,this.clearCallbackCache()),this.performUpdateType=Ct.NONE,this.seriesToUpdate.clear(),this.runningUpdateType=i,this.currentProcessingUpdateType=i,this.updateShortcutCount===0&&ithis.chartAnimationPhase="ready")),this.ctx.scene.updateDebugFlags(),this.debug("Chart.performUpdate() - start",Ct[i]),this._previousSplit=performance.now(),s.start??(s.start=this._previousSplit),a.domManager.setDeferring(!0),i){case Ct.FULL:if(this.checkUpdateShortcut(Ct.FULL))break;this.ctx.updateService.dispatchPreDomUpdate(),this.updateDOM();case Ct.UPDATE_DATA:if(this.checkUpdateShortcut(Ct.UPDATE_DATA))break;this.updateData(),this.updateSplits("⬇️");case Ct.PROCESS_DATA:if(this.checkUpdateShortcut(Ct.PROCESS_DATA))break;if(await this.processData(),this.seriesAreaManager.dataChanged(),this.pendingLocaleText){const l=this.modulesManager.getModule("locale");l&&"localeText"in l&&(l.localeText=this.pendingLocaleText),this.pendingLocaleText=void 0}this.updateSplits("📊");case Ct.PROCESS_DOMAIN:if(this.checkUpdateShortcut(Ct.PROCESS_DOMAIN))break;await this.processDomains(),this.updateSplits("⛰️");case Ct.PROCESS_RANGE:if(this.checkUpdateShortcut(Ct.PROCESS_RANGE))break;this.processRanges(),this.updateSplits("📐");case Ct.PERFORM_LAYOUT:if(await this.checkFirstAutoSize(),this.checkUpdateShortcut(Ct.PERFORM_LAYOUT))break;await this.processLayout(),this.updateSplits("⌖");case Ct.PRE_SERIES_UPDATE:if(this.checkUpdateShortcut(Ct.PRE_SERIES_UPDATE))break;this.preSeriesUpdate(),this.updateSplits("❓");case Ct.SERIES_UPDATE:{if(this.checkUpdateShortcut(Ct.SERIES_UPDATE))break;this.seriesRoot.renderToOffscreenCanvas=this.highlight.drawingMode==="cutout",await this.updateSeries(o),this.updateAriaLabels(),this.seriesLayerManager.updateLayerCompositing(),this.updateSplits("🤔")}case Ct.PRE_SCENE_RENDER:if(this.checkUpdateShortcut(Ct.PRE_SCENE_RENDER))break;a.updateService.dispatchPreSceneRender(this.apiUpdate),a.scene.updateBaseFont(),this.updateSplits("↖");case Ct.SCENE_RENDER:if(this.checkUpdateShortcut(Ct.SCENE_RENDER))break;a.animationManager.endBatch(),n.updateShortcutCount=this.updateShortcutCount,a.scene.render({debugSplitTimes:s,extraDebugStats:n,seriesRect:this.seriesRect,debugColors:Gt.check("scene:stats","scene:stats:verbose")?this.getDebugColors():void 0}),this.extraDebugStats={};for(const l of Object.keys(s))delete s[l];this.ctx.domManager.incrementDataCounter("sceneRenders");case Ct.NONE:this.updateShortcutCount=0,this.updateRequestors={},this.currentProcessingUpdateType=Ct.NONE,this._performUpdateSkipAnimations=!1,a.animationManager.endBatch()}this.destroyed||(a.updateService.dispatchUpdateComplete(this.apiUpdate,this.updateShortcutCount>0),this.apiUpdate=!1,this.ctx.domManager.setDataBoolean("updatePending",!1),this.runningUpdateType=Ct.NONE,this.syncStatus="ready"),this._performUpdateNotify.notify(),a.domManager.setDeferring(!1);const r=performance.now();this.debug("Chart.performUpdate() - end",{chart:this,durationMs:_b(r-s.start),count:e,performUpdateType:Ct[i]})}updateThemeClassName(){const e="ag-charts-theme-",i=[`${e}default`,`${e}default-dark`];let n=i[0],s=!1,{theme:a}=this.chartOptions.processedOptions;for(;typeof a!="string"&&a!=null;)a=a.baseTheme;typeof a=="string"&&(n=a.replace("ag-",e),s=a.includes("-dark")),i.includes(n)||(n=s?i[1]:i[0]),this.ctx.domManager.setThemeClass(n)}updateDOM(){this.updateThemeClassName();const{enabled:e,tabIndex:i}=this.keyboard;this.ctx.domManager.setTabGuardIndex(e?i??0:-1),this.ctx.domManager.setThemeParameters(this.chartOptions.themeParameters)}updateAriaLabels(){this.ctx.domManager.updateCanvasLabel(this.getAriaLabel())}checkUpdateShortcut(e){return this.destroyed?!0:this.updateShortcutCount>3?(pt.warn("exceeded the maximum number of simultaneous updates (4), discarding changes and rendering",this.updateRequestors),!1):this.performUpdateType<=e?(this.debug("Chart.checkUpdateShortcut() - BLOCKED AT: ",Ct[e]," BY REQUEST FOR: ",Ct[this.performUpdateType]),this.updateShortcutCount++,!0):(this.debug("Chart.checkUpdateShortcut() - PROCEEDING TO: ",Ct[e]),this.currentProcessingUpdateType=e,!1)}async checkFirstAutoSize(){this.width!=null&&this.height!=null||this._lastAutoSize||await this._autoSizeNotify.waitForCompletion(500)||this.debug("Chart.checkFirstAutoSize() - timeout for first size update.")}createChartAxes(){return new zD}onAxisChange(e,i){i==null&&e.length===0||this.ctx.axisManager.updateAxes(i??[],e)}onSeriesChange(e,i){const n=i?.filter(s=>!e.includes(s))??[];this.destroySeries(n),this.seriesLayerManager?.setSeriesCount(e.length);for(const s of e){if(i?.includes(s))continue;const a=this.seriesLayerManager.requestGroup(s);s.attachSeries(a,this.seriesRoot,this.annotationRoot),s.chart={},Object.defineProperty(s.chart,"mode",{get:()=>this.mode}),Object.defineProperty(s.chart,"isMiniChart",{get:()=>!1}),Object.defineProperty(s.chart,"flashOnUpdateEnabled",{get:()=>!!this.modulesManager.getModule("flashOnUpdate")?.enabled}),Object.defineProperty(s.chart,"seriesRect",{get:()=>this.seriesRect}),s.resetAnimation(this.chartAnimationPhase),this.addSeriesListeners(s)}this.seriesAreaManager?.seriesChanged(e)}destroySeries(e){if(e)for(const i of e)i.removeEventListener("seriesNodeClick",this.onSeriesNodeClick),i.removeEventListener("seriesNodeDoubleClick",this.onSeriesNodeDoubleClick),i.removeEventListener("groupingChanged",this.seriesGroupingChanged),i.destroy(),this.seriesLayerManager.releaseGroup(i),i.detachSeries(void 0,this.seriesRoot,this.annotationRoot),i.chart=void 0}addSeriesListeners(e){this.hasEventListener("seriesNodeClick")&&e.addEventListener("seriesNodeClick",this.onSeriesNodeClick),this.hasEventListener("seriesNodeDoubleClick")&&e.addEventListener("seriesNodeDoubleClick",this.onSeriesNodeDoubleClick),this.hasEventListener("seriesVisibilityChange")&&e.addEventListener("seriesVisibilityChange",this.onSeriesVisibilityChange),e.addEventListener("groupingChanged",this.seriesGroupingChanged)}assignSeriesToAxes(){for(const e of this.axes){let i=function(n){return n.axes[e.direction]===e};e.boundSeries=this.series.filter(i)}}assignAxesToSeries(){for(const e of this.series)for(const i of e.directions){const n=e.getKeyAxis(i)??i,s=this.axes.findById(n);if(!s){pt.warnOnce(`no matching axis for direction [${i}] and id [${n}]; check series and axes configuration.`);return}e.axes[i]=s}}parentResize(e){if(e==null||this.width!=null&&this.height!=null)return;let{width:i,height:n}=e;const{pixelRatio:s}=e;if(i=Math.floor(i),n=Math.floor(n),i===0&&n===0)return;const[a=0,o=0,r=1]=this._lastAutoSize??[];a===i&&o===n&&r===s||(this._lastAutoSize=[i,n,s],this.resize("SizeMonitor",{}))}resize(e,i){const{scene:n,animationManager:s}=this.ctx,{inWidth:a,inHeight:o,inMinWidth:r,inMinHeight:l,inOverrideDevicePixelRatio:c}=i;this.ctx.domManager.setSizeOptions(r??this.minWidth,l??this.minHeight,a??this.width,o??this.height);const u=a??this.width??this._lastAutoSize?.[0],d=o??this.height??this._lastAutoSize?.[1],g=c??this.overrideDevicePixelRatio??this._lastAutoSize?.[2];if(this.debug(`Chart.resize() from ${e}`,{width:u,height:d,pixelRatio:g,stack:new Error("Stack trace for resize tracking").stack}),!(u==null||d==null||!Ae(u)||!Ae(d))&&n.resize(u,d,g)){s.reset();let f=!0;(this.width==null||this.height==null)&&this._firstAutoSize&&(f=!1,this._firstAutoSize=!1);let y=Ct.PERFORM_LAYOUT;for(const x of this.axes){const S=x.getUpdateTypeOnResize();Sn.canHaveAxes)&&(this.assignAxesToSeries(),this.assignSeriesToAxes());const e=new l3(this.mode,this.suppressFieldDotNotation,this.ctx.eventsHub),i=[];for(const n of this.series)i.push(n.processData(e)??Promise.resolve());for(const n of this.modulesManager.modules())n?.processData&&i.push(n.processData(e)??Promise.resolve());this._cachedData=e.execute(this._cachedData),this.updateSplits("🏭"),await Promise.all(i),this.updateLegends()}async processDomains(){for(const e of this.axes)e.processData();for(const e of this.series)e.updatedDomains()}processRanges(){var e;const i={},n={},s=new Map;this._requiredRangeDirection=z.X;for(const a of this.series)a.visible&&(i[e=a.type]??(i[e]=[]),a.getMinimumRangeSeries(i[a.type]),a.resolveKeyDirection(z.X)===z.Y&&(this._requiredRangeDirection=z.Y),s.has(a.type)||s.set(a.type,a));for(const[a,o]of s)n[a]=o.getMinimumRangeChart(i[a]);Object.keys(n).length===0?this._requiredRange=0:this._requiredRange=Math.ceil(Math.max(...Object.values(n)));for(const a of this.axes)a.requiredRange=this._requiredRange}updateLegends(e){for(const i of Ut.listModulesByType(Le.Plugin))switch(i.name){case"legend":this.setCategoryLegendData(e);break;case"gradientLegend":const n=this.modulesManager.getModule("gradientLegend");n.data=this.series.filter(s=>s.properties.showInLegend).flatMap(s=>s.getLegendData("gradient"));break}}setCategoryLegendData(e){const{legendManager:i,stateManager:n}=this.ctx;if(e)for(const a of this.series){const o=e.find(r=>r.seriesId===a.id);a.onLegendInitialState("category",o)}const s=this.series.flatMap(a=>{const o=a.getLegendData("category");return i.updateData(a.id,o),o});if(e){n.setStateAndRestore(i,e);return}if(this.mode!=="integrated"){const a={},o=new Map(this.series.map(r=>[r.id,r]));for(const{seriesId:r,symbol:{marker:l},label:c}of s.filter(u=>!u.hideInLegend)){if(l.fill==null)continue;const u=o.get(r);if(!u?.hasData)continue;const d=u.type,g=a[d]??(a[d]=new Map);g.has(c.text)?g.get(c.text)!==l.fill&&pt.warnOnce(`legend item '${ce(c.text)}' has multiple fill colours, this may cause unexpected behaviour.`):g.set(c.text,l.fill)}}i.update()}async processLayout(){const e=this.animationRect,{width:i,height:n}=this.ctx.scene,s=this.ctx.layoutManager.createContext(i,n);await this.performLayout(s),e&&!this.animationRect?.equals(e)&&this.ctx.animationManager.skipCurrentBatch(),this.debug("Chart.performUpdate() - seriesRect",this.seriesRect)}getDebugColors(){const e=this.background.fill;if(e)try{const i=se.fromString(e),[n]=se.RGBtoOKLCH(i.r,i.g,i.b);return{background:e,foreground:n>.5?"black":"white"}}catch{return{background:e}}}preSeriesUpdate(){const{_requiredRange:e,seriesRect:i}=this;if(i==null)return;const n=this._requiredRangeDirection===z.X?i.width:i.height,s=e/n||0;this.ctx.updateService.dispatchPreSeriesUpdate(s,this._requiredRangeDirection,e)}async updateSeries(e){const{seriesRect:i}=this;function n(s){return s.update({seriesRect:i})}await Promise.all(e.map(n).filter(s=>s!=null)),this.ctx.seriesLabelLayoutManager.updateLabels(this.series.filter(s=>s.visible&&s.usesPlacedLabels),this.padding,this.seriesRect)}async waitForUpdate(e,i){const n=Ml("agChartsDebugTimeout");n==null?(e??(e=1e4),i??(i=!1)):(e=n,i??(i=!0));const s=performance.now();for(;(this._pendingFactoryUpdatesCount>0||this.performUpdateType!==Ct.NONE||this.runningUpdateType!==Ct.NONE||this.ctx.scene.waitingForUpdate()||this.data.hasPendingTransactions())&&!this.destroyed;){if(this._pendingFactoryUpdatesCount>0&&await this.updateMutex.waitForClearAcquireQueue(),(this.performUpdateType!==Ct.NONE||this.runningUpdateType!==Ct.NONE||this.data.hasPendingTransactions())&&await this._performUpdateNotify.waitForCompletion(),performance.now()-s>e){const a=`Chart.waitForUpdate() timeout of ${e} reached - first chart update taking too long.`;if(i)throw new Error(a);pt.warnOnce(a)}a4()&&await oN(),this.ctx.scene.waitingForUpdate()&&await oN(50)}}filterMiniChartSeries(e){return e?.filter(i=>i.showInMiniChart!==!1)}applyOptions(e){e.seriesWithUserVisibility&&this.refreshSeriesUserVisibility(this.chartOptions,e.seriesWithUserVisibility);const i=Ct.PERFORM_LAYOUT,n=this.firstApply?e.processedOptions:e.diffOptions(this.chartOptions);if(n==null||Object.keys(n).length===0){jo("Chart.applyOptions() - no delta, forcing re-layout",n),this.update(i,{apiUpdate:!0,newAnimationBatch:!0});return}const s=this.firstApply?{}:this.chartOptions.processedOptions,a=e.processedOptions;jo("Chart.applyOptions() - applying delta",n);const o=this.applyModules(),r=["type","data","series","listeners","preset","theme","legend.listeners","navigator.miniChart.series","navigator.miniChart.label","locale.localeText","axes","topology","nodes","initialState","styleContainer","formatter","displayNullData","enableRtl"];"listeners"in n&&this.registerListeners(this,n.listeners),"enableRtl"in n&&this.ctx.domManager.setEnableRtl(n.enableRtl),fb(this,n,{skip:r});let l=!1,c="no-op";n.series!=null&&(c=this.applySeries(this,n.series,s?.series),l=!0),c==="replaced"&&this.resetAnimations(),this.applyAxes(this,a,s,c,[])&&(l=!0);const{userDeltaKeys:u}=e,d=u===void 0||u.has("data");let g=!1;if(n.data&&d){const A=n.data,I=e.userOptions.data,N=Array.isArray(A)&&A!==I?A.slice():A;this.data=this.createDataSet(N),g=!0}if("dataIdKey"in n&&!(n.data&&d)&&this.data.dataIdKey!==this.dataIdKey&&(this.data=this.createDataSet(this.data.data),g=!0),c==="replaced"&&!g&&(this.data=this.createDataSet(this.data.data)),"legend"in n&&n.legend&&"listeners"in n.legend&&this.modulesManager.isEnabled("legend")){const A=n.legend.listeners;A?Object.assign(this.legend.listeners,A):this.legend.listeners.clear()}n.locale?.localeText&&(this.pendingLocaleText=n.locale?.localeText),this.chartOptions=e;const f=this.modulesManager.getModule("navigator");this.hasViewportSupport()||this.ctx.zoomManager.updateZoom({source:"chart-update",sourceDetail:"internal-applyOptions"},{x:{min:0,max:1}});const y=f?.miniChart,x=a.navigator?.miniChart?.series??a.series;y?.enabled===!0&&x!=null?this.applyMiniChartOptions(y,x,a,s):y?.enabled===!1&&(y.series=[],y.axes=[]),this.ctx.annotationManager.setAnnotationStyles(e.annotationThemes),l||(l=this.shouldForceNodeDataRefresh(n,c));const D=l||o?Ct.FULL:i;if(this.maybeResetAnimations(c),this.shouldClearLegendData(a,s,c)&&this.ctx.legendManager.clearData(),this.applyInitialState(a),this.ctx.formatManager.setFormatter(a.formatter),jo("Chart.applyOptions() - update type",Ct[D],{seriesStatus:c,forceNodeDataRefresh:l}),e.optionsProcessingTime!==void 0){this._performUpdateSplits["⚙️"]=e.optionsProcessingTime;const A=performance.now()-e.optionsProcessingTime;this._performUpdateSplits.start=A}this.update(D,{apiUpdate:!0,forceNodeDataRefresh:l,newAnimationBatch:!0,clearCallbackCache:!0}),this.firstApply=!1}applyInitialState(e){const{activeManager:i,annotationManager:n,chartTypeOriginator:s,historyManager:a,stateManager:o,zoomManager:r}=this.ctx,{initialState:l}=e;if("annotations"in e&&e.annotations?.enabled&&l?.annotations!=null){const c=l.annotations.map(u=>{const d=n.getAnnotationTypeStyles(u.type);return Et(u,d)});o.setState(n,c)}l?.chartType!=null&&o.setState(s,l.chartType),this.needsViewportSupport(e)&&l?.zoom!=null&&o.setState(r,l.zoom),l?.active!=null&&o.setState(i,l.active),l?.legend!=null&&this.updateLegends(l.legend),l!=null&&a.clear()}maybeResetAnimations(e){if(this.mode==="standalone")switch(e){case"series-grouping-change":case"replaced":this.resetAnimations();break}}shouldForceNodeDataRefresh(e,i){const n=!!e.data||i==="data-change"||i==="replaced",s=["legend","gradientLegend"].some(o=>e[o]!=null),a=e.title!=null&&e.subtitle!=null||e.formatter!=null;return n||s||a}shouldClearLegendData(e,i,n){const s=n==="replaced"||n==="series-count-changed"||n==="series-grouping-change"||n==="updated"&&(e.series?.length!==i.series?.length||!e.series?.every((o,r)=>o.type===i.series?.[r].type)),a=i.legend!=null&&i.legend.enabled!==!1&&(e.legend==null||e.legend.enabled===!1);return s||a}applyMiniChartOptions(e,i,n,s){const a=s?.navigator?.miniChart?.series??s?.series,o=this.applySeries(e,this.filterMiniChartSeries(i),this.filterMiniChartSeries(a));this.applyAxes(e,n,s,o,["tick","thickness","title","crosshair","gridLine","label"]);const r=e.series;for(const u of r)u.properties.id=void 0;const l=e.axes,c=l.find(u=>u.direction===z.X);for(const u of l)u.nice=!1,u.gridLine.enabled=!1,u.label.enabled=u===c,u.tick.enabled=!1,u.interactionEnabled=!1;if(c!=null){const u=n.navigator?.miniChart,d=u?.label,g=u?.label?.interval;if(c.line.enabled=!1,c.label.set(At(d,["interval","autoRotate","autoRotateAngle","itemStyler","minSpacing","rotation"])),c.type==="grouped-category"){c.label.enabled=!1,c.label.rotation=0;const{depthOptions:f}=c;if(f.length===0)f.set([{label:{enabled:!0}}]);else for(let y=1;ythis.createSeries(g));return this.initSeriesDeclarationOrder(d),e.series=d,"replaced"}jo("Chart.applySeries() - matchResult",s);const a=[];let o=!1,r=!1,l=!1,c=!1;const u=s.changes.toSorted((d,g)=>d.targetIdx-g.targetIdx);for(const d of u)switch(r||(r=d.status==="series-grouping"),o||(o=d.diff?.data!=null),l||(l=d.status!=="no-op"),c||(c=d.status==="add"||d.status==="remove"),d.status){case"add":{const g=this.createSeries(d.opts);a.push(g),jo("Chart.applySeries() - created new series",g);break}case"remove":jo(`Chart.applySeries() - removing series at previous idx ${d.idx}`,d.series);break;case"no-op":a.push(d.series),jo(`Chart.applySeries() - no change to series at previous idx ${d.idx}`,d.series);break;default:{const{series:g,diff:f,idx:y}=d;jo(`Chart.applySeries() - applying series diff previous idx ${y}`,f,g),this.applySeriesValues(g,f),g.markNodeDataDirty(),a.push(g)}}return this.initSeriesDeclarationOrder(a),jo("Chart.applySeries() - final series instances",a),e.series=a,r?"series-grouping-change":c?"series-count-changed":o?"data-change":l?"updated":"no-op"}applyAxes(e,i,n,s,a=[]){if(!("axes"in i)||!i.axes)return!1;a=["type",...a];const o=i.axes;if(!(s==="replaced")&&e.axes.matches(o)&&rJ(n)){for(const c of e.axes){const u=n.axes?.[c.id]??{},d=or(u,o[c.id]);jo(`Chart.applyAxes() - applying axis diff idx ${c.id}`,d),fb(c,d,{skip:a})}return!0}return jo(`Chart.applyAxes() - creating new axes instances; seriesStatus: ${s}`),e.axes=this.createAxes(o,a),!0}createSeries(e){const n=Ut.getSeriesModule(e.type).create(this.getModuleContext());return this.applySeriesOptionModules(n,e),this.applySeriesValues(n,e),n}applySeriesOptionModules(e,i){const n=e.createModuleContext(),s=e.getModuleMap();for(const a of Ut.listModulesByType(Le.SeriesPlugin))a.name in i&&(a.seriesTypes?.includes(e.type)??!0)&&s.addModule(a.name,a.create(n))}applySeriesValues(e,i){const n=e.getModuleMap(),{type:s,data:a,listeners:o,seriesGrouping:r,showInMiniChart:l,...c}=i;for(const u of Ut.listModulesByType(Le.SeriesPlugin))if(u.name in c){const d=n.getModule(u.name);if(d){const g=c[u.name];d.properties.set(g),delete c[u.name]}}c.visible!=null&&(e.visible=c.visible),e.properties.set(c),"data"in i&&e.setOptionsData(a==null?void 0:Sb.wrap(a)),"listeners"in i&&(this.registerListeners(e,o),this.series.includes(e)&&this.addSeriesListeners(e)),"seriesGrouping"in i&&(r==null?e.seriesGrouping=void 0:e.seriesGrouping={...e.seriesGrouping,...r})}createAxes(e,i){const n=this.createChartAxes(),s=this.getModuleContext();for(const[a,o]of Xe(e)){const r=Ut.getAxisModule(o.type).create(s);r.id=a,this.applyAxisModules(r,o),fb(r,o,{skip:i}),n.push(r)}return sJ(n),n}applyAxisModules(e,i){const n=e.createModuleContext(),s=e.getModuleMap();for(const a of Ut.listModulesByType(Le.AxisPlugin)){const o=i[a.name]!=null;o!==s.isEnabled(a.name)&&(o?(s.addModule(a.name,a.create(n)),e[a.name]=s.getModule(a.name)):(s.removeModule(a.name),delete e[a.name]))}}registerListeners(e,i){if(e.clearEventListeners(),i&&typeof i=="object")for(const[n,s]of Xe(i))s!=null&&e.addEventListener(n,s)}async applyTransaction(e){await this.updateMutex.acquire(()=>{this.data.addTransaction(e),this.update(Ct.UPDATE_DATA,{apiUpdate:!0,skipAnimations:!0})}),await this.waitForUpdate()}onSyncActiveClear(){this.seriesAreaManager.onActiveClear()}needsViewportSupport(e){return!!e.navigator?.enabled||!!e.zoom?.enabled||!!e.scrollbar?.enabled}hasViewportSupport(){return this.needsViewportSupport({navigator:this.modulesManager.getModule("navigator"),zoom:this.modulesManager.getModule("zoom"),scrollbar:this.modulesManager.getModule("scrollbar")})}hasPgUpPgDownSupport(){return!0}};vi.className="Chart";vi.chartsInstances=new WeakMap;T([Pe({newValue(t){this.destroyed||(this.ctx.domManager.setContainer(t),vi.chartsInstances.set(t,this))},oldValue(t){vi.chartsInstances.delete(t)}})],vi.prototype,"container",2);T([Pe({newValue(t){this.resize("width option",{inWidth:t})}})],vi.prototype,"width",2);T([Pe({newValue(t){this.resize("height option",{inHeight:t})}})],vi.prototype,"height",2);T([Pe({newValue(t){this.resize("minWidth option",{inMinWidth:t})}})],vi.prototype,"minWidth",2);T([Pe({newValue(t){this.resize("minHeight option",{inMinHeight:t})}})],vi.prototype,"minHeight",2);T([Pe({newValue(t){this.resize("overrideDevicePixelRatio option",{inOverrideDevicePixelRatio:t})}})],vi.prototype,"overrideDevicePixelRatio",2);T([b],vi.prototype,"padding",2);T([b],vi.prototype,"keyboard",2);T([b],vi.prototype,"touch",2);T([b],vi.prototype,"mode",2);T([b],vi.prototype,"withinStudio",2);T([b],vi.prototype,"styleNonce",2);T([qi("chartCaptions.title")],vi.prototype,"title",2);T([qi("chartCaptions.subtitle")],vi.prototype,"subtitle",2);T([qi("chartCaptions.footnote")],vi.prototype,"footnote",2);T([b],vi.prototype,"formatter",2);T([b],vi.prototype,"suppressFieldDotNotation",2);T([b],vi.prototype,"loadGoogleFonts",2);T([b],vi.prototype,"dataIdKey",2);T([Pe({changeValue(t,e){this.onAxisChange(t,e)}})],vi.prototype,"axes",2);T([Pe({changeValue(t,e){this.onSeriesChange(t,e)}})],vi.prototype,"series",2);var QD=vi;function R3(t){return t?.up||t?.down||t?.neutral?"user-full":t?.fills||t?.strokes?"user-indexed":"inbuilt"}var un={BLUE:"#5090dc",ORANGE:"#ffa03a",GREEN:"#459d55",CYAN:"#34bfe1",YELLOW:"#e1cc00",VIOLET:"#9669cb",GRAY:"#b5b5b5",MAGENTA:"#bd5aa7",BROWN:"#8a6224",RED:"#ef5452"},pc={BLUE:"#2b5c95",ORANGE:"#cc6f10",GREEN:"#1e652e",CYAN:"#18859e",YELLOW:"#a69400",VIOLET:"#603c88",GRAY:"#575757",MAGENTA:"#7d2f6d",BROWN:"#4f3508",RED:"#a82529"},EC="white",ZJ={"radial-gauge":!0,"linear-gauge":!0};function Eg(t){return{$some:[{$and:[{$or:[{$isSeriesType:"line"},{$isSeriesType:"scatter"},{$isSeriesType:"area"},{$isSeriesType:"radar"},{$isSeriesType:"rangeArea"}]},{$isUserOption:[`/series/$index/${t}`,{$lessThan:[{$path:`/series/$index/${t}`},1]},!1]}]},{$path:"/series"}]}}function qJ(t){return ZJ[t]===!0}var so=class Gg{static getDefaultColors(){return{fills:un,fillsFallback:Object.values(un),strokes:pc,sequentialColors:So(un),divergingColors:[un.ORANGE,un.YELLOW,un.GREEN],hierarchyColors:["#fff","#e0e5ea","#c1ccd5","#a3b4c1","#859cad"],secondSequentialColors:se.interpolate([se.fromHexString(un.BLUE),se.fromHexString("#cbdef5")],8).map(e=>e.toString()),secondDivergingColors:[un.GREEN,un.YELLOW,un.RED],secondHierarchyColors:["#fff","#c5cbd1","#a4b1bd","#8498a9","#648096"],up:{fill:un.GREEN,stroke:pc.GREEN},down:{fill:un.RED,stroke:pc.RED},neutral:{fill:un.GRAY,stroke:pc.GRAY},altUp:{fill:un.BLUE,stroke:pc.BLUE},altDown:{fill:un.ORANGE,stroke:pc.ORANGE},altNeutral:{fill:un.GRAY,stroke:pc.GRAY}}}static getDefaultPublicParameters(){return{accentColor:"#2196f3",axisColor:{$foregroundBackgroundMix:.325},backgroundColor:EC,borderColor:{$foregroundOpacity:.15},borderRadius:4,chartBackgroundColor:{$ref:"backgroundColor"},chartPadding:20,focusShadow:"0 0 0 3px var(--ag-charts-accent-color)",foregroundColor:"#181d1f",fontFamily:"Verdana, sans-serif",fontSize:Wh,fontWeight:400,gridLineColor:{$foregroundBackgroundMix:.1},popupShadow:"0 0 16px rgba(0, 0, 0, 0.15)",subtleTextColor:{$mix:[{$ref:"textColor"},{$ref:"chartBackgroundColor"},.38]},textColor:{$ref:"foregroundColor"},chromeBackgroundColor:{$foregroundBackgroundMix:.02},chromeFontFamily:{$ref:"fontFamily"},chromeFontSize:{$ref:"fontSize"},chromeFontWeight:{$ref:"fontWeight"},chromeTextColor:{$ref:"foregroundColor"},chromeSubtleTextColor:{$mix:[{$ref:"chromeTextColor"},{$ref:"backgroundColor"},.38]},buttonBackgroundColor:{$ref:"backgroundColor"},buttonBorder:!0,buttonFontWeight:400,buttonTextColor:{$ref:"textColor"},inputBackgroundColor:{$ref:"backgroundColor"},inputBorder:!0,inputTextColor:{$ref:"textColor"},menuBackgroundColor:{$ref:"chromeBackgroundColor"},menuBorder:!0,menuTextColor:{$ref:"chromeTextColor"},panelBackgroundColor:{$ref:"chromeBackgroundColor"},panelSubtleTextColor:{$ref:"chromeSubtleTextColor"},tooltipBackgroundColor:{$ref:"chromeBackgroundColor"},tooltipBorder:!0,tooltipTextColor:{$ref:"chromeTextColor"},tooltipSubtleTextColor:{$ref:"chromeSubtleTextColor"},crosshairLabelBackgroundColor:{$ref:"foregroundColor"},crosshairLabelTextColor:{$ref:"chartBackgroundColor"},separationLinesColor:{$foregroundBackgroundMix:.17}}}static getPrivateParameters(){return{focusColor:{$mix:[{$ref:"backgroundColor"},{$ref:"accentColor"},.12]}}}static getAxisDefaults({title:e,time:i},n){return Et(n,e&&{title:{enabled:!1,text:"Axis Title",spacing:25,fontWeight:{$ref:"fontWeight"},fontSize:{$rem:Cn.MEDIUM},fontFamily:{$ref:"fontFamily"},color:{$ref:"textColor"}}},i&&{parentLevel:{enabled:!1,label:{enabled:{$path:"../../label/enabled"},border:{enabled:{$or:[{$isUserOption:["../border",!0,!1]},{$path:"../../../label/border/enabled"}]},strokeWidth:{$path:"../../../label/border/strokeWidth"},stroke:{$path:"../../../label/border/stroke"}},fill:{$path:"../../label/fill"},fontSize:{$path:"../../label/fontSize"},fontFamily:{$path:"../../label/fontFamily"},fontWeight:"bold",spacing:{$path:"../../label/spacing"},color:{$path:"../../label/color"},cornerRadius:{$path:"../../label/cornerRadius"},padding:{$path:"../../label/padding"},avoidCollisions:{$path:"../../label/avoidCollisions"}},tick:{enabled:{$path:"../../tick/enabled"},width:{$path:"../../tick/width"},size:{$path:"../../tick/size"},stroke:{$path:"../../tick/stroke"}}}},{label:{enabled:!0,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},spacing:11,color:{$ref:"textColor"},avoidCollisions:!0,cornerRadius:4,border:{enabled:!1,strokeWidth:1,stroke:{$foregroundOpacity:.08}},padding:{$if:[{$path:"./border/enabled"},{left:12,right:12,top:8,bottom:8},5]}},line:{enabled:!0,width:1,stroke:{$ref:"axisColor"}},tick:{enabled:!1,size:6,width:1,stroke:{$ref:"axisColor"}},gridLine:{enabled:!0,width:1,style:{$apply:[{fillOpacity:1,stroke:{$ref:"gridLineColor"},strokeWidth:{$path:"../../width"},lineDash:[]},[{fillOpacity:1,stroke:{$ref:"gridLineColor"},strokeWidth:{$path:"../../width"},lineDash:[]}]]}},crossLines:{$apply:[{enabled:!0,fill:{$ref:"foregroundColor"},stroke:{$ref:"foregroundColor"},fillOpacity:.08,strokeWidth:1,label:{fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},padding:{$if:[{$path:"./border/enabled"},{left:12,right:12,top:8,bottom:8},5]},color:{$ref:"textColor"},cornerRadius:4,border:{enabled:!1,stroke:{$foregroundOpacity:.08},strokeOpacity:1,strokeWidth:1}}},void 0,{$pathString:["/common/axes/$axisType/crossLines",{axisType:{$path:["../type"]}}]},{$pathString:["/$seriesType/axes/$axisType/crossLines",{seriesType:{$path:["/series/0/type","line"]},axisType:{$path:["../type"]}}]}]}})}getChartDefaults(){return{minHeight:300,minWidth:300,background:{visible:!0,fill:{$ref:"chartBackgroundColor"}},padding:{top:{$ref:"chartPadding"},right:{$ref:"chartPadding"},bottom:{$ref:"chartPadding"},left:{$ref:"chartPadding"}},seriesArea:{border:{enabled:!1,stroke:{$ref:"foregroundColor"},strokeOpacity:1,strokeWidth:1},cornerRadius:4,padding:{$if:[{$path:"./border/enabled"},5,0]}},keyboard:{enabled:!0},title:{enabled:!1,text:"Title",spacing:{$if:[{$path:"../subtitle/enabled"},10,20]},fontWeight:{$ref:"fontWeight"},fontSize:{$rem:Cn.LARGEST},fontFamily:{$ref:"fontFamily"},color:{$ref:"textColor"},wrapping:"hyphenate",layoutStyle:qh,textAlign:Qh},subtitle:{enabled:!1,text:"Subtitle",spacing:20,fontWeight:{$ref:"fontWeight"},fontSize:{$rem:Cn.MEDIUM},fontFamily:{$ref:"fontFamily"},color:{$ref:"subtleTextColor"},wrapping:"hyphenate",layoutStyle:qh,textAlign:Qh},footnote:{enabled:!1,text:"Footnote",spacing:20,fontSize:{$rem:Cn.MEDIUM},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"subtleTextColor"},wrapping:"hyphenate",layoutStyle:qh,textAlign:Qh},highlight:{enabled:!0,drawingMode:{$if:[{$or:[Eg("highlight/highlightedItem/opacity"),Eg("highlight/unhighlightedItem/opacity"),Eg("highlight/highlightedSeries/opacity"),Eg("highlight/unhighlightedSeries/opacity"),Eg("fillOpacity"),Eg("marker/fillOpacity")]},"overlap","cutout"]}},tooltip:{enabled:!0,darkTheme:Qd,delay:0,pagination:!1,mode:{$if:[{$or:[{$and:[{$isChartType:"cartesian"},{$not:{$hasSeriesType:"bubble"}},{$not:{$hasSeriesType:"scatter"}},{$greaterThan:[{$size:{$path:"/series"}},1]},{$lessThan:[{$size:{$path:"/series"}},4]}]},{$and:[{$isChartType:"polar"},{$greaterThan:[{$size:{$path:"/series"}},1]},{$lessThan:[{$size:{$path:"/series"}},4]}]}]},"shared","single"]}},overlays:{darkTheme:Qd},listeners:{},series:{tooltip:{range:{$if:[{$eq:[{$path:["/tooltip/range","exact"]},"area"]},"exact",{$path:["/tooltip/range","exact"]}]},position:{anchorTo:{$path:["/tooltip/position/anchorTo","pointer"]},placement:{$path:["/tooltip/position/placement",void 0]},xOffset:{$path:["/tooltip/position/xOffset",0]},yOffset:{$path:["/tooltip/position/yOffset",0]}}}}}}constructor(e={}){const{overrides:i,palette:n,params:s}=le(e),a=this.createChartConfigPerChartType(this.getDefaults()),o={};i&&this.processOverrides(o,i);const{fills:r,strokes:l,sequentialColors:c,...u}=this.getDefaultColors();this.palette=za(Et(n,{fills:Object.values(r),strokes:Object.values(l),sequentialColors:Object.values(c),...u})),this.paletteType=R3(n),this.params=Et(s,this.getThemeParameters()),this.config=za(le(a)),this.overrides=za(i),this.presets=za(o)}processOverrides(e,i){for(const n of Ut.listModulesByType(Le.Series)){const s=n.name,a=i[s];qJ(s)&&(e[s]=a,delete i[s])}}createChartConfigPerChartType(e){var i;for(const n of Ut.listModulesByType(Le.Chart))for(const s of Ut.listModulesByType(Le.Series))s.chartType===n.name&&(e[i=s.name]??(e[i]=n.themeTemplate));return e}getDefaults(){const e=(s,a)=>{const o={},r=Et({axes:{}},...Array.from(Ut.listModulesByType(Le.Plugin),l=>({[l.name]:l.themeTemplate})),Ut.getChartModule(s)?.themeTemplate,this.getChartDefaults());for(const l of a){o[l]=Et(JJ(l),o[l]??r);const{axes:c}=o[l];for(const u of Ut.listModulesByType(Le.Axis))c[u.name]=Et(c[u.name],!u.chartType||u.chartType===s?QJ(u.name):null,Gg.axisDefault[u.name]);(l==="map-shape-background"||l==="map-line-background")&&delete o[l].series.tooltip}return o},i=[...Ut.listModulesByType(Le.Series)],n=px(i,s=>s.chartType||"unknown");return Et(...Object.keys(n).map(s=>e(s,n[s]?.map(a=>a.name)??[])))}static applyTemplateTheme(e,i,n){if(qt(e))for(let s=0;so.enterprise?"enterprise":"community");if(n.length){const o=Ut.isEnterprise()||a.enterprise?.length?"enterprise":"community";pt.errorOnce(["required modules are not registered. Check if you have registered the modules:","",Ut.isUmd()?"Install and register 'ag-charts-enterprise' before creating the chart.":stt(n.map(itt),o),"",`See ${s} for more details.`].join(` +`))}}function itt(t){return t.moduleId??t.name}function P3(t){return` ${t},`}function ntt(t,e){return t.length?`import { +${t.map(P3).join(` +`)} +} from 'ag-charts-${e}';`:null}function stt(t,e){const i=ntt(["ModuleRegistry"].concat(t),e),n=t.map(P3).join(` +`);return`${i} + +ModuleRegistry.registerModules([ +${n} +]);`}function att(t,e){const i=new Map,n="axes"in e&&Bt(e.axes)?e.axes:{},s=new Set(Object.values(n).map(r=>r?.type).filter(go)),a=new Set(e.series?.map(r=>r.type).filter(go));function o(r){i.set(r.name,r)}for(const r of iu.values())if(!Ut.hasModule(r.name)&&!ttt.has(r.name)&&!(t&&r.chartType&&t!==r.chartType))switch(r.type){case"chart":break;case"axis":if(s.has(r.name)){for(const u of Object.keys(n))n?.[u].type===r.name&&delete n[u];o(r)}break;case"series":a.has(r.name)&&(e.series=e.series.filter(u=>u.type!==r.name),o(r));break;case"plugin":const l=r.name,c=e[l];Bt(c)&&(c.enabled!==!1&&o(r),delete e[l]);break;case"axis:plugin":for(const u of Object.values(n)){const d=r.name;u?.[d]&&(u[d].enabled!==!1&&o(r),delete u[d])}break;case"series:plugin":for(const u of e.series??[])u[r.name]&&(delete u[r.name],o(r));break}for(const r of a){const l=iu.get(r);l?.type===Le.Series&&!Ut.hasModule(l.name)&&!i.has(l.name)&&(e.series=e.series.filter(c=>c.type!==l.name),o(l))}return Array.from(i.values())}function jB(t,e){const i="axes"in e&&Bt(e.axes),n="series"in e&&qt(e.series),s=o=>t==null||!o.chartType||o.chartType===t,a=[];for(const o of Ut.listModules())if(Ut.isModuleType(Le.Plugin,o))s(o)||(delete e[o.name],a.push(o.name));else if(Ut.isModuleType(Le.AxisPlugin,o)){if(i&&!s(o)){for(const r of Object.values(e.axes))delete r[o.name];a.push(o.name)}}else if(Ut.isModuleType(Le.SeriesPlugin,o)&&n&&!s(o)){for(const r of e.series)delete r[o.name];a.push(o.name)}return a}var RC="#192232",us={BLUE:"#5090dc",ORANGE:"#ffa03a",GREEN:"#459d55",CYAN:"#34bfe1",YELLOW:"#e1cc00",VIOLET:"#9669cb",GRAY:"#b5b5b5",MAGENTA:"#bd5aa7",BROWN:"#8a6224",RED:"#ef5452"},vd={BLUE:"#74a8e6",ORANGE:"#ffbe70",GREEN:"#6cb176",CYAN:"#75d4ef",YELLOW:"#f6e559",VIOLET:"#aa86d8",GRAY:"#a1a1a1",MAGENTA:"#ce7ab9",BROWN:"#997b52",RED:"#ff7872"},sm=class extends Pr{getDefaultColors(){return{fills:us,fillsFallback:Object.values(us),strokes:vd,sequentialColors:So(us),divergingColors:[us.ORANGE,us.YELLOW,us.GREEN],hierarchyColors:["#192834","#253746","#324859","#3f596c","#4d6a80"],secondSequentialColors:["#5090dc","#4882c6","#4073b0","#38659a","#305684","#28486e","#203a58","#182b42"],secondDivergingColors:[us.GREEN,us.YELLOW,us.RED],secondHierarchyColors:["#192834","#3b5164","#496275","#577287","#668399"],up:{fill:us.GREEN,stroke:vd.GREEN},down:{fill:us.RED,stroke:vd.RED},neutral:{fill:us.GRAY,stroke:vd.GRAY},altUp:{fill:us.BLUE,stroke:vd.BLUE},altDown:{fill:us.ORANGE,stroke:vd.ORANGE},altNeutral:{fill:us.GRAY,stroke:vd.GRAY}}}getThemeParameters(){return{...super.getThemeParameters(),axisColor:{$foregroundBackgroundMix:.737},backgroundColor:RC,borderColor:{$foregroundBackgroundMix:.216},chromeBackgroundColor:{$foregroundBackgroundMix:.07},focusColor:{$mix:[{$ref:"backgroundColor"},{$ref:"accentColor"},.22]},foregroundColor:"#fff",gridLineColor:{$foregroundBackgroundMix:.257},popupShadow:"0 0 16px rgba(0, 0, 0, 0.33)",subtleTextColor:{$mix:[{$ref:"textColor"},{$ref:"chartBackgroundColor"},.57]},separationLinesColor:{$foregroundBackgroundMix:.44},crosshairLabelBackgroundColor:{$foregroundBackgroundMix:.65}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(Qd,!0),t.set(xD,RC),t.set(ra,us.BLUE),t.set(SD,"#fff"),t.set(Ws,us.BLUE),t.set(vx,RC),t.set(Sx,"#28313e"),t.set(Mx,"#4b525d"),t.set(Dx,"#fff"),t.set(Ax,"#fff"),t.set(Ix,"#28313e"),t.set(kx,"#4b525d"),t.set(Cx,"#fff"),t}constructor(t){super(t)}},va={GREEN:"#089981",RED:"#F23645",BLUE:"#5090dc",GRAY:"#A9A9A9"},Sd={GREEN:"#089981",RED:"#F23645",BLUE:"#5090dc",GRAY:"#909090"},ott=class extends sm{getDefaultColors(){return{...super.getDefaultColors(),fills:{...va},fillsFallback:Object.values({...va}),strokes:{...Sd},sequentialColors:So(va),divergingColors:[va.GREEN,va.BLUE,va.RED],secondSequentialColors:["#5090dc","#4882c6","#4073b0","#38659a","#305684","#28486e","#203a58","#182b42"],up:{fill:va.GREEN,stroke:Sd.GREEN},down:{fill:va.RED,stroke:Sd.RED},neutral:{fill:va.BLUE,stroke:Sd.BLUE},altUp:{fill:va.GREEN,stroke:Sd.GREEN},altDown:{fill:va.RED,stroke:Sd.RED},altNeutral:{fill:va.GRAY,stroke:Sd.GRAY}}}getThemeParameters(){return{...super.getThemeParameters(),chartPadding:0,gridLineColor:{$foregroundBackgroundMix:.12}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,va.BLUE),t.set(Ws,va.BLUE),t.set(qh,"overlay"),t.set(Qh,"left"),t.set(wx,"bottom"),t}},Sa={GREEN:"#089981",RED:"#F23645",BLUE:"#5090dc",GRAY:"#A9A9A9"},Md={GREEN:"#089981",RED:"#F23645",BLUE:"#5090dc",GRAY:"#909090"},rtt=class extends Pr{getDefaultColors(){return{...super.getDefaultColors(),fills:{...Sa},fillsFallback:Object.values({...Sa}),strokes:{...Md},sequentialColors:So(Sa),divergingColors:[Sa.GREEN,Sa.BLUE,Sa.RED],up:{fill:Sa.GREEN,stroke:Md.GREEN},down:{fill:Sa.RED,stroke:Md.RED},neutral:{fill:Sa.BLUE,stroke:Md.BLUE},altUp:{fill:Sa.GREEN,stroke:Md.GREEN},altDown:{fill:Sa.RED,stroke:Md.RED},altNeutral:{fill:Sa.GRAY,stroke:Md.GRAY}}}getThemeParameters(){return{...super.getThemeParameters(),chartPadding:0,gridLineColor:{$foregroundBackgroundMix:.06}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,Sa.BLUE),t.set(Ws,Sa.BLUE),t.set(qh,"overlay"),t.set(Qh,"left"),t.set(wx,"bottom"),t}},ds={BLUE:"#2196F3",ORANGE:"#FF9800",GREEN:"#4CAF50",CYAN:"#00BCD4",YELLOW:"#FFEB3B",VIOLET:"#7E57C2",GRAY:"#9E9E9E",MAGENTA:"#F06292",BROWN:"#795548",RED:"#F44336"},Dd={BLUE:"#90CAF9",ORANGE:"#FFCC80",GREEN:"#A5D6A7",CYAN:"#80DEEA",YELLOW:"#FFF9C4",VIOLET:"#B39DDB",GRAY:"#E0E0E0",MAGENTA:"#F48FB1",BROWN:"#A1887F",RED:"#EF9A9A"},ltt=class extends sm{getDefaultColors(){return{...super.getDefaultColors(),fills:ds,fillsFallback:Object.values(ds),strokes:Dd,sequentialColors:So(ds),divergingColors:[ds.ORANGE,ds.YELLOW,ds.GREEN],secondSequentialColors:["#2196f3","#208FEC","#1E88E5","#1C7FDC","#1976d2","#176EC9","#1565c0"],secondDivergingColors:[ds.GREEN,ds.YELLOW,ds.RED],up:{fill:ds.GREEN,stroke:Dd.GREEN},down:{fill:ds.RED,stroke:Dd.RED},neutral:{fill:ds.GRAY,stroke:Dd.GRAY},altUp:{fill:ds.BLUE,stroke:Dd.BLUE},altDown:{fill:ds.RED,stroke:Dd.RED},altNeutral:{fill:ds.GRAY,stroke:Dd.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,ds.BLUE),t.set(Ws,ds.BLUE),t}},ps={BLUE:"#2196F3",ORANGE:"#FF9800",GREEN:"#4CAF50",CYAN:"#00BCD4",YELLOW:"#FFEB3B",VIOLET:"#7E57C2",GRAY:"#9E9E9E",MAGENTA:"#F06292",BROWN:"#795548",RED:"#F44336"},Ad={BLUE:"#1565C0",ORANGE:"#E65100",GREEN:"#2E7D32",CYAN:"#00838F",YELLOW:"#F9A825",VIOLET:"#4527A0",GRAY:"#616161",MAGENTA:"#C2185B",BROWN:"#4E342E",RED:"#B71C1C"},ctt=class extends Pr{getDefaultColors(){return{...super.getDefaultColors(),fills:ps,fillsFallback:Object.values(ps),strokes:Ad,sequentialColors:So(ps),divergingColors:[ps.ORANGE,ps.YELLOW,ps.GREEN],secondSequentialColors:["#2196f3","#329EF4","#42a5f5","#53ADF6","#64b5f6","#7AC0F8","#90caf9"],secondDivergingColors:[ps.GREEN,ps.YELLOW,ps.RED],up:{fill:ps.GREEN,stroke:Ad.GREEN},down:{fill:ps.RED,stroke:Ad.RED},neutral:{fill:ps.GRAY,stroke:Ad.GRAY},altUp:{fill:ps.BLUE,stroke:Ad.BLUE},altDown:{fill:ps.RED,stroke:Ad.RED},altNeutral:{fill:ps.GRAY,stroke:Ad.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,ps.BLUE),t.set(Ws,ps.BLUE),t}},Gi={BLUE:"#436ff4",PURPLE:"#9a7bff",MAGENTA:"#d165d2",PINK:"#f0598b",RED:"#f47348",ORANGE:"#f2a602",YELLOW:"#e9e201",GREEN:"#21b448",CYAN:"#00b9a2",MODERATE_BLUE:"#00aee4",GRAY:"#bbbbbb"},Id={BLUE:"#6698ff",PURPLE:"#c0a3ff",MAGENTA:"#fc8dfc",PINK:"#ff82b1",RED:"#ff9b70",ORANGE:"#ffcf4e",YELLOW:"#ffff58",GREEN:"#58dd70",CYAN:"#51e2c9",MODERATE_BLUE:"#4fd7ff",GRAY:"#eeeeee"},htt=class extends sm{getDefaultColors(){return{fills:Gi,fillsFallback:Object.values(Gi),strokes:Id,sequentialColors:So(Gi),divergingColors:[Gi.BLUE,Gi.RED],hierarchyColors:[],secondSequentialColors:[Gi.BLUE,Gi.PURPLE,Gi.MAGENTA,Gi.PINK,Gi.RED,Gi.ORANGE,Gi.YELLOW,Gi.GREEN],secondDivergingColors:[Gi.BLUE,Gi.RED],secondHierarchyColors:[],up:{fill:Gi.GREEN,stroke:Id.GREEN},down:{fill:Gi.RED,stroke:Id.RED},neutral:{fill:Gi.GRAY,stroke:Id.GRAY},altUp:{fill:Gi.BLUE,stroke:Id.BLUE},altDown:{fill:Gi.RED,stroke:Id.RED},altNeutral:{fill:Gi.GRAY,stroke:Id.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,Gi.BLUE),t.set(Ws,Gi.BLUE),t}},Ui={BLUE:"#436ff4",PURPLE:"#9a7bff",MAGENTA:"#d165d2",PINK:"#f0598b",RED:"#f47348",ORANGE:"#f2a602",YELLOW:"#e9e201",GREEN:"#21b448",CYAN:"#00b9a2",MODERATE_BLUE:"#00aee4",GRAY:"#bbbbbb"},kd={BLUE:"#2346c9",PURPLE:"#7653d4",MAGENTA:"#a73da9",PINK:"#c32d66",RED:"#c84b1c",ORANGE:"#c87f00",YELLOW:"#c1b900",GREEN:"#008c1c",CYAN:"#00927c",MODERATE_BLUE:"#0087bb",GRAY:"#888888"},utt=class extends Pr{getDefaultColors(){return{...super.getDefaultColors(),fills:Ui,fillsFallback:Object.values(Ui),strokes:kd,sequentialColors:So(Ui),divergingColors:[Ui.BLUE,Ui.RED],hierarchyColors:[],secondSequentialColors:[Ui.BLUE,Ui.PURPLE,Ui.MAGENTA,Ui.PINK,Ui.RED,Ui.ORANGE,Ui.YELLOW,Ui.GREEN],secondDivergingColors:[Ui.BLUE,Ui.RED],secondHierarchyColors:[],up:{fill:Ui.GREEN,stroke:kd.GREEN},down:{fill:Ui.RED,stroke:kd.RED},neutral:{fill:Ui.GRAY,stroke:kd.GRAY},altUp:{fill:Ui.BLUE,stroke:kd.BLUE},altDown:{fill:Ui.RED,stroke:kd.RED},altNeutral:{fill:Ui.GRAY,stroke:kd.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,Ui.BLUE),t.set(Ws,Ui.BLUE),t}},In={BLUE:"#4472C4",ORANGE:"#ED7D31",GRAY:"#A5A5A5",YELLOW:"#FFC000",MODERATE_BLUE:"#5B9BD5",GREEN:"#70AD47",DARK_GRAY:"#7B7B7B",DARK_BLUE:"#264478",VERY_DARK_GRAY:"#636363",DARK_YELLOW:"#997300"},Oh={BLUE:"#6899ee",ORANGE:"#ffa55d",GRAY:"#cdcdcd",YELLOW:"#ffea53",MODERATE_BLUE:"#82c3ff",GREEN:"#96d56f",DARK_GRAY:"#a1a1a1",DARK_BLUE:"#47689f",VERY_DARK_GRAY:"#878787",DARK_YELLOW:"#c0993d"},dtt=class extends sm{getDefaultColors(){return{...super.getDefaultColors(),fills:{...In,RED:In.ORANGE},fillsFallback:Object.values({...In,RED:In.ORANGE}),strokes:{...Oh,RED:Oh.ORANGE},sequentialColors:So({...In,RED:In.ORANGE}),divergingColors:[In.ORANGE,In.YELLOW,In.GREEN],secondSequentialColors:["#5090dc","#4882c6","#4073b0","#38659a","#305684","#28486e","#203a58","#182b42"],secondDivergingColors:[In.GREEN,In.YELLOW,In.ORANGE],up:{fill:In.GREEN,stroke:Oh.GREEN},down:{fill:In.ORANGE,stroke:Oh.ORANGE},neutral:{fill:In.GRAY,stroke:Oh.GRAY},altUp:{fill:In.BLUE,stroke:Oh.BLUE},altDown:{fill:In.ORANGE,stroke:Oh.ORANGE},altNeutral:{fill:In.GRAY,stroke:Oh.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,In.BLUE),t.set(Ws,In.BLUE),t}},Vn={BLUE:"#5281d5",ORANGE:"#ff8d44",GRAY:"#b5b5b5",YELLOW:"#ffd02f",MODERATE_BLUE:"#6aabe6",GREEN:"#7fbd57",DARK_GRAY:"#8a8a8a",DARK_BLUE:"#335287",VERY_DARK_GRAY:"#717171",DARK_YELLOW:"#a98220"},hc={BLUE:"#214d9b",ORANGE:"#c25600",GRAY:"#7f7f7f",YELLOW:"#d59800",MODERATE_BLUE:"#3575ac",GREEN:"#4b861a",DARK_GRAY:"#575757",DARK_BLUE:"#062253",VERY_DARK_GRAY:"#414141",DARK_YELLOW:"#734f00"},ptt=class extends Pr{getDefaultColors(){return{...super.getDefaultColors(),fills:{...Vn,RED:Vn.ORANGE},fillsFallback:Object.values({...Vn,RED:Vn.ORANGE}),strokes:{...hc,RED:hc.ORANGE},sequentialColors:So({...Vn,RED:Vn.ORANGE}),divergingColors:[Vn.ORANGE,Vn.YELLOW,Vn.GREEN],secondSequentialColors:["#5090dc","#629be0","#73a6e3","#85b1e7","#96bcea","#a8c8ee","#b9d3f1","#cbdef5"],secondDivergingColors:[Vn.GREEN,Vn.YELLOW,Vn.ORANGE],secondHierarchyColors:[],up:{fill:Vn.GREEN,stroke:hc.GREEN},down:{fill:Vn.ORANGE,stroke:hc.ORANGE},neutral:{fill:hc.GRAY,stroke:hc.GRAY},altUp:{fill:Vn.BLUE,stroke:hc.BLUE},altDown:{fill:Vn.ORANGE,stroke:hc.ORANGE},altNeutral:{fill:Vn.GRAY,stroke:hc.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,Vn.BLUE),t.set(Ws,Vn.BLUE),t}},Rf={enabled:J,text:K,padding:Ar,border:Zd,cornerRadius:gt,...De,...wt},Dc=xe({enabled:J,type:ht(dt("line","range")),range:Me(xe((t,{options:e})=>e.type==="range","crossLine type to be 'range'"),Ft(jt),Tu(2,2)),value:Me(xe((t,{options:e})=>e.type==="line","crossLine type to be 'line'"),jt),label:Rf,fill:It,fillOpacity:Ot,...bt,...Lt},"cross-line options"),z3={...Dc,label:{...Rf,position:dt("top","left","right","bottom","top-left","top-right","bottom-left","bottom-right","inside","inside-left","inside-right","inside-top","inside-bottom","inside-top-left","inside-bottom-left","inside-top-right","inside-bottom-right"),rotation:gt}},ju={enabled:J,rotation:gt,avoidCollisions:J,minSpacing:X,spacing:X,formatter:Is(xo),itemStyler:Be({...De,...qo,spacing:gt}),...De,...qo},JD={autoRotate:J,autoRotateAngle:gt,wrapping:dt("never","always","hyphenate","on-space"),truncate:J,...ju},B3={format:_r,...JD},tA={format:Xt(K,Nu),...JD},V3={enabled:J,width:X,size:X,stroke:It},eL={enabled:J,label:tA,tick:V3},_3={values:Ft(jt),minSpacing:X},am={reverse:J,gridLine:{enabled:J,width:X,style:Xi({fill:It,fillOpacity:X,stroke:Xt(It,Fb),strokeWidth:X,lineDash:Ft(X)},"a grid-line style object array")},interval:_3,label:ju,line:{enabled:J,width:X,stroke:It},tick:V3,context:()=>!0};am.layoutConstraints=Mt({stacked:ht(J),align:ht(dt("start","end")),unit:ht(dt("percent","px")),width:ht(X)});var iL={enabled:J,text:xo,spacing:X,maxWidth:X,maxHeight:X,wrapping:dt("never","always","hyphenate","on-space"),truncate:J,formatter:Is(xo),...De},Gu={...am,title:iL,crossAt:{value:ht(Xt(gt,_s,K,Ft(K))),sticky:J},crossLines:Xi(z3,"a cross-line options array"),position:dt("top","right","bottom","left"),thickness:X,maxThicknessRatio:Ot};Gu.title._enabledFromTheme=Mt(J);var eA={enabled:J,...wt,...bt,...Lt};function Tp(t,e){const i={enabled:J,xOffset:gt,yOffset:gt,formatter:Is(K),renderer:Is(Xt(K,Pi({text:K,color:It,backgroundColor:It,opacity:Ot},"crosshair label renderer result object")))};let n;return t&&(n={...i,format:e?Xt(K,Pi({millisecond:K,second:K,hour:K,day:K,month:K,year:K})):K}),{enabled:J,snap:J,label:n??i,...bt,...Lt}}function Yx(t,e){return{min:Me(t,Fs("max")),max:Me(t,Hs("min")),preferredMin:Me(t,Fs("preferredMax"),Fs("max")),preferredMax:Me(t,Hs("preferredMin"),Hs("min")),nice:J,interval:{step:e?Xt(bo,vp,jf):bo,values:Ft(t),minSpacing:Me(X,Fs("maxSpacing")),maxSpacing:Me(X,Hs("minSpacing"))}}}var F3={step:Xt(bo,vp,jf),values:Ft(Xt(gt,_s)),minSpacing:Me(X,Fs("maxSpacing")),maxSpacing:Me(X,Hs("minSpacing")),placement:dt("on","between")},Ug={...Gu,type:Jt("category"),label:JD,paddingInner:Ot,paddingOuter:Ot,groupPaddingInner:Ot,crosshair:Tp(),bandAlignment:dt("justify","start","center","end"),bandHighlight:eA,interval:{..._3,placement:dt("on","between")},skipNullBars:J},Wg={...Gu,type:Jt("grouped-category"),label:JD,crosshair:Tp(),bandHighlight:eA,paddingInner:Ot,groupPaddingInner:Ot,depthOptions:Xi({label:{enabled:J,avoidCollisions:J,wrapping:dt("never","always","hyphenate","on-space"),truncate:J,rotation:gt,spacing:gt,...De,...qo},tick:{enabled:J,stroke:It,width:X}},"depth options objects array")},Kg={...Gu,...Yx(gt),type:Jt("number"),label:B3,crosshair:Tp(!0)},Yg={...Gu,...Yx(gt),type:Jt("log"),base:Me(bo,xe(t=>t!==1,"not equal to 1")),label:B3,crosshair:Tp(!0)},$g={...Gu,...Yx(Xt(gt,_s),!0),type:Jt("time"),label:tA,parentLevel:eL,crosshair:Tp(!0,!0)},Xg={...Gu,type:Jt("unit-time"),unit:Xt(jf,vp),label:tA,parentLevel:eL,paddingInner:Ot,paddingOuter:Ot,groupPaddingInner:Ot,crosshair:Tp(!0,!0),bandAlignment:dt("justify","start","center","end"),bandHighlight:eA,skipNullBars:J,min:Me(Xt(gt,_s),Fs("max")),max:Me(Xt(gt,_s),Hs("min")),preferredMin:Me(Xt(gt,_s),Fs("preferredMax"),Fs("max")),preferredMax:Me(Xt(gt,_s),Hs("preferredMin"),Hs("min")),interval:F3},Zg={...Gu,type:Jt("ordinal-time"),paddingInner:Ot,paddingOuter:Ot,groupPaddingInner:Ot,label:tA,parentLevel:eL,interval:F3,crosshair:Tp(!0,!0),bandHighlight:eA,bandAlignment:dt("justify","start","center","end"),skipNullBars:J},H3={...am,...Yx(gt),type:Jt("angle-number"),crossLines:Xi(Dc),startAngle:gt,endAngle:gt,label:{...ju,orientation:dt("fixed","parallel","perpendicular"),format:_r}},nL={...am,type:Jt("angle-category"),shape:dt("polygon","circle"),crossLines:Xi(Dc),startAngle:gt,endAngle:gt,paddingInner:Ot,groupPaddingInner:Ot,label:{...ju,orientation:dt("fixed","parallel","perpendicular")}};nL.innerRadiusRatio=Ot;var j3={...am,...Yx(gt),type:Jt("radius-number"),shape:dt("polygon","circle"),positionAngle:gt,innerRadiusRatio:Ot,title:iL,crossLines:Xi({...Dc,label:{...Rf,positionAngle:gt}},"cross-line options"),label:{...ju,format:_r}},G3={...am,type:Jt("radius-category"),positionAngle:gt,innerRadiusRatio:Ot,paddingInner:Ot,paddingOuter:Ot,groupPaddingInner:Ot,label:ju,title:iL,crossLines:Xi({...Dc,label:{...Rf,positionAngle:gt}},"cross-line options")},U3=Zi(Si,Si),gtt=Be({...bt,...wt,...Lt,marker:Lu}),W3={showInMiniChart:J,connectMissingData:J,interpolation:cD,label:ei,styler:gtt,marker:Lr,tooltip:_4,shadow:Nl,...Ee,...wt,...bt,...Lt,highlight:U3,segmentation:Pc},sL={...W3,..._e,highlight:U3,type:ht(Jt("area")),xKey:ht(K),yKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,legendItemName:K,stacked:J,stackGroup:K,normalizedTo:gt};sL.selectedKey=Mt(K);var K3=Zi(Tr,Tr),GB=Be({...wt,...bt,...Lt,cornerRadius:X}),aL={direction:dt("horizontal","vertical"),showInMiniChart:J,cornerRadius:X,styler:GB,itemStyler:GB,crisp:J,label:{...ei,placement:dt("inside-center","inside-start","inside-end","outside-start","outside-end"),spacing:X},errorBar:mx,shadow:Nl,tooltip:Re,...Ee,highlight:K3,...wt,...bt,...Lt,segmentation:Pc,width:bo,widthRatio:Ot};aL.sparklineMode=Mt(J);var om={...aL,..._e,highlight:K3,type:ht(Jt("bar")),xKey:ht(K),yKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,direction:dt("horizontal","vertical"),grouped:J,stacked:J,stackGroup:K,normalizedTo:gt,legendItemName:K,errorBar:lD};om.yFilterKey=Mt(K);om.pickOutsideVisibleMinorAxis=Mt(J);om.focusPriority=Mt(gt);om.simpleItemStyler=Mt(ai);var Y3={title:K,domain:Ft(gt),maxSize:X,showInMiniChart:J,label:{placement:dt("top","right","bottom","left"),...ei},tooltip:Re,styler:Be({...Lr,maxSize:X}),maxRenderedItems:gt,...Ee,...At(Lr,["enabled"]),highlight:Zi(Si,Si)},$3={...Y3,..._e,type:ht(Jt("bubble")),xKey:ht(K),yKey:ht(K),sizeKey:ht(K),labelKey:K,xName:K,yName:K,sizeName:K,labelName:K,legendItemName:K,xKeyAxis:K,yKeyAxis:K,highlight:Zi(Si,Si)};$3.selectedKey=Mt(K);var X3={showInMiniChart:J,cornerRadius:X,label:ei,tooltip:Re,shadow:Nl,...Ee,...wt,...bt,...Lt,highlight:Zi(Si,Si),areaPlot:J,aggregation:dt("count","sum","mean"),bins:Ft(Ft(gt)),binCount:X},ftt={..._e,...X3,type:ht(Jt("histogram")),xKey:ht(K),yKey:K,xKeyAxis:K,yKeyAxis:K,xName:K,yName:K},Z3=Zi(Si,bu),mtt=Be({...bt,...Lt,marker:Lu}),oL={title:K,showInMiniChart:J,connectMissingData:J,interpolation:cD,label:ei,styler:mtt,marker:Lr,tooltip:Re,errorBar:mx,...Ee,...bt,...Lt,highlight:Z3,segmentation:O4};oL.sparklineMode=Mt(J);var $x={...oL,..._e,highlight:Z3,type:ht(Jt("line")),xKey:ht(K),yKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,stacked:J,stackGroup:K,normalizedTo:gt,legendItemName:K,errorBar:lD};$x.selectedKey=Mt(K);$x.pickOutsideVisibleMinorAxis=Mt(J);$x.focusPriority=Mt(gt);var q3={title:K,showInMiniChart:J,label:{placement:dt("top","right","bottom","left"),...ei},tooltip:Re,errorBar:mx,styler:Be(Lr),maxRenderedItems:gt,...Ee,...At(Lr,["enabled"]),highlight:Zi(Si,Si)},Q3={...q3,..._e,type:ht(Jt("scatter")),xKey:ht(K),yKey:ht(K),labelKey:K,xName:K,yName:K,labelName:K,legendItemName:K,xKeyAxis:K,yKeyAxis:K,errorBar:lD,highlight:Zi(Si,Si)};Q3.selectedKey=Mt(K);var J3=Zi(Si,Si),rL={...Ee,radiusMin:X,radiusMax:X,rotation:gt,outerRadiusOffset:gt,outerRadiusRatio:Ot,hideZeroValueSectorsInLegend:J,sectorSpacing:X,cornerRadius:X,itemStyler:Be({...wt,...bt,...Lt,cornerRadius:X}),title:{enabled:J,text:K,showInLegend:J,spacing:X,...De},calloutLabel:{enabled:J,offset:gt,minAngle:X,avoidCollisions:J,formatter:Is(xo),format:K,itemStyler:Be({enabled:J,...qo,...De}),...qo,...De},sectorLabel:{enabled:J,positionOffset:gt,positionRatio:Ot,formatter:Is(xo),format:K,itemStyler:Be({enabled:J,...qo,...De}),...qo,...De},calloutLine:{colors:Ft(It),length:X,strokeWidth:X,itemStyler:Be({color:It,length:X,strokeWidth:X})},fills:Ft(Ga),strokes:Ft(It),tooltip:Re,shadow:Nl,highlight:J3,...Lt,...At(wt,["fill"]),...At(bt,["stroke"])},Rl={...rL,..._e,type:ht(Jt("pie")),angleKey:ht(K),radiusKey:K,calloutLabelKey:K,sectorLabelKey:K,legendItemKey:K,angleName:K,radiusName:K,calloutLabelName:K,sectorLabelName:K,highlight:J3};Rl.angleFilterKey=Mt(K);Rl.defaultColorRange=Mt(Ft(Ft(It)));Rl.defaultPatternFills=Mt(Ft(It));Rl.title._enabledFromTheme=Mt(J);Rl.calloutLabel._enabledFromTheme=Mt(J);Rl.sectorLabel._enabledFromTheme=Mt(J);Rl.angleKeyAxis=Mt(K);Rl.radiusKeyAxis=Mt(K);var tU={...rL,innerRadiusOffset:gt,innerRadiusRatio:Ot,innerCircle:{fill:K,fillOpacity:Ot},innerLabels:{spacing:X,...De,...qo}},eU={...tU,...Rl,type:ht(Jt("donut")),innerLabels:Xi({text:ht(K),spacing:X,...De,...qo},"inner label options array")};eU.angleFilterKey=Mt(K);var rm={lineStyle:dt("solid","dashed","dotted"),...Lt},Lp={...wt,...bt,...Lt},Xx={visible:J,locked:J,readOnly:J,handle:Lp,...De},iA={position:dt("top","center","bottom"),alignment:dt("left","center","right"),...De},iU={position:dt("top","inside","bottom"),alignment:dt("left","center","right"),...De},ytt={enabled:J,cornerRadius:X,...De,...wt,...bt,...Lt},btt={visible:J,...rm,...bt},nU={divider:bt,...wt,...bt,...De},UB={handle:Lp,statistics:nU,...rm,...wt,...bt},wM={visible:J,locked:J,readOnly:J,extendStart:J,extendEnd:J,handle:Lp,text:iA,...rm,...bt},BN={visible:J,locked:J,readOnly:J,axisLabel:ytt,handle:Lp,text:iA,...rm,...bt},sU={visible:J,locked:J,readOnly:J,extendStart:J,extendEnd:J,handle:Lp,text:iU,background:wt,...rm,...bt},aU={...sU},oU={...sU,middle:btt},VN={label:De,showFill:J,isMultiColor:J,strokes:Ft(It),rangeStroke:It,bands:dt(4,6,10),...wM},rU={...wt,...bt,...Xx},lU={...wt,...bt,...Xx},cU={...wt,...bt,...Xx,background:{...wt,...bt}},_N={visible:J,locked:J,readOnly:J,handle:Lp,...wt},YS={visible:J,locked:J,readOnly:J,extendStart:J,extendEnd:J,handle:Lp,text:iA,background:wt,statistics:nU,...rm,...bt},hU={visible:J,up:UB,down:UB},lm={enabled:J,axesButtons:{enabled:J,axes:dt("x","y","xy")},toolbar:{enabled:J,padding:X,buttons:Xi({...Zh,value:dt("line-menu","fibonacci-menu","text-menu","shape-menu","measurer-menu","line","horizontal-line","vertical-line","parallel-channel","disjoint-channel","fibonacci-retracement","fibonacci-retracement-trend-based","text","comment","callout","note","clear")},"annotation toolbar buttons array")},optionsToolbar:{enabled:J,buttons:Ft(Xt(Pi({...Zh,value:ht(dt("line-stroke-width","line-style-type","line-color","fill-color","text-color","text-size","delete","settings"))}),Pi({...Zh,value:ht(dt("lock")),checkedOverrides:Zh})))}};lm.data=Mt(wl);lm.xKey=Mt(K);lm.volumeKey=Mt(K);lm.snap=Mt(J);var sl={...wt,...bt,opacity:Ot},uU={...wt,...bt,...Lt,cornerRadius:X,whisker:{...bt,...Lt},cap:{lengthRatio:Ot}},WB={...uU,opacity:Ot},KB=Be({...wt,...bt,...Lt,cornerRadius:X,whisker:{...bt,...Lt},cap:{lengthRatio:Ot}}),dU={direction:dt("horizontal","vertical"),showInMiniChart:J,styler:KB,itemStyler:KB,tooltip:Re,...Ee,...uU,highlight:Zi(WB,WB),segmentation:Pc,width:bo,widthRatio:Ot},FN={cornerRadius:X,wick:{...bt,...Lt},...wt,...bt,...Lt},YB={...FN,opacity:Ot},pU={item:{up:FN,down:FN},itemStyler:Be({...wt,...bt,...Lt,cornerRadius:X,wick:{...bt,...Lt}}),showInMiniChart:J,tooltip:Re,...Ee,highlight:Zi(YB,YB)},gU={fills:Ft(Ga),strokes:Ft(It),label:{spacing:X,maxWidth:X,...ei},link:{tension:Ot,itemStyler:Be({...wt,...bt,...Lt,tension:Ot}),...wt,...bt,...Lt},node:{width:X,spacing:X,itemStyler:Be({...wt,...bt,...Lt}),...wt,...bt,...Lt},tooltip:Re,...Ee},fU={direction:dt("horizontal","vertical"),fills:Ft(Ga),strokes:Ft(It),label:{spacing:X,placement:dt("before","middle","after"),...ei},stageLabel:{placement:dt("before","after"),format:_r,...ju},tooltip:Re,...At(Ee,["showInLegend"]),...At(wt,["fill"]),...At(bt,["stroke"]),...Lt,highlight:T1(bu)},mU={direction:dt("horizontal","vertical"),fills:Ft(Ga),strokes:Ft(It),itemStyler:Be({...wt,...bt,...Lt}),spacingRatio:Ot,crisp:J,dropOff:{enabled:J,...wt,...bt,...Lt},stageLabel:{placement:dt("before","after"),format:_r,...ju},label:ei,tooltip:Re,shadow:Nl,...At(Ee,["showInLegend"]),...At(wt,["fill"]),...At(bt,["stroke"]),...Lt},yU={title:K,textAlign:dt("left","center","right"),verticalAlign:dt("top","middle","bottom"),itemPadding:X,itemStyler:Be({...wt,...bt}),showInMiniChart:J,label:vu,tooltip:Re,...Ee,...bt},bU={showInMiniChart:J,itemStyler:Be({...bt,...Lt}),item:{up:{...bt,...Lt},down:{...bt,...Lt}},tooltip:Re,...Ee,highlight:Zi(bu,bu)},xU={maxStrokeWidth:X,itemStyler:Be({...bt,...Lt}),sizeDomain:Ft(X),label:ei,tooltip:Re,...Ee,...bt,...Lt,highlight:Zi(bu,bu)},vU={...bt,...Lt},SU={colorRange:Ft(It),maxSize:X,sizeDomain:Ft(X),label:{placement:dt("top","bottom","left","right"),...ei},tooltip:Re,...Ee,...At(Lr,["enabled"]),highlight:Zi(Si,Si)},MU={colorRange:Ft(It),padding:X,itemStyler:Be({...wt,...bt,...Lt}),label:vu,tooltip:Re,...Ee,...wt,...bt,...Lt,highlight:Zi(Si,Si)},DU={...Ee,...wt,...bt,...Lt},Pf=Be({...wt,...bt,...Lt,cornerRadius:X}),AU={cornerRadius:X,styler:Pf,itemStyler:Pf,label:ei,tooltip:Re,...Ee,...wt,...bt,...Lt,highlight:Zi(Tr,Tr)},IU={direction:dt("horizontal","vertical"),aspectRatio:X,spacing:X,reverse:J,itemStyler:Be({...wt,...bt,...Lt}),fills:Ft(Ga),strokes:Ft(It),label:ei,stageLabel:{spacing:X,placement:dt("before","after"),...ei},tooltip:Re,shadow:Nl,...Ee,...At(wt,["fill"]),...At(bt,["stroke"]),...Lt},kU={connectMissingData:J,marker:Lr,styler:Be({marker:Lu,...wt,...bt,...Lt}),label:ei,tooltip:Re,...Ee,...wt,...bt,...Lt,highlight:Zi(Si,Si)},CU={connectMissingData:J,marker:Lr,styler:Be({marker:Lu,...bt,...Lt}),label:ei,tooltip:Re,...Ee,...bt,...Lt,highlight:Zi(Si,bu)},wU={cornerRadius:X,styler:Pf,itemStyler:Pf,label:ei,tooltip:Re,...Ee,...wt,...bt,...Lt,highlight:Zi(Tr,Tr)},NU={cornerRadius:X,columnWidthRatio:Ot,maxColumnWidthRatio:Ot,styler:Pf,itemStyler:Pf,label:ei,tooltip:Re,...Ee,...wt,...bt,...Lt,highlight:Zi(Tr,Tr)},xtt={marker:Lr,...bt,...Lt},$B={marker:{enabled:J,...Lu},...bt,...Lt},XB={marker:Lu,...bt,...Lt},TU={showInMiniChart:J,connectMissingData:J,interpolation:cD,label:{...ei,placement:dt("inside","outside"),spacing:X},tooltip:Re,shadow:Nl,...Ee,...wt,...xtt,item:{low:{...$B},high:{...$B}},styler:Be({...wt,item:{low:{...XB},high:{...XB}}}),highlight:Zi(Si,Si),segmentation:Pc,invertedStyle:{enabled:J,...wt}},ZB=Be({...wt,...bt,...Lt,cornerRadius:X}),LU={direction:dt("horizontal","vertical"),grouped:J,showInMiniChart:J,cornerRadius:X,styler:ZB,itemStyler:ZB,label:{...ei,placement:dt("inside","outside"),spacing:X},tooltip:Re,shadow:Nl,...Ee,...wt,...bt,...Lt,highlight:Zi(Tr,Tr),segmentation:Pc,width:bo,widthRatio:Ot},OU={fills:Ft(Ga),strokes:Ft(It),label:{...ei,spacing:X,placement:dt("left","right","center"),edgePlacement:dt("inside","outside")},link:{itemStyler:Be({...wt,...bt,...Lt}),...wt,...bt,...Lt},node:{width:X,spacing:X,minSpacing:Me(X,b4("spacing")),alignment:dt("left","center","right","justify"),verticalAlignment:dt("top","bottom","center"),sort:dt("data","ascending","descending","auto"),itemStyler:Be({...wt,...bt,...Lt}),...wt,...bt,...Lt},tooltip:Re,...Ee},EU={fills:Ft(Ga),strokes:Ft(It),colorRange:Ft(It),sectorSpacing:X,cornerRadius:X,padding:X,itemStyler:Be({...wt,...bt}),label:{spacing:X,...vu},secondaryLabel:vu,tooltip:Re,...At(Ee,["highlight","showInLegend"]),...At(wt,["fill"]),...At(bt,["stroke"]),highlight:{highlightedItem:sl,highlightedBranch:sl,unhighlightedItem:sl,unhighlightedBranch:sl}},RU={fills:Ft(Ga),strokes:Ft(It),colorRange:Ft(It),itemStyler:Be({...wt,...bt}),group:{gap:X,padding:X,cornerRadius:X,textAlign:dt("left","center","right"),interactive:J,highlight:{highlightedItem:sl,unhighlightedItem:sl},label:{...ei,spacing:X},...wt,...bt},tile:{gap:X,padding:X,cornerRadius:X,textAlign:dt("left","center","right"),verticalAlign:dt("top","middle","bottom"),label:{...ei,spacing:X,lineHeight:X,minimumFontSize:X,wrapping:dt("never","always","hyphenate","on-space"),overflowStrategy:dt("ellipsis","hide")},secondaryLabel:{...ei,lineHeight:X,minimumFontSize:X,wrapping:dt("never","always","hyphenate","on-space"),overflowStrategy:dt("ellipsis","hide")},highlight:{highlightedItem:sl,highlightedBranch:sl,unhighlightedItem:sl,unhighlightedBranch:sl},...wt,...bt},tooltip:Re,...At(Ee,["highlight","showInLegend"])},PC={name:K,cornerRadius:X,itemStyler:Be({...wt,...bt,...Lt,cornerRadius:X}),label:{...ei,placement:dt("inside-start","inside-center","inside-end","outside-start","outside-end"),spacing:X},tooltip:Re,shadow:Nl,...wt,...bt,...Lt},PU={direction:dt("horizontal","vertical"),showInMiniChart:J,item:{positive:PC,negative:PC,total:PC},line:{enabled:J,...bt,...Lt},tooltip:Re,width:bo,widthRatio:Ot,...Ee},j0=Pi({__type:ht(Jt("date")),value:Xt(K,gt)},"a serializable date object"),qB={width:X,height:X,grip:J,fill:It,stroke:It,strokeWidth:X,cornerRadius:X},He={enabled:J,height:X,spacing:X,cornerRadius:gt,mask:{fill:It,fillOpacity:Ot,stroke:It,strokeWidth:X},minHandle:qB,maxHandle:qB,miniChart:{enabled:J,padding:{top:X,bottom:X},label:{enabled:J,avoidCollisions:J,spacing:X,format:_r,formatter:Is(xo),interval:{minSpacing:X,maxSpacing:X,values:wl,step:gt},...De},series:jt}},lL={...wt,...bt,...Lt,cornerRadius:X,opacity:Ot},zU={...lL,minSize:X,hoverStyle:{fill:wt.fill,stroke:bt.stroke}},BU={enabled:J,thickness:X,spacing:X,tickSpacing:X,visible:dt("auto","always","never"),placement:dt("outer","inner"),track:lL,thumb:zU},vtt={...BU,position:dt("top","bottom")},Stt={...BU,position:dt("left","right")},Ps={enabled:J,enableAxisScrolling:J,enableSeriesAreaScrolling:J,thickness:X,spacing:X,tickSpacing:X,visible:dt("auto","always","never"),placement:dt("outer","inner"),track:lL,thumb:zU,horizontal:vtt,vertical:Stt},Cd=At(z3,["type","value","range"]),zs={number:{...At(Kg,["type","crossLines"]),top:At(Kg,["type","crossLines","position"]),right:At(Kg,["type","crossLines","position"]),bottom:At(Kg,["type","crossLines","position"]),left:At(Kg,["type","crossLines","position"]),crossLines:Cd},log:{...At(Yg,["type","crossLines"]),top:At(Yg,["type","crossLines","position"]),right:At(Yg,["type","crossLines","position"]),bottom:At(Yg,["type","crossLines","position"]),left:At(Yg,["type","crossLines","position"]),crossLines:Cd},category:{...At(Ug,["type","crossLines"]),top:At(Ug,["type","crossLines","position"]),right:At(Ug,["type","crossLines","position"]),bottom:At(Ug,["type","crossLines","position"]),left:At(Ug,["type","crossLines","position"]),crossLines:Cd},time:{...At($g,["type","crossLines"]),top:At($g,["type","crossLines","position"]),right:At($g,["type","crossLines","position"]),bottom:At($g,["type","crossLines","position"]),left:At($g,["type","crossLines","position"]),crossLines:Cd},"unit-time":{...At(Xg,["type","crossLines"]),top:At(Xg,["type","crossLines","position"]),right:At(Xg,["type","crossLines","position"]),bottom:At(Xg,["type","crossLines","position"]),left:At(Xg,["type","crossLines","position"]),crossLines:Cd},"grouped-category":{...At(Wg,["type"]),top:At(Wg,["type","position"]),right:At(Wg,["type","position"]),bottom:At(Wg,["type","position"]),left:At(Wg,["type","position"]),crossLines:Cd},"ordinal-time":{...At(Zg,["type","crossLines"]),top:At(Zg,["type","crossLines","position"]),right:At(Zg,["type","crossLines","position"]),bottom:At(Zg,["type","crossLines","position"]),left:At(Zg,["type","crossLines","position"]),crossLines:Cd}},Rg={"angle-category":{...At(nL,["type","crossLines"]),crossLines:At(Dc,["type"])},"angle-number":{...At(H3,["type","crossLines"]),crossLines:At(Dc,["type"])},"radius-category":{...At(G3,["type","crossLines"]),crossLines:{...At(Dc,["type"]),label:{...Rf,positionAngle:gt}}},"radius-number":{...At(j3,["type","crossLines"]),crossLines:{...At(Dc,["type"]),label:{...Rf,positionAngle:gt}}}},We={visible:Mt(J)},Mtt={common:{...Zt,navigator:He,scrollbar:Ps,axes:{...zs,...Rg},annotations:{...lm,line:wM,"horizontal-line":BN,"vertical-line":BN,"disjoint-channel":aU,"parallel-channel":oU,"fibonacci-retracement":VN,"fibonacci-retracement-trend-based":VN,callout:rU,comment:lU,note:cU,text:Xx,arrow:wM,"arrow-up":_N,"arrow-down":_N,"date-range":YS,"price-range":YS,"date-price-range":YS,"quick-date-price-range":hU},chartToolbar:{enabled:J},initialState:{legend:Xi({visible:J,seriesId:K,itemId:K,legendItemName:K},"legend state array"),zoom:{rangeX:{start:Xt(gt,j0),end:Xt(gt,j0)},rangeY:{start:Xt(gt,j0),end:Xt(gt,j0)},ratioX:{start:Ot,end:Ot},ratioY:{start:Ot,end:Ot},autoScaledAxes:Ft(Jt("y"))}}},line:{...Zt,axes:zs,series:oL,navigator:He,scrollbar:Ps,...We},scatter:{...Zt,axes:zs,series:q3,navigator:He,scrollbar:Ps,...We,paired:Mt(J)},bubble:{...Zt,axes:zs,series:Y3,navigator:He,scrollbar:Ps,...We},area:{...Zt,axes:zs,series:W3,navigator:He,scrollbar:Ps,...We},bar:{...Zt,axes:zs,series:aL,navigator:He,scrollbar:Ps,...We},"box-plot":{...Zt,axes:zs,series:dU,navigator:He,scrollbar:Ps,...We},candlestick:{...Zt,axes:zs,series:pU,navigator:He,scrollbar:Ps,...We},"cone-funnel":{...Zt,axes:zs,series:fU,navigator:He,scrollbar:Ps,...We},funnel:{...Zt,axes:zs,series:mU,navigator:He,scrollbar:Ps,...We},ohlc:{...Zt,axes:zs,series:bU,navigator:He,scrollbar:Ps,...We},histogram:{...Zt,axes:At(zs,["category","grouped-category","unit-time","ordinal-time"]),series:X3,navigator:He,scrollbar:Ps,...We},heatmap:{...Zt,axes:zs,series:yU,navigator:He,scrollbar:Ps,...We},waterfall:{...Zt,axes:zs,series:PU,navigator:He,scrollbar:Ps,...We},"range-bar":{...Zt,axes:zs,series:LU,navigator:He,scrollbar:Ps,...We},"range-area":{...Zt,axes:zs,series:TU,navigator:He,scrollbar:Ps,...We},donut:{...Zt,series:tU,navigator:He,...We},pie:{...Zt,series:rL,navigator:He,...We},"radar-line":{...Zt,axes:Rg,series:CU,navigator:He,...We},"radar-area":{...Zt,axes:Rg,series:kU,navigator:He,...We},"radial-bar":{...Zt,axes:Rg,series:wU,navigator:He,...We},"radial-column":{...Zt,axes:Rg,series:NU,navigator:He,...We},nightingale:{...Zt,axes:Rg,series:AU,navigator:He,...We},sunburst:{...Zt,series:EU,navigator:He,...We},treemap:{...Zt,series:RU,navigator:He,...We},"map-shape":{...Zt,series:MU,navigator:He,...We},"map-line":{...Zt,series:xU,navigator:He,...We},"map-marker":{...Zt,series:SU,navigator:He,...We},"map-shape-background":{...Zt,series:DU,navigator:He,...We},"map-line-background":{...Zt,series:vU,navigator:He,...We},sankey:{...Zt,series:OU,navigator:He,...We},chord:{...Zt,series:gU,navigator:He,...We},pyramid:{...Zt,series:IU,navigator:He,...We},"radial-gauge":{...Zt,...hM,targets:At(dD,["value"]),tooltip:{...hM.tooltip,...Zt.tooltip}},"linear-gauge":{...Zt,...cM,targets:At(uD,["value"]),tooltip:{...cM.tooltip,...Zt.tooltip}}};function G0(t,e){const i={};for(const n of Reflect.ownKeys(t))i[n]=e(t[n],n,t);return i}var Dtt=G0(Mtt,function t(e,i){if(hb(i))return e;if(Cl(e))return Xt(e,Fb,hb);if(Bt(e))return Xt(Pi(Bb in e?G0(e,n=>Bt(n)?G0(n,t):n):G0(e,t)),Fb,hb);throw new Error(`Invalid theme override value: ${String(e)}`)}),gs={BLUE:"#0083ff",ORANGE:"#ff6600",GREEN:"#00af00",CYAN:"#00ccff",YELLOW:"#f7c700",VIOLET:"#ac26ff",GRAY:"#a7a7b7",MAGENTA:"#e800c5",BROWN:"#b54300",RED:"#ff0000"},wd={BLUE:"#67b7ff",ORANGE:"#ffc24d",GREEN:"#5cc86f",CYAN:"#54ebff",VIOLET:"#fff653",YELLOW:"#c18aff",GRAY:"#aeaeae",MAGENTA:"#f078d4",BROWN:"#ba8438",RED:"#ff726e"},Att=class extends sm{getDefaultColors(){return{fills:gs,fillsFallback:Object.values(gs),strokes:wd,sequentialColors:So(gs),divergingColors:[gs.ORANGE,gs.YELLOW,gs.GREEN],hierarchyColors:[],secondSequentialColors:["#0083ff","#0076e6","#0069cc","#005cb3","#004f99","#004280","#003466","#00274c"],secondDivergingColors:[gs.GREEN,gs.YELLOW,gs.RED],secondHierarchyColors:[],up:{fill:gs.GREEN,stroke:wd.GREEN},down:{fill:gs.RED,stroke:wd.RED},neutral:{fill:gs.GRAY,stroke:wd.GRAY},altUp:{fill:gs.BLUE,stroke:wd.BLUE},altDown:{fill:gs.ORANGE,stroke:wd.ORANGE},altNeutral:{fill:gs.GRAY,stroke:wd.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,gs.BLUE),t.set(Ws,gs.BLUE),t}},fs={BLUE:"#0083ff",ORANGE:"#ff6600",GREEN:"#00af00",CYAN:"#00ccff",YELLOW:"#f7c700",VIOLET:"#ac26ff",GRAY:"#a7a7b7",MAGENTA:"#e800c5",BROWN:"#b54300",RED:"#ff0000"},Nd={BLUE:"#0f68c0",ORANGE:"#d47100",GREEN:"#007922",CYAN:"#009ac2",VIOLET:"#bca400",YELLOW:"#753cac",GRAY:"#646464",MAGENTA:"#9b2685",BROWN:"#6c3b00",RED:"#cb0021"},Itt=class extends Pr{getDefaultColors(){return{...super.getDefaultColors(),fills:fs,fillsFallback:Object.values(fs),strokes:Nd,sequentialColors:So(fs),divergingColors:[fs.ORANGE,fs.YELLOW,fs.GREEN],hierarchyColors:[],secondSequentialColors:["#0083ff","#1a8fff","#339cff","#4da8ff","#66b5ff","#80c1ff","#99cdff","#b3daff"],secondDivergingColors:[fs.GREEN,fs.YELLOW,fs.RED],secondHierarchyColors:[],up:{fill:fs.GREEN,stroke:Nd.GREEN},down:{fill:fs.RED,stroke:Nd.RED},neutral:{fill:fs.GRAY,stroke:Nd.GRAY},altUp:{fill:fs.BLUE,stroke:Nd.BLUE},altDown:{fill:fs.ORANGE,stroke:Nd.ORANGE},altNeutral:{fill:fs.GRAY,stroke:Nd.GRAY}}}getTemplateParameters(){const t=super.getTemplateParameters();return t.set(ra,fs.BLUE),t.set(Ws,fs.BLUE),t}},HN=xs(()=>new Pr),ktt=Gt.create(!0,"perf"),Mr=(t,e,i)=>{ktt("[CACHE] ChartTheme",t,e.name,i)},cL={"ag-default-dark":xs(()=>new sm),"ag-sheets-dark":xs(()=>new dtt,Mr),"ag-polychroma-dark":xs(()=>new htt,Mr),"ag-vivid-dark":xs(()=>new Att,Mr),"ag-material-dark":xs(()=>new ltt,Mr),"ag-financial-dark":xs(()=>new ott,Mr),"ag-default":HN,"ag-sheets":xs(()=>new ptt,Mr),"ag-polychroma":xs(()=>new utt,Mr),"ag-vivid":xs(()=>new Itt,Mr),"ag-material":xs(()=>new ctt,Mr),"ag-financial":xs(()=>new rtt,Mr)},NM=xs(Ctt,Mr);function Ctt(t){if(t instanceof Pr)return t;if(!Ltt(t))return HN();if(t==null||typeof t=="string"){const s=cL[t??"ag-default"];if(s)return s();throw new Error(`Cannot find theme \`${t}\`.`)}const{cleared:e,invalid:i}=ts(wtt(t),Ntt,"theme");for(const s of i)pt.warnOnce(String(s));const n=e?.baseTheme?NM(e.baseTheme):HN();return e?new n.constructor(e):n}function wtt(t){if(!Bt(t)||!Bt(t.baseTheme))return t;let e=t,i,n;const s=[];for(;typeof e=="object";)i??(i=e.palette),n??(n=e.params),e.overrides&&s.push(e.overrides),e=e.baseTheme;return{baseTheme:e,overrides:Et(...s),params:n,palette:i}}var Ntt={baseTheme:Xt(K,Nu),overrides:Dtt,params:{accentColor:It,axisColor:It,backgroundColor:It,borderColor:It,borderRadius:gt,chartBackgroundColor:It,chartPadding:gt,focusShadow:K,foregroundColor:It,fontFamily:iM,fontSize:gt,fontWeight:ub,gridLineColor:It,popupShadow:K,subtleTextColor:It,textColor:It,separationLinesColor:It,chromeBackgroundColor:It,chromeFontFamily:iM,chromeFontSize:gt,chromeFontWeight:ub,chromeSubtleTextColor:It,chromeTextColor:It,buttonBackgroundColor:It,buttonBorder:J,buttonFontWeight:ub,buttonTextColor:It,inputBackgroundColor:It,inputBorder:J,inputTextColor:It,menuBackgroundColor:It,menuBorder:J,menuTextColor:It,panelBackgroundColor:It,panelSubtleTextColor:It,tooltipBackgroundColor:It,tooltipBorder:J,tooltipTextColor:It,tooltipSubtleTextColor:It,crosshairLabelBackgroundColor:It,crosshairLabelTextColor:It},palette:{fills:Ft(Ga),strokes:Ft(It),up:{fill:Xt(It,RS),stroke:It},down:{fill:Xt(It,RS),stroke:It},neutral:{fill:Xt(It,RS),stroke:It}}},Ttt=dt("ag-default","ag-default-dark","ag-sheets","ag-sheets-dark","ag-polychroma","ag-polychroma-dark","ag-vivid","ag-vivid-dark","ag-material","ag-material-dark","ag-financial","ag-financial-dark");function Ltt(t){const{invalid:e}=ts({theme:t},{theme:Xt(Ttt,Nu)});for(const i of e)pt.warnOnce(String(i));return e.length===0}var ki="path",Go="pathArray",yi="default",ka="override",bs="user",Eh="userPartial",Qr="operation",Jr="operationValue",Qg="dependency",zC="autoEnable",QB="autoEnableValue",JB="prune",tV="childrenSource";function hL(t){return Je(t)&&t>=0&&t<=1}function zy(t,e){let i=t;for(const n of e){if(!(typeof n=="string"&&i!=null&&(typeof i=="object"||Array.isArray(i))&&n in i))return!1;i=i[n]}return!0}function qn(t,e){let i=t;for(const n of e){if(!(typeof n=="string"&&i!=null&&(typeof i=="object"||Array.isArray(i))&&n in i))return;i=i[n]}return i}function Pg(t,e,i){const n=e.length;if(n===0)return;let s=t;const a=n-1,o=e[a];for(let r=0;r=0;n--){const s=t[n];if(Ott.test(s)&&(i++,i>e))return n}return-1}function zf(t,e=0){const i=Ett(t,e);return Number(t[i])}function Op(t,e,i){const n=e.split("/");let s=[...t];e.startsWith("/")&&(s=[],n.shift());let a=!1;for(const o of n){if(o==="..")s.pop(),a||s.pop();else if(o===".")s.pop();else if(o==="$index"){const r=zf(t);if(Number.isNaN(r))return bl;s.push(`${r}`)}else if(o==="$prevIndex"){const r=zf(t);if(Number.isNaN(r)||Number(r)<=0)return bl;s.push(`${Number(r)-1}`)}else if(o.startsWith("$")){const r=i?.[o.slice(1)];if(r==null)return bl;s.push(r)}else o.length!==0&&s.push(o);a=o===".."}return s}var bl=Symbol("unresolvable-path"),Fa=Symbol("resolved-to-branch");function Db(t,e){if(t==null||typeof t!="object"||Array.isArray(t)||(e??(e=Object.keys(t)),e.length===0))return;const i=e[0];if(_U.has(i))return{operation:i,values:Array.isArray(t[i])?t[i]:[t[i]]}}function Rtt(t,e,i){const n=Db(t.getVertexValue(i));switch(n?.operation){case"$path":{const[s]=n.values,a=t.getPathArray(e),o=Op(a,s);return o===bl?void 0:t.findVertexAtPath(o)}case"$value":return e}}var Ptt={$cacheMax:ztt};function ztt(t,e,i){const[n]=i,s=t.getPathArray(e),a=t.getCachedValue(s,"$cacheMax"),o=t.resolveVertexValue(e,n);if(typeof o!="number")return a;if(typeof a!="number")return t.setCachedValue(s,"$cacheMax",o),o;const r=Math.max(a,o);return t.setCachedValue(s,"$cacheMax",r),r}var Btt={$hasSeriesType:{dependencies:BC,resolve:Vtt},$isChartType:{dependencies:BC,resolve:Ftt},$isSeriesType:{dependencies:BC,resolve:_tt}};function BC(t,e,i){const n=t.findVertexAtPath(["series","0","type"]);n&&t.addEdge(e,n,Qg)}function Vtt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n),a=t.getResolvedPath(["series"]);if(!Array.isArray(a))return!1;for(const o of a)if(o.type===s)return!0;return!1}function _tt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);return t.getResolvedPath(["series","0","type"])===s}function Ftt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n),a=t.getResolvedPath(["series","0","type"]);if(typeof a!="string")return!1;const o=Ut.getSeriesModule(a);if(o==null)return!1;switch(s){case"cartesian":return o.chartType==="cartesian";case"polar":return o.chartType==="polar";case"standalone":return o.chartType==="standalone"}return!1}var Htt={$foregroundBackgroundMix:jtt,$foregroundOpacity:Gtt,$interpolate:Utt,$isGradient:Wtt,$isImage:Ktt,$isPattern:Ytt,$mix:$tt};function jtt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n),a=t.getParamValue("foregroundColor"),o=t.getParamValue("backgroundColor");if(typeof a=="string"&&typeof o=="string"&&hL(s))return se.mix(se.fromString(a),se.fromString(o),1-s).toString();Gt.inDevelopmentMode(()=>pt.warnOnce(`\`$foregroundBackgroundMix\` json operation failed on [${String(s)}}}] at [${t.getPathArray(e).join(".")}], expecting a number between 0 and 1.`))}function Gtt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n),a=t.getParamValue("foregroundColor");if(typeof a=="string"&&hL(s)){const o=se.fromString(a);return new se(o.r,o.g,o.b,s).toString()}Gt.inDevelopmentMode(()=>pt.warnOnce(`\`$foregroundOpacity\` json operation failed on [${String(s)}}}] at [${t.getPathArray(e).join(".")}], expecting a number between 0 and 1.`))}function Utt(t,e,i){const[n,s]=i,a=t.resolveVertexValue(e,n),o=t.resolveVertexValue(e,s);if(!(!qt(a)||!Je(o)))return se.interpolate(a.map(r=>se.fromString(r)),o).map(r=>r.toString())}function Wtt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);return an(s)}function Ktt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);return ml(s)}function Ytt(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);return ir(s)}function $tt(t,e,i){const[n,s,a]=i,o=t.resolveVertexValue(e,n),r=t.resolveVertexValue(e,s),l=t.resolveVertexValue(e,a),c=t.getPathArray(e),u=`\`$mix\` json operation failed on [${String(o)}, ${String(r)}, ${String(l)}] at [${c.join(".")}], expecting`,d=`${u} two colors and a number between 0 and 1.`;if(typeof r!="string"||!hL(l)){Gt.inDevelopmentMode(()=>pt.warnOnce(d));return}if(typeof o=="string")try{return se.mix(se.fromString(o),se.fromString(r),l).toString()}catch{Gt.inDevelopmentMode(()=>pt.warnOnce(d));return}if(!an(o)){Gt.inDevelopmentMode(()=>pt.warnOnce(d));return}let g=o.colorStops;try{g=g?.map(f=>{let y;return typeof f.color=="string"&&(y=se.mix(se.fromString(f.color),se.fromString(r),l).toString()),{...f,color:y}})}catch{Gt.inDevelopmentMode(()=>pt.warnOnce(`${u} a gradient, a color and a number between 0 and 1.`));return}return{...o,colorStops:g}}var Xtt={$rem:Ztt};function Ztt(t,e,i){const[n,s]=i,a=t.getVertexValue(n),o=s?t.getVertexValue(s):"fontSize",r=t.getParamValue(o);if(typeof r=="number"&&typeof a=="number")return Math.round(a*r);Gt.inDevelopmentMode(()=>pt.warnOnce(`\`$rem\` json operation failed on [${String(a)}] at [${t.getPathArray(e).join(".")}], expecting a number.`))}var qtt={$and:Qtt,$eq:Jtt,$every:tet,$greaterThan:eet,$if:iet,$lessThan:net,$not:set,$or:aet,$some:oet,$switch:ret};function Qtt(t,e,i){for(const n of i){const s=t.resolveVertexValue(e,n);if(i.length===1&&Array.isArray(s))return s.every(a=>!!a);if(!s)return!1}return!0}function Jtt(t,e,i){let n,s=!0;for(const a of i){const o=t.resolveVertexValue(e,a);if(s)n=o,s=!1;else if(o!==n)return!1}return!0}function tet(t,e,i){const[n,s]=i,a=t.getVertexValue(n),o=t.resolveVertexValue(e,s);if(!Array.isArray(o))return;let r=0;for(const l of o){if(!t.graftAndResolveOrphanValue(e,`${r}`,a,l))return!1;r++}return!0}function eet(t,e,i){const[n,s]=i;return t.resolveVertexValue(e,n)>t.resolveVertexValue(e,s)}function iet(t,e,i){const[n,s,a]=i,r=t.resolveVertexValue(e,n)?s:a,l=t.neighboursWithEdgeValue(r,ki);if(l)for(const c of l)t.addEdge(e,c,ki);return t.resolveVertexValue(e,r)}function net(t,e,i){const[n,s]=i;return t.resolveVertexValue(e,n)!!a);if(s)return!0}return!1}function oet(t,e,i){const[n,s]=i,a=t.getVertexValue(n),o=t.resolveVertexValue(e,s);if(!Array.isArray(o))return;let r=0;for(const l of o){if(t.graftAndResolveOrphanValue(e,`${r}`,a,l))return!0;r++}return!1}function ret(t,e,i){const[n,s,...a]=i,o=t.resolveVertexValue(e,n);for(const r of a){const l=t.getVertexValue(r);if(!Array.isArray(l))continue;const[c,u]=l;if(o===c||Array.isArray(c)&&c.includes(o))return u}return t.resolveVertexValue(e,s)}var cet={$isUserOption:het,$palette:uet,$mapPalette:det,$path:{dependencies:iV,resolve:pet},$pathString:{dependencies:iV,resolve:get},$ref:fet};function het(t,e,i){const[n,s,a]=i,o=t.neighboursWithEdgeValue(n,ki);if(o)for(const r of o){const l=t.findNeighbour(r,yi);if(l&&eV(t,e,l))return t.resolveVertexValue(e,s)}else if(eV(t,e,n))return t.resolveVertexValue(e,s);return t.resolveVertexValue(e,a)}function eV(t,e,i){const n=t.resolveVertexValue(e,i);if(!zi(n))throw new Error(`\`$isUserOption\` json operation failed on [${String(n)}], expecting a string.`);const s=t.getPathArray(e),a=Op(s,n);return a===bl?!1:t.hasUserOption(a)}var VU=new Set(["fill","fillFallback","stroke","gradient","range2"]);function uet(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);if(!zi(s))return;if(VU.has(s)){const o=t.getPathArray(e),r=zf(o);if(Number.isNaN(r))return;switch(s){case"fill":return kr(t.palette.fills,1,r)[0];case"fillFallback":return kr(t.palette.fillsFallback,1,r)[0];case"stroke":return kr(t.palette.strokes,1,r)[0];case"gradient":return kr(t.palette.sequentialColors,1,r)[0];case"range2":return kr(t.palette.fills,2,r)}return}if(s==="gradients")return t.palette.sequentialColors;if(s==="type")return t.paletteType;const a=qn(t.palette,s.split("."));return Array.isArray(a)?[...a]:typeof a=="object"?{...a}:a}function det(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);if(!zi(s))return;if(VU.has(s)){const o=t.getPathArray(e);let r=zf(o),l=0;const c=["series","0","type"];for(let u=0;u1,s=i.length>2,[a,o,r]=i,l=t.resolveVertexValue(e,a),c=s?t.resolveVertexValue(e,r):null;if(!zi(l))throw new Error(`\`$path\` json operation failed on [${String(l)}], expecting a string.`);const u=t.getPathArray(e),d=Op(u,l);if(d===bl)return;const g=c?qn(c,d):t.getResolvedPath(d);if(g!=null)return g;if(n)return t.resolveVertexValue(e,o)}function get(t,e,i){const[n,s]=i,a=t.resolveVertexValue(e,n);if(!zi(a))throw new Error(`\`$path\` json operation failed on [${String(a)}], expecting a string.`);let o;s&&(o=t.graftAndResolveOrphan(e,s));const r=t.getPathArray(e),l=Op(r,a,o);if(l===bl)throw new Error(`Unresolvable path [${a}] at [${r.join(".")}]`);return l}function fet(t,e,i){const[n]=i,s=t.getVertexValue(n);return t.getParamValue(s)}var met={$apply:yet,$applyCycle:bet,$applySwitch:xet,$applyTheme:vet,$clone:Met,$findFirstSiblingNotOperation:Det,$map:Aet,$merge:Iet,$omit:ket,$size:Cet,$shallow:Net,$shallowSimple:wet,$value:Tet};function yet(t,e,i){const[n,s,a,o]=i,r=t.getVertexValue(n);if(!Ie(r))return;const l=s?t.getVertexValue(s):void 0,c=t.neighboursWithEdgeValue(e,ki),u=c&&c.length>0;if(!u&&l==null)return Fa;const d=a?t.resolveVertexValue(e,a):void 0,g=o?t.resolveVertexValue(e,o):void 0;if(!u&&l!=null)if(Db(l)){const f=t.resolveVertexValue(e,s);Ie(f)&&t.graftObject(e,f,[d,g])}else t.graftObject(e,l,[d,g]);if(!u)return Fa;for(const f of c){const y=t.neighboursWithEdgeValue(f,ki);if(!y||y.length===0){const x=t.addVertex({});t.addEdge(f,x,yi)}else t.graftObject(f,r,[d,g])}return Fa}function bet(t,e,i){const[n,s,a]=i,o=t.resolveVertexValue(e,n);if(typeof o!="number")return;const r=t.getPathArray(e),l=t.dangerouslyGetUserOption(r),c=t.hasThemeOverride(r),u=l==null?void 0:bs,d=l??t.resolveVertexValue(e,s);if(!Array.isArray(d))return;const g=a?t.getVertexValue(a):void 0;for(let f=0;f0)return;let l=0;for(const c of o)t.graftValue(e,`${l}`,a,c),l++;return Fa}function Iet(t,e,i){for(const n of i){const s=t.resolveVertexValue(e,n);Ie(s)&&t.graftObject(e,s)}return Fa}function ket(t,e,i){const[n,s]=i;let a=t.getVertexValue(n);if(!Array.isArray(a)){const r=Rtt(t,e,s);if(!r)return;a=t.resolveVertexValue(r,n)}const o=t.resolveVertexValue(e,s);if(!(!Array.isArray(a)||!Ie(o)))return At(o,a)}function Cet(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);return Pb(s)?"length"in s?s.length:Object.keys(s).length:0}function wet(t,e,i){const n=[];for(const s of i)n.push(t.getVertexValue(s));return n}function Net(t,e,i){const n=t.getPathArray(e),s=t.hasUserOption(n);if(!s&&i.length===1)return t.resolveVertexValue(e,i[0]);const a=[];for(const o of i)a.push(t.getVertexValue(o));return s?(t.prune(e,[ka,yi]),Fa):(t.graftObject(e,a),Fa)}function Tet(t,e,i){const[n]=i,s=t.getVertexValue(n),a=t.getPathArray(e);if(s==="$index")return zf(a);if(s==="$parentIndex")return zf(a,1);if(s==="$1")return t.resolveValue$1(a)}var Let={$isEven:Oet};function Oet(t,e,i){const[n]=i,s=t.resolveVertexValue(e,n);return Number.isNaN(Number(s))?!1:Number(s)%2===0}var eb={...Ptt,...Btt,...Htt,...Xtt,...cet,...qtt,...Let,...met},_U=new Set(Object.keys(eb));function By(t){return _U.has(t)}var hi=Gt.create("opts","options-graph"),Eet=xs(Ret);function Ret(t,e){return hi.group("OptionsGraph.constructor()",()=>{const i=new FU(t.config,e,t.params,t.palette,t.overrides,t.getTemplateParameters());return{resolve(){return i.resolve()},resolveParams(){return i.resolveParams()},resolveAnnotationThemes(){return i.resolveAnnotationThemes()},resolvePartial(n,s,a){return i.resolvePartial(n,s,a)},clearSafe(){return i.clearSafe()}}})}var Uu=class Zn extends pj{constructor(e={},i={},n=void 0,s={},a=void 0,o=new Map){super(ki,Qr,new Set([Eh,bs])),this.config=e,this.userOptions=i,this.palette=s,this.overrides=a,this.internalParams=o,this.edgePriority=[...Zn.EDGE_PRIORITY],this.graftEdge=Zn.GRAFT_EDGE,this.resolvedParams={},this.resolvedAnnotations={},this.value$1=new Map,this.cachedPathVertices=new Map,this.hasUnsafeClearKeys=!1,this.rollbackVertices=[],this.rollbackEdgesFrom=[],this.rollbackEdgesTo=[],this.rollbackEdgesValue=[],this.isRollingBack=!1,this.resolvedRootAncestorsPaths=new Set,this.EMPTY_PATH_ARRAY_VERTEX=this.addVertex([]),this.root=this.addVertex("root"),this.params=this.addVertex("params"),this.annotations=this.addVertex("annotations"),this.paletteType=Bt(i?.theme)?R3(i.theme?.palette):"inbuilt";const r=i.series?.[0]?.type??"line";hi("build user"),this.buildGraphFromObject(this.root,bs,At(i,["theme"])),hi("build defaults"),this.buildGraphFromObject(this.root,yi,At(e[r],Zn.COMPLEX_KEYS));const l=a?At(a[r],Zn.COMPLEX_KEYS):{};Object.keys(l).length>0&&(hi("build series overrides"),this.buildGraphFromObject(this.root,ka,l));const c=a?At(a.common,Zn.COMPLEX_KEYS):{};Object.keys(c).length>0&&(hi("build common overrides"),this.buildGraphFromObject(this.root,ka,Ut.getSeriesModule(r)?.chartType==="cartesian"?c:At(c,["zoom","navigator"]))),n&&(hi("build params"),this.buildGraphFromObject(this.params,yi,n));const u=this.findNeighbourWithValue(this.root,"axes",ki),d=this.findNeighbourWithValue(this.root,"series",ki);u&&(hi("build axes"),this.buildGraphFromObject(u,yi,{$applyTheme:[["/$seriesType/axes/$axisType/$position","/$seriesType/axes/$axisType"],{seriesType:{$path:["/series/0/type","line"]},axisType:{$path:["./type","category"]},position:{$path:["./position"]}},["top","right","bottom","left"]]})),d&&(hi("build series"),this.buildGraphFromObject(d,yi,{$applyTheme:["/$seriesType/series",{seriesType:{$path:["./type","line"]}}]}));const g=At(e[r]?.annotations??{},Zn.ANNOTATIONS_OPTIONS_KEYS);Object.keys(g).length>0&&(hi("build annotations type config"),this.buildGraphFromObject(this.annotations,yi,g));const f=At(a?.common?.annotations??{},Zn.ANNOTATIONS_OPTIONS_KEYS);Object.keys(f).length>0&&(hi("build annotations type overrides"),this.buildGraphFromObject(this.annotations,ka,f));const y=PS(e[r]?.annotations??{},Zn.ANNOTATIONS_OPTIONS_KEYS);Object.keys(y).length>0&&(hi("build annotations config"),this.buildGraphFromObject(this.root,yi,{annotations:y}));const x=PS(a?.common?.annotations??{},Zn.ANNOTATIONS_OPTIONS_KEYS);Object.keys(x).length>0&&(hi("build annotations overrides"),this.buildGraphFromObject(this.root,ka,{annotations:x})),this.buildDependencyGraph()}static clearValueCache(){Zn.valueCache.clear()}clear(){hi.group("OptionsGraph.clear()",()=>{super.clear(),this.cachedPathVertices.clear(),this.root=void 0,this.params=void 0,this.annotations=void 0,hi("cleared")})}clearSafe(){this.hasUnsafeClearKeys||this.clear()}resolve(){return hi.group("OptionsGraph.resolve()",()=>(this.resolved={},this.resolvedParams={},this.resolvedAnnotations={},hi("resolve params"),this.resolveVertex(this.params,this.resolvedParams),hi("resolve annotations"),this.resolveVertex(this.annotations,this.resolvedAnnotations),hi("resolve root"),this.resolveVertex(this.root),hi("resolved root",this.resolved),hi("vertex count",this.getVertexCount()),hi("edge count",this.getEdgeCount()),this.resolved))}resolveParams(){return this.resolvedParams}resolveAnnotationThemes(){return this.resolvedAnnotations}addVertex(e){const i=super.addVertex(e);return this.isRollingBack&&this.rollbackVertices.push(i),i}addEdge(e,i,n){const s=(this.neighboursWithEdgeValue(e,n)?.indexOf(i)??-1)!==-1;this.isRollingBack&&!s&&(this.rollbackEdgesFrom.push(e),this.rollbackEdgesTo.push(i),this.rollbackEdgesValue.push(n)),super.addEdge(e,i,n)}resolvePartial(e,i,n){if(!i||!this.root)return;const{permissivePath:s,proxyPaths:a}=n??{},o=Object.keys(i);if(hi.check()&&console.groupCollapsed(`OptionsGraph.resolvePartial() - ${e.join(".")} [${o}]`),o.length===0)return{};const r=this.findVertexAtPath(e);if(!r){if(s)return;throw new Error(`Could not find vertex in OptionsGraph at path [${e.join(".")}].`)}const l=this.findNeighbour(r,Go);if(this.userPartialOptions={},Pg(this.userPartialOptions,e,i),a)for(const f of Object.keys(a)){const y=a[f],x=qn(i,[f]);x!=null&&(Pg(i,y,x),Pg(this.userPartialOptions,[...e,...y],x),delete i[f],delete this.userPartialOptions[f])}this.graftEdge=Eh,this.edgePriority=[Eh,...Zn.EDGE_PRIORITY],this.snapshot(),this.buildGraphFromObject(r,Eh,i,l);for(const f of o){const y=a?.[f]?this.findVertexAtPath([...e,...a[f]]):this.findNeighbourWithValue(r,f,ki);y&&this.refreshPendingProcessingEdges(y)}this.buildDependencyGraph();const c={};if(this.resolveVertex(r,c),this.rollback(),this.graftEdge=Zn.GRAFT_EDGE,this.edgePriority=Zn.EDGE_PRIORITY,this.userPartialOptions=void 0,a)for(const f of Object.keys(a)){const y=a[f],x=qn(c,[...e,...y]);Pg(c,[...e,f],x)}const u=qn(c,e),g=n?.pick??!0?PS(qn(c,e),o):u;return hi("vertex count",this.getVertexCount()),hi("edge count",this.getEdgeCount()),hi("resolved partial",g),hi.check()&&console.groupEnd(),g}findVertexAtPath(e){const i=e.join(".");if(this.cachedPathVertices.has(i))return this.cachedPathVertices.get(i);const n=this.findVertexAlongEdge(this.root,e,ki);if(n)return this.cachedPathVertices.set(i,n),n}hasUserOption(e){if(zy(this.userOptions,e))return!0;const n=this.findVertexAtPath(e);if(n){if(this.findNeighbour(n,bs)!=null||this.findNeighbour(n,Eh)!=null)return!0;const s=this.findNeighbourValue(n,tV);return s===bs||s===Eh}return!1}dangerouslyGetUserOption(e){if(this.userPartialOptions){const i=qn(this.userPartialOptions,e);if(i!=null)return i}return qn(this.userOptions,e)}hasThemeOverride(e){if(this.overrides==null)return!1;if(e[0]==="axes"&&e.length>1){const i=this.getResolvedPath(["axes",e[1],"type"]);if(zy(this.overrides,["common","axes",i,...e.slice(2)]))return!0;const n=this.getResolvedPath(["series","0","type"]);return zy(this.overrides,[n,"axes",i,...e.slice(2)])}if(e[0]==="series"&&e.length>1){const i=this.getResolvedPath(["series",e[1],"type"]);return zy(this.overrides,[i,"series",...e.slice(2)])}return zy(this.overrides,e)}getParamValue(e){if(this.resolvedParams[e]!=null)return this.resolvedParams[e];const i=this.findVertexAlongEdge(this.params,[e],ki);if(!i)return;const n=this.findNeighbour(i,yi);if(!n)return;const s=this.resolveVertexValue(i,n);return this.resolvedParams[e]=s,s}getPathArray(e){return this.findNeighbourValue(e,Go)??[]}getResolvedPath(e){return qn(this.resolved,e)}getCachedValue(e,i){const n=[...e,i].join(".");return Zn.valueCache.get(n)}setCachedValue(e,i,n){const s=[...e,i].join(".");Zn.valueCache.set(s,n)}prune(e,i){this.addEdge(e,this.addVertex(i),JB)}resolveVertexValue(e,i){this.resolveVertexDependencies(i);const n=this.findNeighbourValue(i,Qr);if(n&&By(n)){const a=this.neighboursWithEdgeValue(i,Jr),o=eb[n],l=(typeof o=="function"?o:o.resolve)?.(this,e,a??[]);return l===Fa?void 0:l}let s=this.getVertexValue(i);if(Array.isArray(s)){const a={};this.resolveVertexChildren(i,a),s=qn(a,this.getPathArray(e))}return this.resolveValueOrSymbol(s)}resolveValue$1(e){for(let i=e.length;i>=0;i--){const n=e.slice(0,i).join("."),s=this.value$1.get(n);if(s!=null)return s}}graftConfig(e,i,n){const s=qn(this.config,i),a=this.findNeighbour(e,Go);if(Bt(s)&&this.buildGraphFromObject(e,yi,s,a,void 0,n),this.overrides){const o=qn(this.overrides,i);Bt(o)&&this.buildGraphFromObject(e,ka,o,a,void 0,n);const r=qn(this.overrides,["common",...i.slice(1)]);Bt(r)&&this.buildGraphFromObject(e,ka,r,a,void 0,n)}this.buildDependencyGraph()}graftObject(e,i,n,s=this.graftEdge){const a=this.findNeighbour(e,Go);if(this.buildGraphFromObject(e,s,i,a),this.overrides&&n)for(const o of n){if(o==null)continue;const r=qn(this.overrides,o);r&&this.buildGraphFromObject(e,ka,r,a)}this.buildDependencyGraph()}graftValue(e,i,n,s,a=this.graftEdge){const o=[...this.getPathArray(e),i],r=this.findVertexAtPath(o)??this.addVertex(i);this.value$1.set(o.join("."),s),this.buildGraphFromValue(e,r,a,o,n),this.buildDependencyGraph()}graftAndResolveOrphan(e,i){const n={},s=this.addVertex(n),a=this.getPathArray(e);return this.graftAndResolveChildren(i,s,a,[]),this.resolveVertex(s,n),qn(n,a)}graftAndResolveOrphanValue(e,i,n,s,a=this.graftEdge){const o={},r=this.addVertex(o),c=[...this.getPathArray(e),i],u=this.findVertexAtPath(c)??this.addVertex(i);return this.value$1.set(c.join("."),s),this.buildGraphFromValue(r,u,a,c,n),this.resolveVertex(r,o),qn(o,c)}buildGraphFromObject(e,i,n,s,a=Zn.SHALLOW_KEYS,o){const r=Object.keys(n),l=Db(n,r);if(l){const y=this.addVertex(n);this.addEdge(e,y,i),this.buildGraphFromOperation(y,i,l,s);return}if(r.length===0){this.addEdge(e,this.addVertex(Array.isArray(n)?[]:{}),i),this.buildGraphAutoEnable(e,i,n,void 0);return}const c=this.getVertexChildrenByKey(e),u=s?this.getVertexValue(s):[];let d;Array.isArray(n)&&this.addEdge(e,this.addVertex(i),tV);const g=[...u],f=u.length;for(const y of r){if(o?.has(y))continue;const x=c?.get(y)??this.addVertex(y);g[f]=y,a?.has(y)?this.buildShallowGraphFromValue(e,x,i,g,n[y]):this.buildGraphFromValue(e,x,i,g,n[y],a),y==="enabled"&&(d=x)}this.buildGraphAutoEnable(e,i,n,d)}buildGraphAutoEnable(e,i,n,s){if(i===yi&&!s||i===bs&&s||i!==yi&&i!==bs&&i!==Eh&&i!==ka)return;let a=this.findNeighbour(e,zC);a||(a=this.addVertex(zC),this.addEdge(e,a,zC)),s&&this.addEdge(s,a,QB);const{enabled:o,_enabledFromTheme:r}=n;this.addEdge(a,this.addVertex({enabled:o,_enabledFromTheme:r,keys:Object.keys(n).length}),i)}getVertexChildrenByKey(e){const i=this.neighboursWithEdgeValue(e,ki);if(!i)return;const n=new Map;for(const s of i)n.set(this.getVertexValue(s),s);return n}buildGraphFromValue(e,i,n,s,a,o){this.addEdge(e,i,ki);let r=this.findNeighbour(i,Go);r||(r=this.addVertex([...s]),this.addEdge(i,r,Go));const l=Db(a);if(l){const c=this.addVertex(a);this.addEdge(i,c,n),this.addEdge(c,r,Go),this.buildGraphFromOperation(c,n,l,r)}else if(Pb(a))this.buildGraphFromObject(i,n,a,r,o);else{const c=this.findNeighbour(i,n);if(c&&this.getVertexValue(c)===a)return;const u=this.addVertex(a);this.addEdge(i,u,n)}}buildShallowGraphFromValue(e,i,n,s,a){this.addEdge(e,i,ki);let o=this.findNeighbour(i,Go);o||(o=this.addVertex([...s]),this.addEdge(i,o,Go));const r=this.addVertex(a);this.addEdge(i,r,n)}buildGraphFromOperation(e,i,n,s){const a=this.addVertex(n.operation);this.addEdge(e,a,Qr);for(const o of n.values)this.buildGraphFromOperationValue(e,o,i,s)}buildGraphFromOperationValue(e,i,n,s=this.EMPTY_PATH_ARRAY_VERTEX){const a=this.addVertex(i);this.addEdge(e,s,Go),this.addEdge(e,a,Jr);const o=Db(i);o?this.buildGraphFromOperation(a,n,o,s):Pb(i)&&this.buildGraphFromObject(a,n,i,s)}buildDependencyGraph(){for(let e=0;e1&&!this.resolvedRootAncestorsPaths.has(a)){const o=this.findVertexAtPath([a]);if(o){this.resolveVertex(o,i,n);return}}if(this.userPartialOptions==null&&i===this.resolved&&s.length>0){const o=qn(i,s);if(o!=null&&!Ie(o))return}this.resolveVertexInEdgePriority(e,i,s,n),this.resolveVertexAutoEnable(e,i,s),this.resolveVertexChildren(e,i,n)}resolveVertexInEdgePriority(e,i,n,s){const a=this.neighboursWithEdgeValue(e,ki),[o]=this.edgePriority;for(const r of this.edgePriority){const l=this.findNeighbour(e,r);if(l==null)continue;const c=this.resolveVertexValueInternal(e,l);if(!(c==null&&r!==o)&&!(a&&a.length>0&&r!==o)&&!(Array.isArray(s)&&s.includes(r))){if(this.hasUnsafeClearKeys||(this.hasUnsafeClearKeys=c!=null&&Zn.UNSAFE_CLEAR_KEYS.has(n.at(-1))),n.length===0){if(c==null)continue;this.resolved=c}else Pg(i,n,c);break}}}resolveVertexValueInternal(e,i){this.resolveVertexDependencies(i);const n=this.findNeighbourValue(i,Qr);if(n&&By(n)){const s=this.neighboursWithEdgeValue(i,Jr),a=eb[n],r=(typeof a=="function"?a:a.resolve)?.(this,e,s??[]);return r===Fa?void 0:r}return this.resolveValueOrSymbol(this.getVertexValue(i))}resolveVertexAutoEnable(e,i,n){const s=this.neighboursWithEdgeValue(e,QB)?.[0];if(!s)return;const a=this.findVertexAtPath(n),o=this.findNeighbourValue(s,yi),r=this.findNeighbourValue(s,ka),l=this.findNeighbourValue(s,bs),u=a&&this.findNeighbour(a,bs)!=null?void 0:this.findNeighbourValue(s,Eh);(l!=null&&l.enabled==null||u!=null&&u.enabled==null)&&!o?._enabledFromTheme&&!r?._enabledFromTheme&&Pg(i,n,!0)}resolveVertexChildren(e,i,n){const s=this.neighboursWithEdgeValue(e,ki);if(s){n??(n=this.findNeighbourValue(e,JB));for(const a of s){const o=this.getVertexValue(a);s.length>1&&By(o)||o!=="_enabledFromTheme"&&this.resolveVertex(a,i,n)}}}resolveVertexDependencies(e){const i=this.neighboursWithEdgeValue(e,Qg);if(i)for(const n of i)this.resolveVertex(n)}graftAndResolveChildren(e,i,n,s){const a=this.neighboursWithEdgeValue(e,ki);if(a)for(const o of a){const r=this.getVertexValue(o),l=[...n,r],c=[...s,r],u=this.addVertex(r),d=this.findNeighbourValue(o,yi);this.addEdge(i,u,ki);const g=this.addVertex(l);if(this.addEdge(u,g,Go),Bt(d)){this.buildGraphFromObject(u,yi,d,g);const f=this.findNeighbour(u,yi);this.addEdge(f,this.addVertex(l),Go);const y=this.findNeighbourValue(f,Qr);if(By(y)){const x=this.neighboursWithEdgeValue(f,Jr),S=eb[y];(typeof S=="function"?void 0:S.dependencies)?.(this,f,x??[])}}this.graftAndResolveChildren(o,u,l,c)}}resolveValueOrSymbol(e){return typeof e=="symbol"&&this.internalParams?.has(e)?this.internalParams.get(e):e}snapshot(){hi("snapshot"),this.isRollingBack=!0}rollback(){hi(`rollback ${this.rollbackEdgesFrom.length} edges and ${this.rollbackVertices.length} vertices`);for(let e=0;e0?a.join("."):"root";this.diagramNeighbours(e,o,i,n+1,s);let r=this.diagramKeys.get(o);r||(r=this.diagramKey(o),e.push(` ${r}["${i.value}"]`))}diagramNeighbours(e,i,n,s,a){for(const f of this.neighboursWithEdgeValue(n,ki)??[]){const y=this.getPathArray(f),x=y.length>0?y.join("."):"root";s${l} ${this.diagramLabel(a,o,i)}`)}diagramChildWithNeighbours(e,i,n,s,a,o,r,l){this.diagramChild(e,i,n,s,a,o),this.diagramNeighbours(e,a,o,r+1,l)}};Uu.EDGE_PRIORITY=[bs,ka,yi];Uu.GRAFT_EDGE=yi;Uu.SHALLOW_KEYS=new Set(["context","data","topology"]);Uu.COMPLEX_KEYS=["annotations","axes","series"];Uu.ANNOTATIONS_OPTIONS_KEYS=["axesButtons","data","enabled","optionsToolbar","snap","toolbar","xKey","volumeKey"];Uu.UNSAFE_CLEAR_KEYS=new Set(["itemStyler","styler"]);Uu.valueCache=new Map;var FU=Uu,nV=t=>`'${t}'`,VC="__AXIS_ID_",Td={top:z.X,bottom:z.X,left:z.Y,right:z.Y},Ep=class _n{constructor(e,i,n,s,a,o,r=!1,l){this.themeParameters={},this.optionMetadata=a??{},this.processedOverrides=n??{};let c=null;e instanceof _n?(c=e,this.specialOverrides=c.specialOverrides,o&&(this.userDeltaKeys=new Set(Object.keys(o))),o??(o=or(c.userOptions,i,_n.JSON_DIFF_OPTS)),this.userOptions=le(Hb(o,c.userOptions),{..._n.OPTIONS_CLONE_OPTS_SLOW,seen:[]})):(this.userOptions=le(e??i,{..._n.OPTIONS_CLONE_OPTS_SLOW,seen:[]}),this.specialOverrides=this.specialOverridesDefaults({...s})),this.findSeriesWithUserVisiblity(i,o),r&&this.removeLeftoverSymbols(this.userOptions);const u=e instanceof _n&&o?.data!==void 0&&o?.data?.length!==e.userOptions.data?.length;let d,g,f,y,x,S,D;if(!r&&this.seriesWithUserVisibility==null&&o!==void 0&&_n.isFastPathDelta(o)&&c!=null&&!u?({activeTheme:d,processedOptions:g,fastDelta:f}=this.fastSetup(o,c),y=c.themeParameters,x=c.annotationThemes):(_n.perfDebug("ChartOptions.slowSetup()"),{activeTheme:d,processedOptions:g,themeParameters:y,annotationThemes:x,googleFonts:S,optionsGraph:D}=this.slowSetup(n,o,r)),this.activeTheme=d,this.processedOptions=g,this.fastDelta=f??void 0,this.themeParameters=y,this.annotationThemes=x,this.googleFonts=S,this.optionsGraph=D,l!==void 0&&typeof l=="number"&&!Number.isNaN(l)){const A=performance.now();this.optionsProcessingTime=A-l}Gt.inDevelopmentMode(()=>za(this))}static isFastPathDelta(e){for(const i of Object.keys(e??{}))if(!this.FAST_PATH_OPTIONS.has(i))return _n.perfDebug("ChartOptions.isFastPathDelta() - slow path required due to presence of: ",i),!1;return _n.perfDebug("ChartOptions.isFastPathDelta() - fast path possible."),!0}findSeriesWithUserVisiblity(e,i){for(const n of[e,i]){const s=n?.series;if(Array.isArray(s))for(let a=0;afj(n,i.series?.[s]??{}))?delete e.series:e.series=e.series.map((n,s)=>Hb(n,i.series?.[s]??{})))}slowSetup(e,i,n=!1){let s=le(this.userOptions,_n.OPTIONS_CLONE_OPTS_FAST);i&&(s=Et(i,s),n&&this.removeLeftoverSymbols(s));let a=HB(NM(s.theme));const{presetType:o}=this.optionMetadata;if(o!=null){const S=Ut.getPresetModule(o);if(S){const{validate:D=ts}=S,A=s,I=s.type,w=I==null?void 0:a.presets[I],{cleared:N,invalid:O}=D(A,S.options,"");for(const L of O)pt.warn(L);Xd(O,"")?s={}:(_n.debug(">>> AgCharts.createOrUpdate() - applying preset",N),s=S.create(N,w,()=>this.activeTheme),a=HB(NM(s.theme)))}}this.soloSeriesIntegrity(s),o!=null&&a.templateTheme(s,!1),jB(void 0,s);const r=this.validateSeriesOptions(s),l=Mb(s);if(this.chartDef=Ut.getChartModule(l),!this.chartDef.placeholder){const{validate:S=ts}=this.chartDef,{cleared:D,invalid:A}=S(s,this.chartDef.options,"");for(const I of A)pt.warn(I);s=D}this.validateAxesOptions(s),this.removeDisabledOptions(s);let c=this.processFonts(a.params);c=this.processFonts(s,c),this.processSeriesOptions(s);const u=this.processAxesOptions(s,l),d=Eet(a,s),g=d.resolve(),f=d.resolveParams(),y=d.resolveAnnotationThemes();d.clearSafe();const x=Et(e,g);return jB(this.chartDef.name,x),ett(this.chartDef.name,x,r),this.validateSeriesOptions(x),this.validateAxesOptions(x,u),this.validatePluginOptions(x),this.processMiniChartSeriesOptions(x),x.loadGoogleFonts||c.clear(),_n.debug(()=>["ChartOptions.slowSetup() - processed options",le(x)]),{activeTheme:a,processedOptions:x,themeParameters:f,annotationThemes:y,googleFonts:c,optionsGraph:d}}validatePluginOptions(e){for(const i of Ut.listModulesByType(Le.Plugin)){const n=i.name;if(n in e&&i.options!=null&&(!i.chartType||i.chartType===this.chartDef?.name)){const{cleared:s,invalid:a}=ts(e[n],i.options,i.name);for(const o of a)pt.warn(o);e[n]=s}}}validateSeriesOptions(e){const i=this.chartDef?.name,n=[],s=e.series?.length??0,a=[];let o;for(let r=0;rS.type===Le.Series&&(y||!S.enterprise)&&(!i||S.chartType===i)).map(S=>S.name),"or",nV));const x=iu.get(c.type);if(c.type!=null&&x?.type===Le.Series){a.push(x);continue}pt.warn(c.type==null?`Option \`${l}.type\` is required and has not been provided; expecting ${o}, ignoring.`:`Unknown type \`${c.type}\` at \`${l}.type\`; expecting ${o}, ignoring.`);continue}else if(i&&u.chartType!==i){pt.warn(`Series type \`${u.name}\` at \`${l}.type\` is not supported by chart type \`${i}\`, ignoring.`);continue}if(u.options==null){n.push(c);continue}const{validate:d=ts}=u,{cleared:g,invalid:f}=d(c,u.options,l);for(const y of f)pt.warn(y);Xd(f,l)||n.push(g)}return e.series=n,a}validateAxesOptions(e,i){if(!("axes"in e)||!e.axes)return;const n=this.chartDef?.name,s={};let a;for(const[o,r]of Xe(e.axes)){if(!r)continue;if(r.type==null){s[o]=r;continue}const l=`axes.${i?.get(o)??o}`,c=Ut.getAxisModule(r.type);if(c==null){const f=Ut.isEnterprise();a??(a=yu(Array.from(iu.values()).filter(x=>x.type===Le.Axis&&(f||!x.enterprise)&&x.chartType===n).map(x=>x.name),"or",nV)),iu.get(r.type)?.type!==Le.Axis&&pt.warn(`Unknown type \`${r.type}\` at \`${l}.type\`; expecting one of ${a}, ignoring.`);continue}else if(c.chartType!==n){pt.warn(`Axis type \`${c.name}\` at \`${l}.type\` is not supported by chart type \`${n}\`, ignoring.`);break}const{validate:u=ts}=c,{cleared:d,invalid:g}=u(r,c.options,l);for(const f of g)pt.warn(f);Xd(g,l)||(s[o]=d)}e.axes=s}diffOptions(e){return this===e?{}:e==null?this.processedOptions:this.fastDelta??or(e.processedOptions,this.processedOptions,_n.JSON_DIFF_OPTS)}optionsType(e){return e.series?.[0]?.type??"line"}processSeriesOptions(e){const i=e.displayNullData,n=e.series?.map(s=>{const o=!!Ut.getSeriesModule(s.type)?.options?.visible,r={};return o&&(r.visible=!0),i!==void 0&&s.allowNullKeys===void 0&&(r.allowNullKeys=i),Et(this.getSeriesGroupingOptions(s),s,r)});e.series=this.setSeriesGroupingOptions(n??[])}processAxesOptions(e,i){const n=i==="polar"?[z.Angle,z.Radius]:[z.X,z.Y],s="axes"in e&&Object.keys(e.axes??{}).length>0,a=this.countNonDefaultSeriesAxisKeys(e,n),o=a>0,r=o&&a<(e?.series?.length??0),l=e.series?.[0],c=this.optionsType(e),u=this.predictAxes(c,n,l,e.data)??this.cloneDefaultAxes(c),d=Bt(l)&&"direction"in l&&l.direction==="horizontal"&&Ut.getSeriesModule(l.type)?.axisKeysFlipped!=null;if(!s&&!o&&!d){e.axes=u;return}const g="axes"in e?new Set(Object.keys(e.axes??{})):new Set,f=this.getPrimaryAxisKeys(e,n,g,o),y=this.getRemappedAxisKeys(g,f,n,r),x={},S=new Map;for(const[D,A]of y)x[A]="axes"in e?Gd(e.axes?.[D]):void 0,S.set(A,D);return this.remapSeriesAxisKeys(e,n,x,y,u,r),this.predictAxesMissingTypesAndPositions(e,n,x,u),this.alternateSecondaryAxisPositions(e,x,S),e.axes=x,S}getSeriesDirectionAxisKey(e,i){const n=Ut.getSeriesModule(e.type);return n?"direction"in e&&e.direction==="horizontal"&&n.axisKeysFlipped?n.axisKeysFlipped[i]:n.axisKeys?.[i]:void 0}countNonDefaultSeriesAxisKeys(e,i){let n=0;for(const s of e.series??[])for(const a of i){const o=this.getSeriesDirectionAxisKey(s,a);!o||!jd(o,s)||s[o]!==a&&n++}return n}getPrimaryAxisKeys(e,i,n,s){const a=new Map;for(const o of i){let r=!1;if("axes"in e&&e.axes&&!(o in e.axes&&Bt(e.axes[o])&&!("position"in e.axes[o]))){for(const[l,c]of Xe(e.axes))if("position"in c&&c.position&&o===Td[c.position]){a.set(o,l),r=!0;break}}if(!r&&s)for(const l of e.series??[]){const c=this.getSeriesDirectionAxisKey(l,o);if(!c)continue;const u=l[c];if(!n.has(u)){if(!u){a.set(o,o);break}a.set(o,u);break}}}if(n.size===0||!("axes"in e)||!e.axes)return a;if(a.size===0)for(const o of i)o in e.axes&&a.set(o,o);if(a.size===0){for(const o of i)for(const[r,l]of Xe(e.axes))if(l.type?.startsWith(o)){a.set(o,r);break}}if(a.size===0&&(e.series?.length??0)>0)for(const o of i)for(const r of e.series){const l=this.getSeriesDirectionAxisKey(r,o);if(!l)continue;const c=r[l];if(n.has(c)){a.set(o,c);break}}if(a.size<2){const o=new Set(a.values());for(const[r,l]of Xe(e.axes))if(!(o.has(r)||"position"in l)){for(const c of i)if(!a.has(c)){a.set(c,r),o.add(r);break}if(a.size===2)break}}return a}getRemappedAxisKeys(e,i,n,s){const a=new Map;for(const[o,r]of i)a.set(r,o);for(const o of e)a.has(o)||a.set(o,`${VC}${a.size}`);if(s)for(const o of n)a.has(o)||a.set(o,`${VC}${a.size}`);return a}remapSeriesAxisKeys(e,i,n,s,a,o){for(const r of e.series??[])for(const l of i){const c=this.getSeriesDirectionAxisKey(r,l);if(!c)continue;n[l]??(n[l]=Gd(a[l]));let u=l;if(c in r){const d=r[c];s.has(d)?u=s.get(d):(u=`${VC}${s.size}`,s.set(d,u),n[u]=Gd(a[l]))}else s.has(l)&&o&&(u=s.get(l),n[u]??(n[u]=Gd(a[l])));r[c]=u}}predictAxes(e,i,n,s){if(!n)return;const a=n?.data??s;if(!a?.length)return;const o=Ut.getSeriesModule(e)?.predictAxis;if(!o)return;const r=new Map,l=HH(0,a.length-1,5);for(const c of l){const u=a[c];for(const d of i){const g=o(d,u,n);if(!r.has(d)){r.set(d,g);continue}const f=r.get(d);if(!(!g&&!f)){if(!g||!f)return;for(const y of Object.keys(f))if(f[y]!==g[y])return}}}for(const[c,u]of r)u||r.delete(c);if(r.size!==0){if(r.size===1){const[c]=r.values(),u=this.cloneDefaultAxes(e);return"position"in c?af(u,d=>"position"in d&&d.position===c.position?c:d):void 0}return Object.fromEntries(r)}}cloneDefaultAxes(e){const i=Ut.getSeriesModule(e);return i?.defaultAxes?le(i.defaultAxes):{}}predictAxesMissingTypesAndPositions(e,i,n,s){for(const[a,o]of Xe(n)){if(!Ie(o)||"type"in o&&"position"in o)continue;if(a in s){o.type??(o.type=s[a].type),o.position??(o.position=s[a].position);continue}this.predictAxisMissingTypeFromPosition(o,s)||(this.predictAxisMissingTypeAndPositionFromSeries(e,i,a,o,s),"type"in o||delete n[a])}}predictAxisMissingTypeFromPosition(e,i){if(!("position"in e)||!jd(e.position,Td))return!1;for(const n of Object.values(i))if(jd(n.position,Td)&&Td[e.position]===Td[n.position])return e.type=n.type,!0;for(const[n,s]of Xe(Td))if(e.position!==n&&s===Td[e.position])return e.type=i[s].type,!0;return!1}predictAxisMissingTypeAndPositionFromSeries(e,i,n,s,a){for(const o of e.series??[])for(const r of i){const l=this.getSeriesDirectionAxisKey(o,r);if(!(!l||!jd(l,o))&&o[l]===n)return s.type??(s.type=a[r].type),s.position??(s.position=a[r].position),r===z.Y}return!1}alternateSecondaryAxisPositions(e,i,n){let s=0,a=0;for(const[o,r]of Xe(i)){if(!Ie(r)||!("position"in r))continue;const l=n.get(o),c="axes"in e&&e.axes&&l&&l in e.axes?e.axes[l]:void 0,u=c&&"position"in c?c.position:void 0;if(r.position==="top"||r.position==="bottom"?(s+=1,s===2&&u==null&&(r.position="top")):(r.position==="left"||r.position==="right")&&(a+=1,a===2&&u==null&&(r.position="right")),s>1&&a>1)break}}processMiniChartSeriesOptions(e){const i=e.navigator?.miniChart?.series;i!=null&&(e.navigator.miniChart.series=this.setSeriesGroupingOptions(i))}getSeriesGroupingOptions(e){const{groupable:i,stackable:n,stackedByDefault:s=!1}=Ut.getSeriesModule(e.type);e.grouped&&!i&&pt.warnOnce(`unsupported grouping of series type "${e.type}".`),(e.stacked||e.stackGroup)&&!n&&pt.warnOnce(`unsupported stacking of series type "${e.type}".`);let{grouped:a,stacked:o}=e;return o??(o=(s||e.stackGroup!=null)&&!(i&&a)),a??(a=!0),{stacked:n&&o,grouped:i&&a&&!(n&&o)}}setSeriesGroupingOptions(e){const i=this.getSeriesGrouping(e);_n.debug("ChartOptions.setSeriesGroupingOptions() - series grouping: ",i);const n={},s=i.reduce((a,o)=>{var r;return o.groupType==="default"||(a[r=o.seriesType]??(a[r]=0),a[o.seriesType]+=o.groupType==="stack"?1:o.series.length),a},{});return i.flatMap(a=>{var o;switch(n[o=a.seriesType]??(n[o]=0),a.groupType){case"stack":{const r=n[a.seriesType]++;return a.series.map((l,c)=>Object.assign(l,{seriesGrouping:{groupId:a.groupId,groupIndex:r,groupCount:s[a.seriesType],stackIndex:c,stackCount:a.series.length}}))}case"group":return a.series.map(r=>Object.assign(r,{seriesGrouping:{groupId:a.groupId,groupIndex:n[a.seriesType]++,groupCount:s[a.seriesType],stackIndex:0,stackCount:0}}))}return a.series}).map(({stacked:a,grouped:o,...r})=>r)}getSeriesGroupId(e){return[e.type,e.xKey,e.stacked?e.stackGroup??"stacked":"grouped"].filter(Boolean).join("-")}getSeriesGrouping(e){const i=new Map;return e.reduce((n,s)=>{const a=s.type;if(!s.stacked&&!s.grouped)n.push({groupType:"default",seriesType:a,series:[s],groupId:"__default__"});else{const o=this.getSeriesGroupId(s);if(!i.has(o)){const l={groupType:s.stacked?"stack":"group",seriesType:a,series:[],groupId:o};i.set(o,l),n.push(l)}i.get(o).series.push(s)}return n},[])}soloSeriesIntegrity(e){if(!qt(e.series))return;const i=s=>Ut.getSeriesModule(s)?.solo??!1,n=e.series;if(n&&n.length>1&&n.some(s=>i(s.type))){const s=this.optionsType(e);if(i(s))pt.warn(`series[0] of type '${s}' is incompatible with other series types. Only processing series[0]`),e.series=n.slice(0,1);else{const{solo:a,nonSolo:o}=px(n,l=>i(l.type)?"solo":"nonSolo"),r=ZM(a.map(l=>l.type)).join(", ");pt.warn(`Unable to mix these series types with the lead series type: ${r}`),e.series=o}}}static processFontOptions(e,i,n,s=new Set){if(typeof e=="object"&&"fontFamily"in e)if(Array.isArray(e.fontFamily)){const a=[];for(const o of e.fontFamily)typeof o=="object"&&"googleFont"in o?(a.push(o.googleFont),s?.add(o.googleFont)):a.push(o);e.fontFamily=a.join(", ")}else typeof e.fontFamily=="object"&&"googleFont"in e.fontFamily&&(e.fontFamily=e.fontFamily.googleFont,s?.add(e.fontFamily));return s}processFonts(e,i=new Set){return Ic(e,_n.processFontOptions,new Set(["data","theme"]),void 0,void 0,i)}static removeDisabledOptionJson(e){if("enabled"in e&&e.enabled===!1)for(const i of Object.keys(e))i!=="enabled"&&delete e[i]}removeDisabledOptions(e){Ic(e,_n.removeDisabledOptionJson,new Set(["data","theme","contextMenu","ranges"]))}static removeLeftoverSymbolsJson(e){if(!(!e||!Bt(e)))for(const i of Object.keys(e)){const n=e[i];hb(n)&&delete e[i]}}removeLeftoverSymbols(e){Ic(e,_n.removeLeftoverSymbolsJson,new Set(["data"]))}specialOverridesDefaults(e){if(e.window==null?e.window=Ml():GH(e.window),e.document==null?e.document=bp():jH(e.document),e.window==null)throw new Error("AG Charts - unable to resolve global window");if(e.document==null)throw new Error("AG Charts - unable to resolve global document");return e}};Ep.OPTIONS_CLONE_OPTS_SLOW={shallow:new Set(["data","container"]),assign:new Set(["context","theme"])};Ep.OPTIONS_CLONE_OPTS_FAST={shallow:new Set(["container"]),assign:new Set(["data","context","theme"])};Ep.JSON_DIFF_OPTS=new Set(["data","localeText"]);Ep.perfDebug=Gt.create(!0,"perf");Ep.FAST_PATH_OPTIONS=new Set(["data","width","height","container"]);Ep.debug=Gt.create(!0,"opts");var Ab=Ep,U0=Gt.create(!0,"opts"),Rh="AG Charts - Chart was destroyed, cannot perform request.",Ib=class{constructor(e,i,n){this.factoryApi=i,this.licenseManager=n,this.chart=e}async update(e){if(!this.chart)throw new Error(Rh);return U0.group("AgChartInstance.update()",async()=>{const i=Gt.check("scene:stats","scene:stats:verbose")?performance.now():void 0;this.factoryApi.update(e,this,void 0,i),await this.chart?.waitForUpdate()})}async updateDelta(e){if(!this.chart)throw new Error(Rh);return U0.group("AgChartInstance.updateDelta()",async()=>{const i=Gt.check("scene:stats","scene:stats:verbose")?performance.now():void 0;this.factoryApi.updateUserDelta(this,e,i),await this.chart?.waitForUpdate()})}getOptions(){if(!this.chart)throw new Error(Rh);const e=le(this.chart.getOptions(),Ab.OPTIONS_CLONE_OPTS_FAST);for(const i of Object.keys(e))i.startsWith("_")&&delete e[i];return e}waitForUpdate(){if(!this.chart)throw new Error(Rh);return this.chart.waitForUpdate()}applyTransaction(e){const{chart:i}=this;if(!i)throw new Error(Rh);if(e==null||typeof e!="object")throw new Error("AG Charts - applyTransaction expects a transaction object.");const{add:n,addIndex:s,remove:a,update:o}=e;if(n!=null&&!Array.isArray(n))throw new Error('AG Charts - transaction "add" must be an array.');if(s!=null){if(typeof s!="number"||!Number.isSafeInteger(s)||s<0)throw new Error('AG Charts - transaction "addIndex" must be a safe non-negative integer (0 to 9007199254740991).');if(n==null||n.length===0)throw new Error('AG Charts - transaction "addIndex" requires a non-empty "add" array.')}if(a!=null&&!Array.isArray(a))throw new Error('AG Charts - transaction "remove" must be an array.');if(o!=null&&!Array.isArray(o))throw new Error('AG Charts - transaction "update" must be an array.');return U0.group("AgChartInstance.applyTransaction()",async()=>{if(!i.isDataTransactionSupported()){const r=i.data.deepClone();return r.addTransaction(e),r.commitPendingTransactions(),this.updateDelta({data:r.data})}return U0("transaction",e),this.chart?.applyTransaction(e)})}async download(e){if(!this.chart)throw new Error(Rh);const i=await this.prepareResizedChart(this,this.chart,e);try{i.chart?.download(e?.fileName,e?.fileFormat)}finally{i.destroy()}}async __toSVG(e){if(!this.chart)throw new Error(Rh);const i=await this.prepareResizedChart(this,this.chart,{width:600,height:300,...e});try{return i?.chart?.toSVG()}finally{i?.destroy()}}async getImageDataURL(e){if(!this.chart)throw new Error(Rh);const i=await this.prepareResizedChart(this,this.chart,e);try{return i.chart.getCanvasDataURL(e?.fileFormat)}finally{i.destroy()}}getState(){return this.factoryApi.caretaker.save(...this.getEnabledOriginators())}async setState(e){if(!this.chart)return;const{interactionManager:i,legendManager:n,zoomManager:s}=this.chart.ctx,a=this.getEnabledOriginators(),o=new Set(a);i.isState(2)||(o.has(n)&&o.has(s)?(o.delete(s),await this.setStateOriginators(e,Array.from(o)),await this.setStateOriginators(e,[s])):await this.setStateOriginators(e,a))}resetAnimations(){this.chart?.resetAnimations()}skipAnimations(){this.chart?.skipAnimations()}destroy(){this.releaseChart?(this.releaseChart(),this.releaseChart=void 0):this.chart&&(this.chart.publicApi=void 0,this.chart.destroy()),this.chart=void 0}async prepareResizedChart(e,i,n={}){const s=n.width??i.width??i.ctx.scene.canvas.width,a=n.height??i.height??i.ctx.scene.canvas.height,o=e.getState(),r=i.chartOptions.specialOverrides.document??bp(),l={...i.chartOptions.processedOverrides,container:r.createElement("div"),width:s,height:a};n.width!=null&&n.height!=null&&(l.overrideDevicePixelRatio=1);const c=i.getOptions();if(Ut.isEnterprise()){l.animation={enabled:!1};const S=this.licenseManager?.getWatermarkForegroundConfigForBrowser();S&&(l.foreground=S)}const u={...i.chartOptions.specialOverrides},d={...i.chartOptions.optionMetadata},g=await this.chart?.ctx.dataService.getData(),f=this.factoryApi.create(c,l,u,d,g);o.legend&&this.syncLegend(i,f,o),f.chart?.update(Ct.FULL,{forceNodeDataRefresh:!0}),await f.waitForUpdate(),await f.setState(o);const y={source:"chart-update",sourceDetail:"internal-prepareResizedChart"};f.chart?.ctx.zoomManager.updateZoom(y,i.ctx.zoomManager.getZoom()),f.chart?.update(Ct.FULL,{forceNodeDataRefresh:!0}),await f.waitForUpdate();const x=[];for(const S of i.modulesManager.legends())x.push(S.legend.pagination?.currentPage??0);for(const S of f.chart.modulesManager.legends()){const D=x.shift()??0;S.legend.pagination&&S.legend.pagination.setPage(D)}return f.chart?.update(Ct.FULL,{forceNodeDataRefresh:!0}),await f.waitForUpdate(),f}syncLegend(e,i,n){const s=new Map;for(const[a,o]of e.series.entries()){const r=i.chart?.series[a];r&&s.set(o.id,r.id)}n.legend=n.legend?.map(a=>({...a,seriesId:s.get(a.seriesId??"")??a.seriesId}))}getEnabledOriginators(){if(!this.chart)return[];const{chartOptions:{processedOptions:e,optionMetadata:i},ctx:{annotationManager:n,chartTypeOriginator:s,zoomManager:a,legendManager:o},modulesManager:r}=this.chart,l=[];return"annotations"in e&&e.annotations?.enabled&&l.push(n),i.presetType==="price-volume"&&l.push(s),(e.navigator?.enabled||e.zoom?.enabled)&&l.push(a),r.isEnabled("legend")&&e.legend?.enabled!==!1&&l.push(o),l.push(this.chart.ctx.activeManager),l}async setStateOriginators(e,i){this.factoryApi.caretaker.restore(e,...i),this.chart?.ctx.eventsHub.emit("chart:request-update",{type:Ct.PROCESS_DATA,opts:{forceNodeDataRefresh:!0}}),await this.chart?.waitForUpdate()}};Ib.chartInstances=new WeakMap;T([Pe({oldValue(t){t.destroyed||(t.publicApi=void 0),Ib.chartInstances.delete(t)},newValue(t){t&&(t.publicApi=this,Ib.chartInstances.set(t,this))}})],Ib.prototype,"chart",2);var sV=Ib,Pet=1e3,uL=class jh{constructor(e,i,n,s,a,o=Pet){this.name=e,this.buildItem=i,this.releaseItem=n,this.destroyItem=s,this.maxPoolSize=a,this.cleanupTimeMs=o,this.freePool=[],this.busyPool=new Set}static getPool(e,i,n,s,a){return this.pools.has(e)||this.pools.set(e,new jh(e,i,n,s,a)),this.pools.get(e)}isFull(){return this.freePool.length+this.busyPool.size>=this.maxPoolSize}hasFree(){return this.freePool.length>0}obtain(e){if(!this.hasFree()&&this.isFull())throw new Error("AG Charts - pool exhausted");let i=this.freePool.pop();return i==null?(i=this.buildItem(e),jh.debug(()=>[`Pool[name=${this.name}]: Created instance (${this.freePool.length} / ${this.busyPool.size+1} / ${this.maxPoolSize})`,i])):jh.debug(()=>[`Pool[name=${this.name}]: Re-used instance (${this.freePool.length} / ${this.busyPool.size+1} / ${this.maxPoolSize})`,i]),this.busyPool.add(i),{item:i,release:()=>this.release(i)}}obtainFree(){const e=this.freePool.pop();if(e==null)throw new Error("AG Charts - pool has no free instances");return jh.debug(()=>[`Pool[name=${this.name}]: Re-used instance (${this.freePool.length} / ${this.busyPool.size+1} / ${this.maxPoolSize})`,e]),this.busyPool.add(e),{item:e,release:()=>this.release(e)}}release(e){if(!this.busyPool.has(e))throw new Error("AG Charts - cannot free item from pool which is not tracked as busy.");jh.debug(()=>[`Pool[name=${this.name}]: Releasing instance (${this.freePool.length} / ${this.busyPool.size} / ${this.maxPoolSize})`,e]),this.releaseItem(e),this.busyPool.delete(e),this.freePool.push(e),jh.debug(()=>[`Pool[name=${this.name}]: Returned instance to free pool (${this.freePool.length} / ${this.busyPool.size} / ${this.maxPoolSize})`,e]);const i=Date.now(),n=i+this.cleanupTimeMs*.5;this.cleanPoolTimer&&(this.cleanPoolDue??1/0)[`Pool[name=${this.name}]: Cleaned pool of ${e.length} items (${this.freePool.length} / ${this.busyPool.size} / ${this.maxPoolSize})`])}destroy(){this.cleanPool();for(const e of this.busyPool.values())this.destroyItem(e);this.busyPool.clear()}};uL.pools=new Map;uL.debug=Gt.create(!0,"pool");var zet=uL,xc=Gt.create(!0,"opts"),Jo=class{static licenseCheck(e){if(e.withinStudio)return;let i=this.licenseManager;return this.licenseChecked||(i=po.licenseManager?.(e),this.licenseManager=i,i?.validateLicense(),this.licenseChecked=!0),i}static getLicenseDetails(e){return po.licenseManager?.({}).getLicenseDetails(e)}static getInstance(e){return aV.getInstance(e)}static create(e,i){const n=Gt.check("scene:stats","scene:stats:verbose")?performance.now():void 0;return xc.group("AgCharts.create()",()=>{e=Gt.inDevelopmentMode(()=>za(le(e)))??e,this.licenseCheck(e);const s=this.licenseCheck(e),a=aV.createOrUpdate({userOptions:e,licenseManager:s,optionsMetadata:i,apiStartTime:n});return s?.isDisplayWatermark()&&po.injectWatermark?.(a.chart.ctx.domManager,s.getWatermarkMessage()),a})}static createFinancialChart(e){return xc.group("AgCharts.createFinancialChart()",()=>this.create(e,{presetType:"price-volume"}))}static createGauge(e){return xc.group("AgCharts.createGauge()",()=>this.create(e,{presetType:"gauge-preset"}))}static __createSparkline(e){return xc.group("AgCharts.__createSparkline()",()=>{const{pool:i,...n}=e;return this.create(n,{presetType:"sparkline",pool:i??!0,domMode:"minimal",withDragInterpretation:!1})})}};Jo.licenseChecked=!1;var ll=class ib{static getInstance(e){const i=QD.getInstance(e);return i?sV.chartInstances.get(i):void 0}static createOrUpdate(e){let{proxy:i}=e;const{userOptions:n,licenseManager:s,processedOverrides:a=i?.chart?.chartOptions.processedOverrides??{},specialOverrides:o=i?.chart?.chartOptions.specialOverrides??{},optionsMetadata:r=i?.chart?.chartOptions.optionMetadata??{},deltaOptions:l,data:c,stripSymbols:u=!1,apiStartTime:d}=e,g=po.styles==null?[]:[["ag-charts-enterprise",po.styles]];if(Ut.listModules().next().done)throw new Error(["AG Charts - No modules have been registered.","","Call ModuleRegistry.registerModules(...) with the modules you need before using AgCharts.create().","","See https://www.ag-grid.com/charts/r/module-registry/ for more details."].join(` +`));xc(()=>[">>> AgCharts.createOrUpdate() user options",le(n)]);const{presetType:f}=r;let y=n;Jo.optionsMutationFn&&y&&(y=Jo.optionsMutationFn(le(y,Ab.OPTIONS_CLONE_OPTS_FAST),f),xc(()=>[">>> AgCharts.createOrUpdate() MUTATED user options",le(y)]));const x=this.getPool(r);let S=!1,D,A=i?.chart;A==null&&x?.hasFree()&&(D=x.obtainFree(),A=D.item);const{document:I,window:w,styleContainer:N,skipCss:O,...L}=y??{},R=A?.getChartOptions(),P=new Ab(R,L,a,{...o,document:I,window:w,styleContainer:N,skipCss:O},r,l,u,d);(A==null||Mb(P.processedOptions)!==Mb(A.chartOptions.processedOptions))&&(D?.release(),D=this.getPool(P.optionMetadata)?.obtain(P),D?A=D.item:(S=!0,A=ib.createChartInstance(P,A))),P.optionsGraph&&A.ctx.optionsGraphService.updateCallback((B,F,H)=>P.optionsGraph?.resolvePartial(B,F,H));for(const[B,F]of g)A.ctx.domManager.addStyles(B,F);return A.ctx.fontManager.updateFonts(P.googleFonts),c!=null&&A.ctx.dataService.restoreData(c),i==null?(i=new sV(A,ib.callbackApi,s),i.releaseChart=D?.release):(D||S)&&(i.releaseChart?.(),i.chart=A,i.releaseChart=D?.release),xc.check()&&typeof globalThis.window<"u"&&(globalThis.agChartInstances??(globalThis.agChartInstances={}),globalThis.agChartInstances[A.id]=A),A.queuedUserOptions.push(P.userOptions),A.queuedChartOptions.push(P),A.requestFactoryUpdate(B=>{xc.group(">>>> Chart.applyOptions()",()=>{B.applyOptions(P);const F=B.queuedUserOptions.indexOf(P.userOptions)+1;B.queuedUserOptions.splice(0,F),B.queuedChartOptions.splice(0,F)})}),i}static updateUserDelta(e,i,n){i=le(i,Ab.OPTIONS_CLONE_OPTS_FAST);const s=Ic(i,ib.markRemovedProperties,new Set(["data"]),void 0,void 0,!1);xc(()=>[">>> AgCharts.updateUserDelta() user delta",le(i)]),ib.createOrUpdate({proxy:e,deltaOptions:i,stripSymbols:s,apiStartTime:n})}static createChartInstance(e,i){const n=i?.destroy({keepTransferableResources:!0}),s=Mb(e.processedOptions);return Ut.getChartModule(s).create(e,n)}static getPool(e){if(e.pool===!0)return zet.getPool(e.presetType??"default",this.createChartInstance,this.detachAndClear,this.destroy,1/0)}};ll.caretaker=new H1(oi);ll.callbackApi={caretaker:ll.caretaker,create(t,e,i,n,s){return ll.createOrUpdate({userOptions:t,processedOverrides:e,specialOverrides:i,optionsMetadata:n,data:s})},update(t,e,i,n){return ll.createOrUpdate({userOptions:t,proxy:e,specialOverrides:i,apiStartTime:n})},updateUserDelta(t,e,i){return ll.updateUserDelta(t,e,i)}};ll.markRemovedProperties=(t,e,i,n)=>{let s=n??!1;if(typeof t!="object"||t==null)return s;for(const a of hl(t))t[a]===void 0&&(Object.assign(t,{[a]:Symbol("UNSET")}),s||(s=!0));return s};ll.detachAndClear=t=>t.detachAndClear();ll.destroy=t=>t.destroy();var aV=ll,j={};Ap(j,{APPROXIMATE_THRESHOLD:()=>Z7,AbstractBarSeries:()=>oW,AbstractBarSeriesProperties:()=>Jx,AggregationManager:()=>dA,AnchoredPopover:()=>PW,ApproximateOrdinalTimeScale:()=>zit,Arc:()=>Bl,Axis:()=>JT,AxisGroupZIndexMap:()=>g3,AxisInterval:()=>wp,AxisLabel:()=>Mi,AxisTick:()=>Np,BBox:()=>Tt,Background:()=>tm,BandScale:()=>Rr,BaseToolbar:()=>TL,Caption:()=>Ri,CartesianAxis:()=>Gx,CartesianCrossLine:()=>Xs,CartesianSeries:()=>Wu,CartesianSeriesNodeEvent:()=>mL,CartesianSeriesProperties:()=>jr,CategoryAxis:()=>qx,CategoryScale:()=>Of,Chart:()=>QD,ChartAxes:()=>zD,ChartOptions:()=>Ab,CollapseMode:()=>dW,ColorScale:()=>qf,ContextMenuRegistry:()=>$G,ContinuousScale:()=>ti,DEFAULT_CARTESIAN_DIRECTION_KEYS:()=>hm,DEFAULT_CARTESIAN_DIRECTION_NAMES:()=>um,DEFAULT_POLAR_DIRECTION_KEYS:()=>SW,DEFAULT_POLAR_DIRECTION_NAMES:()=>MW,DOMElementProxy:()=>jS,DOMManager:()=>AG,DataController:()=>l3,DataModel:()=>IN,DataModelSeries:()=>fL,DataSet:()=>Sb,DiscreteTimeAxis:()=>IW,DraggablePopover:()=>zW,DropShadow:()=>zl,ExtendedPath2D:()=>Cf,FillGradientDefaults:()=>Fu,FillImageDefaults:()=>jc,FillPatternDefaults:()=>En,FloatingToolbar:()=>jit,FormatManager:()=>Tf,Group:()=>ee,GroupWidget:()=>IG,HierarchyHighlightState:()=>DW,HierarchyNode:()=>Iit,HierarchySeries:()=>kit,HierarchySeriesProperties:()=>Ku,HighlightManager:()=>qG,HighlightProperties:()=>Hc,HighlightState:()=>QG,Image:()=>dm,InteractionManager:()=>NG,InteractionState:()=>wG,LARGEST_KEY_INTERVAL:()=>YG,Label:()=>Do,LabelStyle:()=>Mo,LayoutElement:()=>XT,Line:()=>mo,LinearScale:()=>np,LogScale:()=>pL,Marker:()=>wn,Menu:()=>Bit,MercatorScale:()=>Cit,NODE_UPDATE_STATE_TO_PHASE_MAPPING:()=>wr,NativeWidget:()=>Nf,NiceMode:()=>p3,Node:()=>Oc,OrdinalTimeScale:()=>du,PHASE_METADATA:()=>Zb,PanToBBoxScalingModeEnum:()=>s3,Path:()=>Tn,PointerEvents:()=>hG,PolarAxis:()=>wL,PolarSeries:()=>CL,QuadtreeNearest:()=>KU,RadialColumnShape:()=>Gr,Range:()=>El,Rect:()=>On,Rotatable:()=>Qf,RotatableText:()=>MG,SMALLEST_KEY_INTERVAL:()=>KG,Scalable:()=>PD,ScalableGroup:()=>gZ,Scene:()=>HD,Sector:()=>Ts,SectorBox:()=>NW,SegmentedPath:()=>gL,Selection:()=>pn,Series:()=>Wx,SeriesItemHighlightStyle:()=>_u,SeriesMarker:()=>la,SeriesNodeEvent:()=>qD,SeriesNodePickMode:()=>C3,SeriesProperties:()=>Fr,SeriesTooltip:()=>Wc,Shape:()=>Ip,SliderWidget:()=>_T,StopProperties:()=>LT,SvgPath:()=>CW,Text:()=>Pa,TimeAxisParentLevel:()=>cm,TimeScale:()=>Ef,Toolbar:()=>Fit,ToolbarButtonWidget:()=>BW,ToolbarWidget:()=>FD,TooltipManager:()=>IM,Transformable:()=>Ti,TransformableGroup:()=>jg,TransformableText:()=>wf,Translatable:()=>Jf,TranslatableGroup:()=>Ds,TranslatableSvgPath:()=>Pit,UnitTimeScale:()=>eu,ZoomManager:()=>r3,accumulativeValueProperty:()=>kN,addHitTestersToQuadtree:()=>aA,adjustLabelPlacement:()=>QU,angleCategoryAxisOptionsDefs:()=>nL,angleNumberAxisOptionsDefs:()=>H3,animationValidation:()=>Hx,annotationCalloutStylesDefs:()=>rU,annotationChannelTextDefs:()=>iU,annotationCommentStylesDefs:()=>lU,annotationCrossLineStyleDefs:()=>BN,annotationDisjointChannelStyleDefs:()=>aU,annotationFibonacciStylesDefs:()=>VN,annotationLineStyleDefs:()=>wM,annotationLineTextDefs:()=>iA,annotationMeasurerStylesDefs:()=>YS,annotationNoteStylesDefs:()=>cU,annotationOptionsDef:()=>lm,annotationParallelChannelStyleDefs:()=>oU,annotationQuickMeasurerStylesDefs:()=>hU,annotationShapeStylesDefs:()=>_N,annotationTextStylesDef:()=>Xx,boxPlotSeriesThemeableOptionsDef:()=>dU,buildResetPathFn:()=>kL,calculateDataDiff:()=>vW,calculateLabelTranslation:()=>Lit,calculateSegments:()=>nA,candlestickSeriesThemeableOptionsDef:()=>pU,checkCrisp:()=>yW,chordSeriesThemeableOptionsDef:()=>gU,clippedRoundRect:()=>FS,collapsedStartingBarPosition:()=>Jb,computeBarFocusBounds:()=>SL,computeMarkerFocusBounds:()=>cA,coneFunnelSeriesThemeableOptionsDef:()=>fU,createDatumId:()=>As,diff:()=>GD,drawCorner:()=>qy,drawMarkerUnitPolygon:()=>tb,findNodeDatumInArray:()=>JG,findQuadtreeMatch:()=>oA,fixNumericExtent:()=>_a,fromToMotion:()=>dn,funnelSeriesThemeableOptionsDef:()=>mU,generateTicks:()=>M3,getColorStops:()=>gG,getCrossLineValue:()=>u3,getItemId:()=>ZD,getItemStyles:()=>YT,getItemStylesPerItemId:()=>G7,getLabelStyles:()=>Rp,getMarkerStyles:()=>hA,getMissCount:()=>VG,getRadialColumnWidth:()=>TW,getShapeFill:()=>k3,getShapeStyle:()=>RN,groupAccumulativeValueProperty:()=>Wd,hasDimmedOpacity:()=>CN,heatmapSeriesThemeableOptionsDef:()=>yU,initialStatePickedOptionsDef:()=>CG,interpolatePoints:()=>Cb,isTooltipValueMissing:()=>dp,keyProperty:()=>uu,makeSeriesTooltip:()=>zp,mapLineBackgroundSeriesThemeableOptionsDef:()=>vU,mapLineSeriesThemeableOptionsDef:()=>xU,mapMarkerSeriesThemeableOptionsDef:()=>SU,mapShapeBackgroundSeriesThemeableOptionsDef:()=>DU,mapShapeSeriesThemeableOptionsDef:()=>MU,markerEnabled:()=>AL,markerFadeInAnimation:()=>ix,markerSwipeScaleInAnimation:()=>DL,midpointStartingBarPosition:()=>vit,minimumTimeAxisDatumGranularity:()=>$U,motion:()=>Uit,nightingaleSeriesThemeableOptionsDef:()=>AU,normaliseGroupTo:()=>jD,ohlcSeriesThemeableOptionsDef:()=>bU,ordinalTimeAxisOptionsDefs:()=>Zg,pairUpSpans:()=>kb,pathFadeInAnimation:()=>WN,pathMotion:()=>EM,pathSwipeInAnimation:()=>IL,plotAreaPathFill:()=>bW,plotInterpolatedLinePathStroke:()=>XS,plotLinePathStroke:()=>xL,predictCartesianFinancialAxis:()=>Bet,predictCartesianNonPrimitiveAxis:()=>Zx,prepareAreaFillAnimationFns:()=>xW,prepareBarAnimationFunctions:()=>tx,prepareLinePathPropertyAnimation:()=>vL,processedDataIsAnimatable:()=>rr,pyramidSeriesThemeableOptionsDef:()=>IU,radarAreaSeriesThemeableOptionsDef:()=>kU,radarLineSeriesThemeableOptionsDef:()=>CU,radialBarSeriesThemeableOptionsDef:()=>wU,radialColumnSeriesThemeableOptionsDef:()=>NU,radiusCategoryAxisOptionsDefs:()=>G3,radiusNumberAxisOptionsDefs:()=>j3,rangeAreaSeriesThemeableOptionsDef:()=>TU,rangeBarSeriesThemeableOptionsDef:()=>LU,resetAxisLabelSelectionFn:()=>CM,resetBarSelectionsDirect:()=>LM,resetBarSelectionsFn:()=>ex,resetLabelFn:()=>Pp,resetMarkerFn:()=>rA,resetMarkerPositionFn:()=>nx,resetMarkerSelectionsDirect:()=>lA,resetMotion:()=>Qn,sankeySeriesThemeableOptionsDef:()=>OU,sectorBox:()=>kW,seriesLabelFadeInAnimation:()=>Wi,seriesLabelFadeOutAnimation:()=>$S,stackCartesianSeries:()=>ZU,standaloneChartOptionsDefs:()=>wq,sunburstSeriesThemeableOptionsDef:()=>EU,toHierarchyHighlightString:()=>sb,toHighlightString:()=>em,topologyChartOptionsDefs:()=>Cq,trailingAccumulatedValueProperty:()=>A7,treemapSeriesThemeableOptionsDef:()=>RU,updateClipPath:()=>OM,updateLabelNode:()=>qU,upsertNodeDatum:()=>ML,userInteraction:()=>sQ,validateCrossLineValue:()=>d3,valueProperty:()=>Ci,visibleRangeIndices:()=>Qb,waterfallSeriesThemeableOptionsDef:()=>PU});function oV(t){return t.isReversed()!==t.range[1]oV(c?e:i)?c?n.width+g:n.height+f:c?-g:-f,x=()=>oV(c?e:i)?c?-g:-f:c?n.width+g:n.height+f;return(D=>{const A=[];let I=-1;for(let w=0;wU.start!=null)?.start;let F=r.convert(O??P)-d,H=r.convert(L??B)+2*d;const $=O!=null&&Number.isNaN(F),Y=L!=null&&Number.isNaN(H);$||Y||(Number.isNaN(F)&&(F=y()),Number.isNaN(H)&&(H=x()),L!=null&&(I=w),A.push({start:F,stop:H,...R}))}return A})(t.segments).map(({stop:D,start:A,...I})=>{const w=c?A:-g,N=c?-f:A,O=c?D+u:n.width+g,L=c?n.height+f:D+u;return{clipRect:{x0:w,y0:N,x1:O,y1:L},...I}})}var HU=new Set(["time","timestamp","date","datetime"]);function dL(t,e,i,{allowPrimitiveTypes:n=!0}={}){if(t!==z.X&&t!==z.Y||!Bt(e))return;const s=jU(t,i);if(s==null||!(s in e))return;const a=e[s],o=GU(t,i),r=Vet(a);if(r)return{type:r,position:o};const l=_et(s,a);if(l)return{type:l,position:o};if(n)return typeof a=="number"?{type:ie.NUMBER,position:o}:{type:ie.CATEGORY,position:o}}function Zx(t,e,i){return dL(t,e,i,{allowPrimitiveTypes:!1})}function Bet(t,e,i){if(t!==z.X||!Bt(e))return;const n=jU(t,i);if(n==null||!(n in e))return;const s=e[n],a=GU(t,i),o=Fet(n,s);if(o)return{type:o,position:a};if(zi(s))return{type:"category",position:a}}function Vet(t){if(qt(t)&&t.every(e=>zi(e)||e===null))return ie.GROUPED_CATEGORY}function _et(t,e){if(aa(e)||HU.has(t)&&Je(e))return ie.TIME}function Fet(t,e){if(aa(e)||HU.has(t)&&Je(e))return ie.ORDINAL_TIME}function jU(t,e){if(t===z.X&&"xKey"in e)return e.xKey;if(t===z.Y&&"yKey"in e)return e.yKey}function GU(t,e){return"direction"in e&&e.direction==="horizontal"?t===z.X?he.LEFT:he.BOTTOM:t===z.X?he.BOTTOM:he.LEFT}var Het={2:(t,e)=>Math.log2(e),[Math.E]:(t,e)=>Math.log(e),10:(t,e)=>Math.log10(e)},jet=(t,e)=>Math.log(e)/Math.log(t);function _C(t,e,i){const n=Math.min(...e),s=Het[t]??jet;return n>=0?s(t,i):-s(t,-i)}var Get={[Math.E]:(t,e)=>Math.exp(e),10:(t,e)=>e>=0?10**e:1/10**-e},Uet=(t,e)=>t**e;function FC(t,e,i){const n=Math.min(...e),s=Get[t]??Uet;return n>=0?s(t,i):-s(t,-i)}var pL=class UU extends ti{constructor(e=[1,10],i=[0,1]){super(e,i),this.type="log",this.defaultClamp=!0,this.base=10,this.log=n=>_C(this.base,this.domain,n),this.pow=n=>FC(this.base,this.domain,n)}static is(e){return e instanceof UU}transform(e){const[i,n]=xi(this.domain);return i>=0!=n>=0?Number.NaN:i>=0?Math.log(e):-Math.log(-e)}transformInvert(e){const[i,n]=xi(this.domain);return i>=0!=n>=0?Number.NaN:i>=0?Math.exp(e):-Math.exp(-e)}toDomain(e){return e}niceDomain(e,i=this.domain){if(i.length<2)return[];const{base:n}=this,[s,a]=i,o=s>a?Math.ceil:Math.floor,r=s>a?Math.floor:Math.ceil,l=FC(n,i,o(_C(n,i,s))),c=FC(n,i,r(_C(n,i,a)));return[e.nice[0]?l:i[0],e.nice[1]?c:i[1]]}ticks({interval:e,tickCount:i=ti.defaultTickCount},n=this.domain,s){if(!n||n.length<2||i<1)return;const a=this.base,[o,r]=n,l=Math.min(o,r),c=Math.max(o,r);let u=this.log(l),d=this.log(c);if(e){const S=O=>O>=l&&O<=c,D=Math.min(Math.abs(e),Math.abs(d-u)),{ticks:A,count:I,firstTickIndex:w}=Df(u,d,D,s),N=A.map(this.pow).filter(S);if(!lp(N.length,this.getPixelRange()))return{ticks:N,count:I,firstTickIndex:w}}if(!S4(a)||d-u>=i){const S=Math.min(d-u,i),{ticks:D,count:A,firstTickIndex:I}=Xf(u,d,S,void 0,void 0,s);return{ticks:D.map(this.pow),count:A,firstTickIndex:I}}const g=[],f=l>0;u=Math.floor(u)-1,d=Math.round(d)+1;const y=Tc(this.range)/i;let x=1/0;for(let S=u;S<=d;S++){const D=this.convert(this.pow(S+1));for(let A=1;A=y&&L>=y;w>=l&&w<=c&&(A===1||R||g.length===0)&&(g.push(w),x=N)}}return dG(g,f,s)}},gL=class extends Tn{constructor(){super(...arguments),this.segmentPath=new Tn}drawPath(t){if(!this.segments||this.segments.length===0){super.drawPath(t);return}t.save();const e=Ob(),i=new e;hf(i,{x0:0,y0:0,x1:t.canvas.width,y1:t.canvas.height},!1);for(const s of this.segments)hf(i,s.clipRect);t.clip(i),super.drawPath(t),t.restore();const{segmentPath:n}=this;n.setProperties({opacity:this.opacity,visible:this.visible,lineCap:this.lineCap,lineJoin:this.lineJoin,pointerEvents:this.pointerEvents});for(const{clipRect:s,fill:a,stroke:o,...r}of this.segments){t.save(),n.path=this.path,n.setProperties(r),n.fill=this.fill==null?"none":a,n.stroke=this.stroke==null?"none":o;const l=new e;hf(l,s),t.clip(l),n.drawPath(t),t.restore()}}};T([TD()],gL.prototype,"segments",2);function hf(t,{x0:e,y0:i,x1:n,y1:s},a=!0){const o=Math.min(e,n),r=Math.min(i,s),l=Math.max(e,n),c=Math.max(i,s);t.moveTo(o,r),a?(t.lineTo(l,r),t.lineTo(l,c),t.lineTo(o,c)):(t.lineTo(o,c),t.lineTo(l,c),t.lineTo(l,r)),t.closePath()}var WU=class extends Ds{constructor(){super(...arguments),this.segments=[],this.scalablePath=new(PD(Tn))}renderInContext(t){if(!this.visible)return;const{ctx:e}=t;if(!this.segments||this.segments?.length===0)return super.renderInContext(t);e.save();const i=Ob(),n=new i;hf(n,{x0:0,y0:0,x1:e.canvas.width,y1:e.canvas.height},!1);for(const a of this.segments)hf(n,a.clipRect);e.clip(n);for(const a of this.children())a.visible&&a.render(t);e.restore();const{scalablePath:s}=this;for(const{clipRect:a,...o}of this.segments){e.save();const r=new i;hf(r,a),e.clip(r),s.setProperties(o);for(const l of this.children())!l.visible||!(l instanceof Tn)||(s.path=l.path,s.setProperties({opacity:l.opacity,lineCap:l.lineCap,lineJoin:l.lineJoin,...pZ(l)&&{scalingX:l.scalingX,scalingY:l.scalingY,scalingCenterX:l.scalingCenterX,scalingCenterY:l.scalingCenterY}}),s.render(t));e.restore()}}};T([TD()],WU.prototype,"segments",2);var KU=class{constructor(t,e,i){this.root=new Yet(t,e,i)}clear(t){this.root.clear(t)}addValue(t,e){const i={hitTester:t,value:e,distanceSquared:(n,s)=>t.distanceSquared(n,s)};this.root.addElem(i)}find(t,e){const i={best:{nearest:void 0,distanceSquared:1/0}};return this.root.find(t,e,i),i.best}},Wet=class{constructor(t,e,i,n){this.nw=t,this.ne=e,this.sw=i,this.se=n}addElem(t){this.nw.addElem(t),this.ne.addElem(t),this.sw.addElem(t),this.se.addElem(t)}find(t,e,i){this.nw.find(t,e,i),this.ne.find(t,e,i),this.sw.find(t,e,i),this.se.find(t,e,i)}},Ket=class{constructor(t,e,i){this.capacity=t,this.maxdepth=e,this.boundary=i??Tt.NaN,this.elems=[],this.subdivisions=void 0}clear(t){this.elems.length=0,this.boundary=t,this.subdivisions=void 0}addElem(t){this.addCondition(t)&&(this.subdivisions===void 0?this.maxdepth===0||this.elems.length1){const o=s>a?Math.ceil:Math.floor,r=s>a?Math.floor:Math.ceil,l=4;for(let c=0;cMath.min(o.minTimeInterval()??1/0,a),1/0);return Number.isFinite(s)?zx(s):XU(t,e,i,n)?.unit}function XU(t,e,i,n){let s=1/0,a=-1/0,o,r=0;const l=[];for(const g of t){if(!g.visible)continue;const{extent:f}=DD(g.getDomain(e));if(f.length===0)continue;const y=f[0].valueOf(),x=f.at(-1).valueOf();l.push(y,x),s=Math.min(s??1/0,y,x),a=Math.max(a??-1/0,y,x);const S=Math.abs(x-y);if(S===0)continue;const D=g.dataCount();if(r=Math.max(r,D),D<=1)continue;const A=S/(D-1);o=Math.min(o??1/0,A)}if(s=Math.min(s,i?.valueOf()??1/0,n?.valueOf()??1/0),a=Math.max(a,i?.valueOf()??-1/0,n?.valueOf()??-1/0),!Number.isFinite(s)||!Number.isFinite(a))return;o??(o=Math.abs(a-s)),o=Math.min(o,$et(l));const c=zx(o);let u=o/Ms(c);r<=2?u=Math.floor(u):u=Math.round(u),u=Math.max(u,1);const d=u===1?void 0:La(c,s);return{unit:c,step:u,epoch:d}}function $et(t){t.sort((i,n)=>i-n);let e=1/0;for(let i=1;i0&&(e=Math.min(e,Math.abs(s-n)))}return e}var fL=class extends Wx{constructor({clipFocusBox:t,categoryKey:e,...i}){super(i),this.categoryKey=e,this.clipFocusBox=t??!0}dataCount(){return this.processedData?.dataSources?.get(this.id)?.data?.length??0}invalidDataCount(){return this.processedData?.invalidDataCount?.get(this.id)??0}missingDataCount(){return this.dataModel?.resolveMissingDataCount(this)??0}get hasData(){return Math.max(0,this.dataCount()-this.invalidDataCount()-this.missingDataCount())>0}getScaleInformation({xScale:t,yScale:e}){const i=ti.is(t),n=ti.is(e);return{isContinuousX:i,isContinuousY:n,xScaleType:t?.type,yScaleType:e?.type}}getModulePropertyDefinitions(){const t=this.axes[z.X]?.scale,e=this.axes[z.Y]?.scale;return this.moduleMap.mapModules(i=>i.getPropertyDefinitions(this.getScaleInformation({xScale:t,yScale:e}))).flat()}async requestDataModel(t,e,i){i.props.push(...this.getModulePropertyDefinitions());const{dataModel:n,processedData:s}=await t.request(this.id,e??Sb.empty(),i);return this.dataModel=n,this.processedData=s,this.events.emit("data-processed",{dataModel:n,processedData:s}),{dataModel:n,processedData:s}}isProcessedDataAnimatable(){const{processedData:t,ctx:e}=this;if(!t)return!1;const i=this.getNodeData();if(i!=null&&i.length>e.animationManager.maxAnimatableItems)return!1;const n=t.reduced?.animationValidation;if(!n)return!0;const{orderedKeys:s,uniqueKeys:a}=n;return s&&a}checkProcessedDataAnimatable(){this.isProcessedDataAnimatable()||this.ctx.animationManager.skipCurrentBatch()}findNodeDatum(t){return JG(t,this.getNodeData(),this.data?.dataIdKey)}pickFocus(t){const e=this.getNodeData();if(e===void 0||e.length===0)return;const i=this.computeFocusDatumIndex(t,e);if(i===void 0)return;const{clipFocusBox:n}=this,s=e[i],a={...t,datumIndex:i},o=this.computeFocusBounds(a);if(o!==void 0)return{bounds:o,clipFocusBox:n,datum:s,datumIndex:i}}pickNodesExactShape(t){const e=super.pickNodesExactShape(t);return e.sort((i,n)=>i.datumIndex-n.datumIndex),e}isDatumEnabled(t,e){const{missing:i=!1,enabled:n=!0,focusable:s=!0}=t[e];return!i&&n&&s}computeFocusDatumIndex(t,e){const i=(o,r)=>{for(;o>=0&&!this.isDatumEnabled(e,o);)o+=r;return o===-1?void 0:o},n=(o,r)=>{for(;o0?s=n(a,t.datumIndexDelta):s=n(a,1)??i(a,-1),s===void 0?t.datumIndexDelta===0?void 0:t.datumIndex-t.datumIndexDelta:s}dataModelPropertyIsKey(t){const{processedData:e}=this;return e?e.defs.keys.some(i=>i.id===t&&i.idsMap?.get(this.id)?.has(t)===!0):!1}keysOrValues(t){const{dataModel:e,processedData:i}=this;return!e||!i?[]:this.dataModelPropertyIsKey(t)?e.resolveKeysById(this,t,i):e.resolveColumnById(this,t,i)}sortOrder(t){const{dataModel:e,processedData:i}=this;if(!(!e||!i))return this.dataModelPropertyIsKey(t)?e.getKeySortOrder(this,t,i):e.getColumnSortOrder(this,t,i)}getCategoryKey(){return this.categoryKey}getCategoryValue(t){const{processedData:e,dataModel:i}=this,n=this.getCategoryKey();return!e||!i||!n||(e.invalidData?.get(this.id)?.[t]??!1)?void 0:this.keysOrValues(n)[t]}datumIndexForCategoryValue(t){const{processedData:e,dataModel:i}=this,n=this.getCategoryKey();if(!e||!i||!n)return;t=t.valueOf();const s=e.invalidData?.get(this.id),a=this.keysOrValues(n);for(let o=0;othis.nodeFactory()),this.highlightLabelSelection=pn.select(this.highlightLabelGroup,Pa),this.annotationSelections=new Set,this.seriesBelowStackContext=void 0,this.debug=Gt.create(),!r||!l)throw new Error(`Unable to initialise series type ${this.type}`);this.opts={pathsPerSeries:t,pathsZIndexSubOrderOffset:e,propertyKeys:r,propertyNames:l,animationResetFns:o,animationAlwaysUpdateSelections:n,animationAlwaysPopulateNodeData:s,datumSelectionGarbageCollection:i,segmentedDataNodes:a},this.paths=t.map(u=>new gL({name:`${this.id}-${u}`})),this.datumSelection=pn.select(this.dataNodeGroup,()=>this.nodeFactory(),i),this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:u=>this.animateEmptyUpdateReady(u)},reset:"empty",skip:"ready",disable:"disabled"},ready:{updateData:"waiting",clear:"clearing",highlight:u=>this.animateReadyHighlight(u),resize:u=>this.animateReadyResize(u),reset:"empty",skip:"ready",disable:"disabled"},waiting:{update:{target:"ready",action:u=>{this.ctx.animationManager.isSkipped()?this.resetAllAnimation(u):this.animateWaitingUpdateReady(u)}},reset:"empty",skip:"ready",disable:"disabled"},disabled:{update:u=>this.resetAllAnimation(u),reset:"empty"},clearing:{update:{target:"empty",action:u=>this.animateClearingUpdateEmpty(u)},reset:"empty",skip:"ready"}},this.checkProcessedDataAnimatable.bind(this)),this.cleanup.register(this.ctx.eventsHub.on("legend:item-click",u=>this.onLegendItemClick(u)),this.ctx.eventsHub.on("legend:item-double-click",u=>this.onLegendItemDoubleClick(u)))}get contextNodeData(){return this._contextNodeData}getNodeData(){return this.contextNodeData?.nodeData}getKeyAxis(t){if(this.shouldFlipXY()){if(t===z.X)return this.properties.yKeyAxis;if(t===z.Y)return this.properties.xKeyAxis}if(t===z.X)return this.properties.xKeyAxis;if(t===z.Y)return this.properties.yKeyAxis}attachSeries(t,e,i){super.attachSeries(t,e,i),this.attachPaths(this.paths)}detachSeries(t,e,i){super.detachSeries(t,e,i),this.detachPaths(this.paths)}updatedDomains(){this.animationState.transition("updateData")}attachPaths(t){for(const e of t)this.contentGroup.appendChild(e)}detachPaths(t){for(const e of t)e.remove()}renderToOffscreenCanvas(){const t=this.getNodeData();return t!=null&&t.length>GN}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"?this.animationState.transition("skip"):t==="disabled"&&this.animationState.transition("disable")}destroy(){super.destroy(),this._contextNodeData=void 0}isSeriesHighlighted(t){if(!this.properties.highlight.enabled)return!1;const{series:e,legendItemName:i}=t??{},{legendItemName:n}=this.properties;return e===this||n!=null&&n===i}strokewidthChange(){const t=("strokeWidth"in this.properties&&this.properties.strokeWidth)??0,e=this.properties.highlight.highlightedSeries.strokeWidth??t,i=this.properties.highlight.highlightedItem?.strokeWidth??t;return t>i||e>i}update({seriesRect:t}){const{_contextNodeData:e}=this,i=this.checkResize(t),n=this.updateHighlightSelection(),s=this;this.contentGroup.batchedUpdate(function(){const r=s.updateSelections(),l=s.contextNodeData?.segments;s.opts.segmentedDataNodes?s.dataNodeGroup.segments=l??s.dataNodeGroup.segments:s.dataNodeGroup.segments=void 0,s.updateNodes(n,i||r)});const a=this.getAnimationData(t,e);a&&(i&&this.animationState.transition("resize",a),this.animationState.transition("update",a),this.processedDataUpdated=!1)}createStackContext(){}canIncrementallyUpdateNodes(t=!1){if(this.contextNodeData?.nodeData==null)return!1;const{processedData:i}=this;return i?i.changeDescription!=null||!rr(i)||t:!1}trimIncrementalNodeArray(t,e){e{this.labelSelection=this.updateLabelSelection({labelData:a,labelSelection:e})??e})}getShapeFillBBox(){const{axes:t}=this,e=t[z.X],i=t[z.Y],[n,s]=xi(e?.range??[0,1]),[a,o]=xi(i?.range??[0,1]),r=Lb(this.getSeriesDomain(z.X)),l=[e?.scale.convert(r.at(0)),e?.scale.convert(r.at(-1))],c=Lb(this.getSeriesDomain(z.Y)),u=[i?.scale.convert(c.at(0)),i?.scale.convert(c.at(-1))],[d,g]=xi(l),[f,y]=xi(u);return{axis:new Tt(n,a,s-n,o-a),series:new Tt(d,f,g-d,y-f)}}updateNodes(t,e){const{highlightSelection:i,datumSelection:n}=this,s=!this.ctx.animationManager.isSkipped(),a=this.visible&&this._contextNodeData!=null;this.contentGroup.visible=s||a,this.annotationGroup.visible=s||a,this.highlightGroup.visible=(s||a)&&t,this.updateDatumStyles({datumSelection:i,isHighlight:!0});const o=this.ctx.chartService.highlight?.drawingMode??"overlay";this.updateDatumNodes({datumSelection:i,isHighlight:!0,drawingMode:o}),this.highlightLabelGroup.batchedUpdate(()=>{this.updateLabelNodes({labelSelection:this.highlightLabelSelection,isHighlight:!0})}),this.animationState.transition("highlight",i),this.ctx.eventsHub.emit("highlight:selection-updated",{highlightSelection:i});const{dataNodeGroup:r,labelSelection:l,paths:c,labelGroup:u}=this,{itemId:d}=this.contextNodeData??{};if(this.updatePathNodes({itemId:d,paths:c,visible:a,animationEnabled:s}),r.visible=s||a,u.visible=a,!r.visible)return;this.hasItemStylers()&&this.updateDatumStyles({datumSelection:n,isHighlight:!1});const g=this.strokewidthChange()||this.hasChangesOnHighlight;(e||g)&&(this.updateDatumNodes({datumSelection:n,isHighlight:!1,drawingMode:"overlay"}),this.usesPlacedLabels||this.labelGroup.batchedUpdate(()=>{this.updateLabelNodes({labelSelection:l,isHighlight:!1})}))}getHighlightData(t,e){return e?[{...e}]:void 0}getHighlightLabelData(t,e){const i=t.filter(n=>n.datum===e.datum&&n.itemId===e.itemId);return i.length===0?void 0:i}updateHighlightSelection(){const{highlightSelection:t,highlightLabelSelection:e,_contextNodeData:i}=this;if(!i)return!1;const n=this.ctx.highlightManager?.getActiveHighlight(),a=this.isSeriesHighlighted(n)&&n?.datum?n:void 0;if(a==null)return!1;const{nodeData:o,labelData:r}=i,l=this.getHighlightData(o,a);this.highlightSelection=this.updateHighlightSelectionItem({items:l,highlightSelection:t});const c=this.getHighlightLabelData(r,a)??[];return this.highlightLabelSelection=this.updateLabelSelection({labelData:c,labelSelection:e})??e,!0}markQuadtreeDirty(){this.quadtree=void 0}*datumNodesIter(){for(const{node:t}of this.datumSelection)t.datum.missing!==!0&&(yield t)}getQuadTree(){if(this.quadtree===void 0){const t=this.ctx.scene?.canvas??{width:0,height:0},e=new Tt(0,0,t.width,t.height);this.quadtree=new KU(100,10,e),this.initQuadTree(this.quadtree)}return this.quadtree}initQuadTree(t){}pickViewportFocus(t){if(this.contextNodeData?.nodeData===void 0)return;const{otherIndex:e,where:i,hoverRect:n}=t;if(i==="data-start")return this.pickFocus({datumIndex:0,datumIndexDelta:0,otherIndex:e,otherIndexDelta:0});if(i==="data-end"){const A=this.contextNodeData.nodeData.length-1;return this.pickFocus({datumIndex:A,datumIndexDelta:0,otherIndex:e,otherIndexDelta:0})}let s,a=0,o,r=this.contextNodeData.nodeData.length-1;const l=this.axes.x?.reverse??!1;function c(A){const I=n.x+n.width;return A.x+A.width<=I}function u(A){return A.x>=n.x}function d(A,I){const w=zN(I);A(w)?(s=I,r=o-1):a=o+1}function g(A,I){const w=zN(I);A(w)?(s=I,a=o+1):r=o-1}const f={"viewport-start + true":{predicate:c,iterator:d},"viewport-start + false":{predicate:u,iterator:d},"viewport-end + true":{predicate:u,iterator:g},"viewport-end + false":{predicate:c,iterator:g}},{predicate:y,iterator:x}=f[`${i} + ${l}`];let S=0;const D=Math.ceil(Math.log2(this.contextNodeData.nodeData.length))+1;for(;a<=r&&S<=D;){o=Math.floor((a+r)/2);const A=this.pickFocus({datumIndex:o,datumIndexDelta:0,otherIndex:e,otherIndexDelta:0});if(A===void 0){pt.error(`pickFocus (datumIndex: ${o}) failed`);return}x(y,A),S++}return s}pickNodeDataExactShape(t){const{x:e,y:i}=t,{dataNodeGroup:n}=this,s=n.pickNodes(e,i).filter(a=>a.datum.missing!==!0);if(s.length!==0)return s.map(o=>o.datum)}pickModulesExactShape(t){for(const e of this.moduleMap.modules()){const{datum:i}=e.pickNodeExact(t)??{};if(i!=null&&i?.missing!==!0)return[i]}}pickNodesExactShape(t){const e=super.pickNodesExactShape(t);return e.length!==0?e:this.pickNodeDataExactShape(t)??this.pickModulesExactShape(t)??[]}pickNodeDataClosestDatum(t){const{x:e,y:i}=t,{axes:n,_contextNodeData:s}=this;if(!s)return;const a=n[z.X],o=n[z.Y],r={x:e,y:i};let l=1/0,c;for(const u of s.nodeData){const{point:{x:d=Number.NaN,y:g=Number.NaN}={}}=u;if(Number.isNaN(d)||Number.isNaN(g)||!(a?.inRange(d)&&o?.inRange(g)))continue;const y=Math.max((r.x-d)**2+(r.y-g)**2,0);yy.isCategoryLike()).map(y=>y.direction);if(e&&c.length===0)return;const[u=z.X]=c,d=[i,n];u!==z.X&&d.reverse();const g=[1/0,1/0];let f;for(const y of a.nodeData){const{x=Number.NaN,y:S=Number.NaN}=y.point??y.midPoint??{};if(Number.isNaN(x)||Number.isNaN(S)||y.missing===!0)continue;const D=[r?.inRange(x,1),l?.inRange(S,1)];if(u!==z.X&&D.reverse(),!D[0]||!o&&!D[1])continue;const A=[x,S];u!==z.X&&A.reverse();let I=!0;for(let w=0;wg[w]){I=!1;break}else N{const u=i?.[c]??c;return this.xCoordinateRange(a[u],o,u)});return rthis.keysOrValues(y));let g=1/0,f=-1/0;for(const[y,x]of c.entries()){const[S,D]=this.xCoordinateRange(x,0,y);if(!(Dl))for(let A=0;Af?[Number.NaN,Number.NaN]:[g,f]}domainForClippedRange(t,e,i){const{processedData:n,dataModel:s,axes:a}=this,o=t===z.X?z.Y:z.X,r=Xet(a[o]);if(!r)return e.flatMap(x=>s.getDomain(this,x,"value",n).domain);const l=this.keysOrValues(i),c=this.sortOrder(i);if(c!=null){const x=Zet(c,l.length,r,S=>l[S]);return s.getDomainBetweenRange(this,e,x,n)}const u=e.map(x=>this.keysOrValues(x)),d=r[0].valueOf(),g=r[1].valueOf();let f=1/0,y=-1/0;for(const[x,S]of l.entries()){const D=S.valueOf();if(!(Dg))for(let A=0;Ay?[Number.NaN,Number.NaN]:[f,y]}zoomFittingVisibleItems(t,e,i,n,s){const{dataModel:a,processedData:o}=this;if(!a||!o)return;const r=this.axes[z.X];if(n!=null)return;const l=this.sortOrder(t);if(l==null)return;const c=this.keysOrValues(t);if(s>c.length)return{x:[0,1],y:void 0};const u=r.scale,d=u.range;u.range=[0,1];let[g,f]=this.visibleRangeIndices(t,i,void 0,{sortOrder:l});f-=1;const y=0;this.xCoordinateRange(c[g],y,g)[0]i[1]&&(f-=1);let x;if(Math.abs(f-g)>=s-1)x=i;else{const S=(i[0]+i[1])/2;for(;Math.abs(f-g)0||fa.resolveColumnById(this,L,o)),c=this.shouldFlipXY(),u=c?this.axes[z.Y]:this.axes[z.X],d=c?this.axes[z.X]:this.axes[z.Y],g=c?n??[0,1]:i,f=c?i:n??[0,1];if(n==null){const L=this.sortOrder(t);if(L!=null){const R=u.scale,P=R.range;R.range=[0,1];const B=this.keysOrValues(t);let[F,H]=this.visibleRangeIndices(t,g,void 0,{sortOrder:L});if(H-=1,Hg[1]&&(H-=1);const Y=Math.abs(H-F)+1;return R.range=P,Y}}const y=(L,R,P)=>L[0]+(P-R[0])/(R[1]-R[0])*(L[1]-L[0]),x=u.range.toSorted(),S=d.range.toSorted(),D=y(x,u.visibleRange,g[0]),A=y(x,u.visibleRange,g[1]),I=y(S,d.visibleRange,Math.min(...f)),w=y(S,d.visibleRange,Math.max(...f)),N=Math.round((g[0]+(g[1]-g[0])/2)*r.length),O=0;return j7(0,r.length-1,N,s,L=>{const[R,P]=this.xCoordinateRange(r[L],O,L),[B,F]=this.yCoordinateRange(l.map(H=>H[L]),O,L);return!Ae(R)||!Ae(P)||!Ae(B)||!Ae(F)?!1:R>=D&&P<=A&&B>=I&&F<=w})}minTimeInterval(){let t;try{t=this.keysOrValues("xValue")}catch{}if(t==null||t.length>1e3)return;let e=1/0,i=t[0],n;for(let s=1;st.convert(n),domain:[i[0],i[1]],range:[e[0],e[1]]}}else if(t instanceof ti){const{range:e,domain:i}=t;return{type:"continuous",domain:[i[0],i[1]],range:[e[0],e[1]]}}else if(t instanceof Rr){if(t instanceof eu){const e=t.getLinearParams(),i=t.getBandCountForUpdate();if(e!=null&&i>0)return{type:"category",variant:"unit-time",firstBandTime:e.firstBandTime,lastBandTime:e.firstBandTime+(i-1)*e.intervalMs,bandCount:i,intervalMs:e.intervalMs,inset:t.inset,step:t.step}}return{type:"category",domain:t.domain,inset:t.inset,step:t.step}}}calculateScaling(){const t={};for(const e of Object.values(z)){const i=this.axes[e];if(!i)continue;const n=this.getScaling(i.scale);n!=null&&(t[e]=n)}return t}};function Xet(t){let e,i;if((t instanceof Ao||t instanceof Pl)&&({min:e,max:i}=t),!(e==null&&i==null))return e??(e=-1/0),i??(i=1/0),[e,i]}function Zet(t,e,i,n){const s=i[0].valueOf(),a=i[1].valueOf();let o=vf(0,e-1,l=>{const c=t===1?l:e-l,u=n(c)?.valueOf();return!Number.isFinite(u)||u>=s}),r=Dr(0,e-1,l=>{const c=t===1?l:e-l,u=n(c)?.valueOf();return!Number.isFinite(u)||u<=a});return o==null||r==null?[0,0]:(t===-1&&([o,r]=[e-r,e-o]),o=Math.max(o,0),r=Math.min(r+1,e),[o,r])}function ZU(t){const e=new Map;for(const i of t){if(!(i instanceof Wu))continue;const s=(i.seriesGrouping?.stackCount??0)>0?i.seriesGrouping?.groupIndex:void 0;if(s==null){i.seriesBelowStackContext=void 0,i.createStackContext();continue}const a=`${i.type}-${s}`;let o=e.get(a);o==null&&(o=[],e.set(a,o)),o.push(i)}for(const i of e.values()){i.sort((s,a)=>(s.seriesGrouping?.stackIndex??0)-(a.seriesGrouping?.stackIndex??0));let n;for(const s of i)s.seriesBelowStackContext=n,n=s.createStackContext()}}function Rp(t,e,i,n,s,a,o=["series",`${t.declarationOrder}`,"label"]){if(t.visible&&n.itemStyler){const r=t.getHighlightStateString(a,s||e!=null&&a?.series===e.series&&a?.datumIndex===e.datumIndex,e?.datumIndex),l=typeof e?.datumIndex=="number"?e.datumIndex:e?.itemId,c={border:n.border,color:n.color,cornerRadius:n.cornerRadius,datum:e?.datum,enabled:n.enabled,fill:n.fill,fillOpacity:n.fillOpacity,fontFamily:n.fontFamily,fontSize:n.fontSize,fontStyle:n.fontStyle,fontWeight:n.fontWeight,itemId:l,itemType:e?.itemType,seriesId:t.id,padding:n.padding,highlightState:r},u=t.ctx.optionsGraphService.resolvePartial(o,t.cachedCallWithContext(n.itemStyler,{...i,...c}),{pick:!1})??{};return Et(u,c)}return n}function qU(t,e,i,n,s,a,o){if(t.visible&&n.enabled&&s){const r=Rp(t,e.datum,i,n,a,o);e.visible=!0,e.x=s.x,e.y=s.y,e.text=s.text,e.fill=r.color,e.setAlign(s),e.setFont(r),e.setBoxing(r)}else e.visible=!1}var qet={"inside-start":{inside:!0,direction:-1,textAlignment:1},"inside-end":{inside:!0,direction:1,textAlignment:-1},"outside-start":{inside:!1,direction:-1,textAlignment:-1},"outside-end":{inside:!1,direction:1,textAlignment:1}};function QU({isUpward:t,isVertical:e,placement:i,spacing:n=0,rect:s}){let a=s.x+s.width/2,o=s.y+s.height/2,r="center",l="middle";if(i!=="inside-center"){const c=(t?1:-1)*(e?-1:1),{direction:u,textAlignment:d}=qet[i],g=(u+1)*.5;if(e){const f=t?s.y+s.height:s.y,y=s.height*c;o=f+y*g+n*d*c,l=d===c?"top":"bottom"}else{const f=t?s.x:s.x+s.width,y=s.width*c;a=f+y*g+n*d*c,r=d===c?"left":"right"}}return{x:a,y:o,textAlign:r,textBaseline:l}}function Wi({id:t},e,i,...n){for(const s of n)s.cleanup();Uc(t,e,i,n,{opacity:0},{opacity:1},{phase:"trailing"})}function $S({id:t},e,i,...n){Uc(t,e,i,n,{opacity:1},{opacity:0},{phase:"remove"})}function Pp(t){return{opacity:1}}var la=class extends Zf{constructor(){super(...arguments),this.enabled=!0,this.shape="circle",this.size=0,this.fillOpacity=1,this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}getStyle(){const{size:e,shape:i,fill:n,fillOpacity:s,stroke:a,strokeWidth:o,strokeOpacity:r,lineDash:l,lineDashOffset:c}=this;return{size:e,shape:i,fill:n,fillOpacity:s,stroke:a,strokeWidth:o,strokeOpacity:r,lineDash:l,lineDashOffset:c}}getDiameter(){return this.size+this.strokeWidth}};T([b,ut()],la.prototype,"enabled",2);T([b,Bu({})],la.prototype,"shape",2);T([b,ut()],la.prototype,"size",2);T([b,Bu({})],la.prototype,"fill",2);T([b,ut()],la.prototype,"fillOpacity",2);T([b,ut()],la.prototype,"stroke",2);T([b,ut()],la.prototype,"strokeWidth",2);T([b,ut()],la.prototype,"strokeOpacity",2);T([b],la.prototype,"lineDash",2);T([b],la.prototype,"lineDashOffset",2);T([b,Bu({})],la.prototype,"itemStyler",2);function Qet(t,e){if(t!=null)return{enabled:t.enabled??!0,stroke:t.stroke??e?.stroke??"transparent",strokeWidth:t.strokeWidth??e?.strokeWidth??1,strokeOpacity:t.strokeOpacity??e?.strokeOpacity??1,lineDash:t.lineDash??e?.lineDash??[]}}var JU=class extends xt{constructor(){super(...arguments),this.enabled=!1}};T([b],JU.prototype,"enabled",2);var Wc=class extends xt{constructor(){super(...arguments),this.interaction=new JU,this.position=new nm,this.range=void 0,this.class=void 0}formatTooltip(t,e,i){const n=this.renderer==null?void 0:js(t,this.renderer,i);if(zi(n)||Je(n)||aa(n))return{type:"raw",rawHtmlString:bi(n)};if(n!=null){const s=Et(n.symbol?.marker,e.symbol?.marker),a=n.symbol?.line??e.symbol?.line?Et(n.symbol?.line,e.symbol?.line):void 0,o=e.symbol||n.symbol?{marker:s,line:Qet(a,s)}:void 0;return{type:"structured",...e,...n,symbol:o}}return{type:"structured",...e}}};T([b],Wc.prototype,"enabled",2);T([b],Wc.prototype,"showArrow",2);T([b],Wc.prototype,"renderer",2);T([b],Wc.prototype,"interaction",2);T([b],Wc.prototype,"position",2);T([b],Wc.prototype,"range",2);T([b],Wc.prototype,"class",2);function zp(){return new Wc}var Kc=class tW extends Gx{constructor(e,i=new Of,n=!0){super(e,i),this.groupPaddingInner=.1,this.includeInvisibleDomains=n,this.nice=!1}static is(e){return e instanceof tW}isCategoryLike(){return!0}hasDefinedDomain(){return!1}normaliseDataDomain(e){return{domain:e.domain,clipped:!1}}getUpdateTypeOnResize(){return this.bandAlignment==null||this.bandAlignment==="justify"?super.getUpdateTypeOnResize():Ct.PROCESS_DOMAIN}updateScale(){super.updateScale();let{paddingInner:e,paddingOuter:i}=this;if(!Ae(e)||!Ae(i)){const n=this.reduceBandScalePadding();e??(e=n.inner),i??(i=n.outer)}this.scale.paddingInner=e??0,this.scale.paddingOuter=i??0}calculateGridLines(e,i,n){const s=super.calculateGridLines(e,i,n);return this.interval.placement==="between"&&e.length>0&&s.push(super.calculateGridLine({index:e.at(-1).index+1,tickId:`after:${e.at(-1).tickId}`,translation:this.range[1]},e.length,i,n,e)),s}calculateGridLine({index:e,tickId:i,translation:n},s,a,o,r){const{gridLine:l,horizontal:c,interval:u,scale:d}=this;if(u.placement!=="between")return super.calculateGridLine({index:e,tickId:i,translation:n},s,a,o,r);const g=na[0]+o.step/2,u=e.at(-1),d=s&&u.translationthis.calculateGridFill(g,f,g.index,i,n,e))),d){const g={tickId:`after:${u.tickId}`,translation:u.translation+o.step};r.push(this.calculateGridFill(g,e.length,u.index+1,i,n,e))}return r}calculateGridFill({tickId:e,translation:i},n,s,a,o,r){const{gridLine:l,horizontal:c,interval:u,scale:d}=this;if(u.placement!=="between")return super.calculateGridFill({tickId:e,translation:i},n,s,a,o,r);const g=i-d.step/2,f=i+d.step/2,[y,x,S,D]=c?[g,Math.max(a,o),f,Math.min(a,o)]:[Math.min(a,o),g,Math.max(a,o),f],{fill:A,fillOpacity:I}=l.style[s%l.style.length]??{};return{tickId:e,x1:y,y1:x,x2:S,y2:D,fill:A,fillOpacity:I}}calculateTickLines(e,i,n=0){const s=super.calculateTickLines(e,i,n);return this.interval.placement==="between"&&e.length>0&&s.push(super.calculateTickLine({isPrimary:!1,tickId:`after:${e.at(-1)?.tickId}`,translation:this.range[1]},e.length,i,e,n)),s}calculateTickLine({isPrimary:e,tickId:i,translation:n},s,a,o,r=0){const{horizontal:l,interval:c,primaryTick:u,scale:d,tick:g}=this;if(c.placement!=="between")return super.calculateTickLine({isPrimary:e,tickId:i,translation:n},s,a,o,r);const f=e&&u?.enabled?u:g,y=-a*this.getTickSize(f),x=n{const n=i.getBandScalePadding?.();return n&&(e.inner>n.inner&&(e.inner=n.inner),e.outertypeof y!="string")&&(e=e.map(String)),{type:"category",value:e,datum:o,seriesId:r,legendItemName:l,key:c,source:u,property:d,domain:g,boundSeries:f}}};Kc.className="CategoryAxis";Kc.type="category";T([b],Kc.prototype,"groupPaddingInner",2);T([b],Kc.prototype,"paddingInner",2);T([b],Kc.prototype,"paddingOuter",2);T([pi("layoutConstraints","align")],Kc.prototype,"bandAlignment",2);T([b],Kc.prototype,"skipNullBars",2);T([Pe({newValue(t){t==null||t<=0?(this.layoutConstraints.width=100,this.layoutConstraints.unit="percent"):(this.layoutConstraints.width=t,this.layoutConstraints.unit="px",this.animationManager.skipCurrentBatch())}})],Kc.prototype,"requiredRange",2);var qx=Kc,Jet=1e3,rV=class eW extends Of{constructor(){super(...arguments),this.previousDomainJson=void 0,this.animatable=!0}static is(e){return e instanceof eW}set domain(e){if(e.length<=Jet){const i=JSON.stringify(e);this.animatable=this.previousDomainJson===void 0||this.previousDomainJson===i,this.previousDomainJson=i}else this.animatable=this.previousDomainJson===void 0,this.previousDomainJson="";super.domain=e}get domain(){return super.domain}normalizeDomains(...e){const{domain:i}=super.normalizeDomains(...e);return{domain:i,animatable:!1}}findIndex(e){return super.findIndex(e)??this.getMatchIndex(e)}getMatchIndex(e){const i=JSON.stringify(e),n=this._domain.find(s=>JSON.stringify(s)===i);if(n!=null)return super.findIndex(n)}},tit=class iW{constructor(e="",i,n){this.label=e,this.parent=i,this.refId=n,this.position=0,this.subtreeLeft=Number.NaN,this.subtreeRight=Number.NaN,this.children=[],this.leafCount=0,this.prelim=0,this.mod=0,this.ancestor=this,this.change=0,this.shift=0,this.index=0,this.separatorDepth=0,this.leftmostLeaf=this,this.screen=0,this.depth=i?i.depth+1:0}insertTick(e,i){let n=this,s;for(let a=0;au.label===o);if(c&&r)n=c,s=c;else{const u=new iW(o,n,i);u.index=l.length,l.push(u),r&&(n=u),s=u}}return s}getLeftSibling(){return this.index>0?this.parent?.children[this.index-1]:void 0}getLeftmostSibling(){return this.index>0?this.parent?.children[0]:void 0}nextLeft(){return this.children[0]}nextRight(){return this.children.at(-1)}getSiblings(){return this.parent?.children.filter((e,i)=>i!==this.index)??[]}};function eit(t){const e=t.reduce((s,a)=>Math.max(s,a.length),0),i=new tit,n=new Map;for(let s=0;s=0;n--){const s=t[n];s.prelim+=e,s.mod+=e,i+=s.change,e+=s.shift+i}}function ait(t,e){const i=t.getLeftSibling();if(i){let n=t,s=t,a=i,o=s.getLeftmostSibling(),r=s.mod,l=n.mod,c=a.mod,u=o.mod;for(;a.nextRight()&&s.nextLeft();){a=a.nextRight(),s=s.nextLeft(),o=o.nextLeft(),n=n.nextRight(),n.ancestor=t;const d=a.prelim+c-(s.prelim+r)+1;d>0&&(iit(nit(a,t,e),t,d),r+=d,l+=d),c+=a.mod,r+=s.mod,u+=o.mod,l+=n.mod}a.nextRight()&&!n.nextRight()?n.mod+=c-l:(s.nextLeft()&&!o.nextLeft()&&(o.mod+=r-u),e=t)}return e}function nW(t){const{children:e}=t;if(e.length){let[i]=e;for(const a of e)nW(a),i=ait(a,i);sit(t);const n=(e[0].prelim+e.at(-1).prelim)/2,s=t.getLeftSibling();s?(t.prelim=s.prelim+1,t.mod=t.prelim-n):t.prelim=n}else{const i=t.getLeftSibling();t.prelim=i?i.prelim+1:0}}function sW(t,e,i){t.position=t.prelim+e,t.separatorDepth=t.index===0?1+(t.parent?.separatorDepth??0):0,i.insertNode(t);for(const n of t.children)sW(n,e+t.mod,i)}function aW(t){const{children:e}=t;let i=0;for(const n of e)aW(n),n.children.length?i+=n.leafCount:i++;t.leafCount=i,e.length?(t.subtreeLeft=e[0].subtreeLeft,t.subtreeRight=e.at(-1).subtreeRight,t.position=(t.subtreeLeft+t.subtreeRight)/2,t.leftmostLeaf=e[0].leftmostLeaf):(t.subtreeLeft=t.position,t.subtreeRight=t.position)}function oit(t){const e=new rit,{root:i,tickNodes:n}=eit(t);return nW(i),sW(i,-i.prelim,e),aW(i),{layout:e,tickNodes:n}}var rit=class{constructor(){this.minPosition=1/0,this.maxPosition=-1/0,this.nodes=[],this.depth=0}insertNode(t){this.depththis.maxPosition&&(this.maxPosition=t.position),this.nodes.push(t)}scaling(t,e){let i=1;return t>0&&this.maxPosition!==this.minPosition&&(i=t/(this.maxPosition-this.minPosition)),e&&(i*=-1),i}resize(t,e,i,n){const s=Math.abs(t[1]-t[0])-e,a=this.scaling(s,t[0]>t[1]),o=i+n/2;let r=0;for(const l of this.nodes){const c=l.position*a;r>c&&(r=c),l.screen=c+o}for(const l of this.nodes)l.screen-=r}},Ld=5,Zs=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.border=new kp}};T([b],Zs.prototype,"enabled",2);T([b],Zs.prototype,"avoidCollisions",2);T([b],Zs.prototype,"border",2);T([b],Zs.prototype,"color",2);T([b],Zs.prototype,"cornerRadius",2);T([b],Zs.prototype,"spacing",2);T([b],Zs.prototype,"rotation",2);T([b],Zs.prototype,"wrapping",2);T([b],Zs.prototype,"truncate",2);T([b],Zs.prototype,"fill",2);T([b],Zs.prototype,"fontStyle",2);T([b],Zs.prototype,"fontWeight",2);T([b],Zs.prototype,"fontSize",2);T([b],Zs.prototype,"fontFamily",2);T([b],Zs.prototype,"padding",2);var sA=class extends xt{constructor(){super(...arguments),this.enabled=!0}};T([b],sA.prototype,"enabled",2);T([b],sA.prototype,"width",2);T([b],sA.prototype,"stroke",2);var yL=class extends xt{constructor(){super(...arguments),this.label=new Zs,this.tick=new sA}};T([b],yL.prototype,"label",2);T([b],yL.prototype,"tick",2);var Qx=class extends qx{constructor(t){super(t,new rV),this.tickScale=new rV,this.computedLayout=void 0,this.tickTreeLayout=void 0,this.tickNodes=void 0,this.leafNodeToKey=void 0,this.ftdPositions=new Map,this.ftdCandidates=new Set,this.ftdKept=new Set,this.ftdByDepth=[],this.ftdStack=[],this.depthOptions=new ss(yL),this.includeInvisibleDomains=!0,this.tickScale.paddingInner=1,this.tickScale.paddingOuter=0}getDepthOptionsMap(t){const e=[],{depthOptions:i,label:n}=this,s=this.horizontal?0:-90;for(let a=0;a{t.fill=e.color,t.text=e.text,t.textBaseline=e.textBaseline,t.textAlign=e.textAlign??"center",t.pointerEvents=e.textUntruncated==null?1:0,t.setFont(e),t.setBoxing(e)})}updateAxisLine(){this.computedLayout&&(this.lineNode.visible=this.line.enabled,this.lineNode.stroke=this.line.stroke,this.lineNode.strokeWidth=this.line.width)}computeLayout(){this.updateDirection(),this.updateScale();const{step:t}=this.scale,{title:e,label:i,range:n,depthOptions:s,horizontal:a,line:o}=this,r=this.chartLayout?.scrollbars?.[this.id],l=this.getScrollbarThickness(r),c=this.getTickSpacing();if(this.lineNode.datum=a?{x1:n[0],x2:n[1],y1:0,y2:0}:{x1:0,x2:0,y1:n[0],y2:n[1]},this.lineNode.setProperties({stroke:o.stroke,strokeWidth:o.enabled?o.width:0}),this.tickTreeLayout?.resize(this.scale.range,this.scale.step,this.scale.inset,this.scale.bandwidth),!this.tickTreeLayout?.depth)return{bbox:Tt.zero,spacing:0,tickSizeAtDepth:[],tickLabelLayout:[]};const{depth:u,nodes:d}=this.tickTreeLayout,g=a?-i.getSideFlag():i.getSideFlag(),f=[],y=new Map,x=new wf,S=this.getDepthOptionsMap(u),D=g*(S[0].spacing+l+c),A=this.tickFormatter(this.scale.domain,this.scale.domain,!1),I=new Map,w={};for(const[q,nt]of d.entries()){const G=u-nt.depth;if(w[G]??(w[G]=0),!nt.children.length&&tPt){y.delete(q);continue}}const Kt=x.getPlainText(),ae=x.getBoxingProperties();f.push({text:Kt,textUntruncated:G.truncatedText,visible:!0,tickId:B(Kt),range:this.scale.range,border:ae.border,color:x.fill,cornerRadius:ae.cornerRadius,fill:ae.fill,fontFamily:x.fontFamily,fontSize:x.fontSize,fontStyle:x.fontStyle,fontWeight:x.fontWeight,padding:ae.padding,rotation:x.rotation,rotationCenterX:x.rotationCenterX,rotationCenterY:x.rotationCenterY,textAlign:x.textAlign,textBaseline:x.textBaseline,x:x.x,y:x.y}),y.set(q,Ti.toCanvas(x))}const H=(O[u-1]??0)+l+c,$=[this.lineNodeBBox(),Tt.merge(y.values()),new Tt(0,0,H*g,0)],Y=Tt.merge($),U=a?Y.height:Y.width,{spacing:V,scrollbarLayout:Z}=this.applyScrollbarLayout($,U,r);this.layout.labelThickness=U,this.layout.scrollbar=Z,e.enabled&&$.push(this.titleBBox(this.scale.domain,V));const W=Tt.merge($);return this.layoutCrossLines(),{bbox:W,spacing:V,tickSizeAtDepth:O,tickLabelLayout:f}}buildDepthsMap(t){const{tickNodes:e,tickScale:i,tickTreeLayout:n}=this;if(!n||!e)return new Map;const s=n.depth,a=new Map;for(const o of t){const r=e.get(o),l=r==null?s-1:Math.min(r.separatorDepth,s-1);a.set(o,l)}if(i.step1){const o=t.at(-1);if(o&&!e.has(o)){const r=t.at(-2),l=r?a.get(r):void 0;l!=null&&a.set(o,l)}}return a}filterTicksTopDown(t,e){const{tickScale:i,tickTreeLayout:n,tickNodes:s,leafNodeToKey:a}=this;if(!n||s==null||a==null)return{ticks:t,depthsMap:new Map};const o=i.range,r=i.step,l=i.inset,c=i.bandwidth,u=e?.[0]??0,d=e?.[1]??1,g=this.filterTickCache;if(g&&g.range0===o[0]&&g.range1===o[1]&&g.step===r&&g.inset===l&&g.bandwidth===c&&g.vr0===u&&g.vr1===d)return g.result;const f=Y=>(this.filterTickCache={range0:o[0],range1:o[1],step:r,inset:l,bandwidth:c,vr0:u,vr1:d,result:Y},Y);if(i.step>=Ld)return f({ticks:t,depthsMap:this.buildDepthsMap(t)});const y=this.ftdPositions;y.clear();const x=this.ftdCandidates;x.clear();const S=this.ftdKept;S.clear();const D=this.ftdStack;D.length=0;const A=Y=>(y.has(Y)||y.set(Y,i.convert(Y)),y.get(Y)),I=Y=>{let U=0;for(const V of Y)if(Number.isFinite(A(V))&&(U+=1,U>1))break;return U};let w=t;if(e!=null&&(e[0]!==0||e[1]!==1)){const Y=i.domain,U=Y.length;if(U>0){const V=Math.max(0,Math.floor(e[0]*U)-1),Z=Math.min(U-1,Math.ceil(e[1]*U));if(t.length===0)w=Y.slice(V,Z+1);else{const W=Y[V],q=Y[Z],nt=t[0],G=t.at(-1),et=W!=null&&W!==nt,st=q!=null&&q!==G;if(et||st){const lt=et?[W]:[];lt.push(...t),st&<.push(q),w=lt}}}}if(I(w)<=1)return f({ticks:w,positions:y,depthsMap:this.buildDepthsMap(w)});for(const Y of w)x.add(Y);for(const Y of w){let V=s.get(Y)?.parent;for(;V?.parent;){const Z=a.get(V.leftmostLeaf);Z!=null&&x.add(Z),V=V.parent}}const N=Math.max(0,n.depth-1),O=Y=>Math.min(N,n.depth-Y.depth),L=n.nodes[0];if(!L?.children.length)return f({ticks:w,positions:y,depthsMap:this.buildDepthsMap(w)});const R=this.ftdByDepth;for(const Y of R)Y.positions.length=0,Y.ticks.length=0;const P=(Y,U)=>{const V=Y.at(-1);return V!=null&&U-V{for(let V=U+1;V<=N;V++)if(P(R[V].positions,Y))return!1;return!P(R[U].positions,Y)},F=(Y,U,V)=>{const Z=R[V];Z.positions.push(Y),Z.ticks.push(U)},H=(Y,U)=>{if(U!==0)for(let V=0;V0&&Y-Z.positions.at(-1)=0;Y--){const U=L.children[Y],V=a.get(U.leftmostLeaf);V!=null&&x.has(V)&&D.push(U)}for(;D.length;){const Y=D.pop(),U=a.get(Y.leftmostLeaf);if(U==null||!x.has(U))continue;const V=A(U);if(V==null||!Number.isFinite(V))continue;if(S.has(U)){for(let W=Y.children.length-1;W>=0;W--)D.push(Y.children[W]);continue}const Z=O(Y);if(B(V,Z)){S.add(U),F(V,U,Z),H(V,Z);for(let W=Y.children.length-1;W>=0;W--)D.push(Y.children[W])}}for(const Y of w){if(s.has(Y))continue;const U=A(Y);if(U==null||!Number.isFinite(U)||S.has(Y))continue;const V=0;B(U,V)&&(S.add(Y),F(U,Y,V),H(U,V))}const $=w.filter(Y=>S.has(Y));return f({ticks:$,positions:y,depthsMap:this.buildDepthsMap($)})}update(){if(!this.computedLayout)return;this.scale.animatable||this.moduleCtx.animationManager.skipCurrentBatch();const{tickScale:t,tick:e,gridLine:i,gridLength:n,visibleRange:s,tickTreeLayout:a}=this;if(!a)return;const{tickSizeAtDepth:o,spacing:r}=this.computedLayout,{depth:l}=a,c=this.chartLayout?.scrollbars?.[this.id],u=this.getScrollbarThickness(c),d=this.getTickSpacing(),{position:g,horizontal:f,gridPadding:y}=this,x=g==="bottom"||g==="right"?-1:1,S=y,D=x*n-y,A={nice:[!1,!1],interval:void 0,tickCount:void 0,minTickCount:0,maxTickCount:1/0};let{ticks:I}=t.ticks(A,void 0,s);const w=this.filterTicksTopDown(I,s);I=w.ticks;const{depthsMap:N}=w,O=R=>N.get(R)??l-1,L=I.map((R,P)=>({index:t.findIndex(R),tickId:As(P,...R),translation:Math.round(w.positions?.get(R)??t.convert(R))}));this.gridLineGroupSelection.update(i.enabled&&n?this.calculateGridLines(L,S,D):[]),this.gridFillGroupSelection.update(i.enabled&&n?this.calculateGridFills(L,S,D):[]),this.tickLineGroupSelection.update(e.enabled?I.map((R,P)=>{const{tickId:B,translation:F}=L[P],H=O(R),$=this.depthOptions[H]?.tick,Y=o[H]??0,U=$?.stroke??e.stroke,V=$?.enabled===!1?0:$?.width??e.width,Z=-x*Y,W=-x*(u+d),[q,nt,G,et]=f?[F,W,F,W+Z]:[W,F,W+Z,F];return{tickId:B,offset:F,x1:q,y1:nt,x2:G,y2:et,stroke:U,strokeWidth:V,lineDash:void 0}}):[]),this.updatePosition(),this.updateCategoryLabels(),this.updateAxisLine(),this.updateGridLines(),this.updateGridFills(),this.updateTickLines(),this.updateTitle(this.scale.domain,r),this.updateCrossLines(),this.resetSelectionNodes()}calculateLayout(t,e){this.chartLayout=e;const{tickSizeAtDepth:i,tickLabelLayout:n,spacing:s,bbox:a}=this.computeLayout();return this.computedLayout={tickSizeAtDepth:i,tickLabelLayout:n,spacing:s},{bbox:a,niceDomain:this.scale.domain}}onGridVisibilityChange(){super.onGridVisibilityChange(),this.tickLabelGroupSelection.clear()}updateScale(){super.updateScale(),this.tickScale.range=this.scale.range,this.scale.paddingOuter=this.scale.paddingInner/2}processData(){const{direction:t}=this,e=this.boundSeries.filter(l=>l.visible).flatMap(l=>Lb(l.getDomain(t)));this.dataDomain={domain:Ll(e)??this.filterDuplicateArrays(e),clipped:!1},this.isReversed()&&(this.dataDomain={...this.dataDomain,domain:this.dataDomain.domain.toReversed()});const i=this.dataDomain.domain.map(lV),{layout:n,tickNodes:s}=oit(i);this.tickTreeLayout=n,this.tickNodes=s,this.leafNodeToKey=new Map;for(const[l,c]of s)this.leafNodeToKey.set(c,l);this.filterTickCache=void 0,this.ftdByDepth=Array.from({length:Math.max(0,n.depth-1)+1},()=>({positions:[],ticks:[]}));const a=[];for(const l of this.tickTreeLayout.nodes)l.leafCount||l.refId==null||a.push(this.dataDomain.domain[l.refId]);const o=VH(this.dataDomain.domain,a);this.scale.domain=o;const r=o.map(lV);r.push([""]),this.tickScale.domain=r}filterDuplicateArrays(t){const e=new Set;return t.filter(i=>{const n=qt(i)?JSON.stringify(i):i;return e.has(n)?!1:(e.add(n),!0)})}};Qx.className="GroupedCategoryAxis";Qx.type="grouped-category";T([b],Qx.prototype,"depthOptions",2);function lV(t){return dx(Bt(t)&&"value"in t?t.value:t)}function aA(t,e){for(const i of e){const n=i.datum;n===void 0?pt.error("undefined datum"):t.addValue(i,n)}}function oA(t,e){const{x:i,y:n}=e,{nearest:s,distanceSquared:a}=t.getQuadTree().find(i,n);if(s!==void 0)return{datum:s.value,distance:Math.sqrt(a)}}var Jx=class extends jr{constructor(){super(...arguments),this.direction="vertical",this.width=void 0,this.widthRatio=void 0}};T([b],Jx.prototype,"direction",2);T([b],Jx.prototype,"width",2);T([b],Jx.prototype,"widthRatio",2);var oW=class extends Wu{constructor(){super(...arguments),this.smallestDataInterval=void 0,this.largestDataInterval=void 0}padBandExtent(t,e){const i=typeof e=="boolean"?1:.5,n=Ae(this.smallestDataInterval)?this.smallestDataInterval*i:0,s=Ll(t)??[Number.NaN,Number.NaN];return typeof e=="boolean"?s[e?0:1]-=(e?1:-1)*n:(s[0]-=n,s[1]+=n),_a(s)}getBandScalePadding(){return{inner:.3,outer:.15}}shouldFlipXY(){return!this.isVertical()}isVertical(){return this.properties.direction==="vertical"}getBarDirection(){return this.shouldFlipXY()?z.X:z.Y}getCategoryDirection(){return this.shouldFlipXY()?z.Y:z.X}getValueAxis(){const t=this.getBarDirection();return this.axes[t]}getCategoryAxis(){const t=this.getCategoryDirection();return this.axes[t]}getMinimumRangeSeries(t){const{width:e}=this.properties;if(e==null||!this.getCategoryAxis())return;const{index:n}=this.ctx.seriesStateManager.getVisiblePeerGroupIndex(this);t[n]=Math.max(t[n]??0,e)}getMinimumRangeChart(t){if(t.length===0)return 0;const e=this.getCategoryAxis();if(!(e instanceof Qx||e instanceof qx))return 0;const i=this.data?.netSize()??0;if(i===0)return 0;const n=this.getBandScalePadding(),{paddingInner:s=n.inner,paddingOuter:a=n.outer,groupPaddingInner:o}=e,r=t.reduce((g,f)=>g+f,0),l=r/t.length,{visibleGroupCount:c}=this.ctx.seriesStateManager.getVisiblePeerGroupIndex(this),u=r+o*l*(c-1),d=(i-s+a*2)/(1-s);return u*d}validateCreateNodeDataPreconditions(){const t=this.getCategoryAxis(),e=this.getValueAxis();if(!(!t||!e||!this.dataModel||!this.processedData))return{xAxis:t,yAxis:e}}getBandwidth(t,e){return ti.is(t.scale)?t.scale.calcBandwidth(this.smallestDataInterval,e):t.scale.bandwidth??0}xCoordinateRange(t){const e=this.axes[this.getCategoryDirection()],i=e.scale,n=this.getBandwidth(e,0),s=ti.is(i)?n*-.5:0,a=i.convert(t)+s;return[a,a+n]}yCoordinateRange(t){const i=this.axes[this.getBarDirection()].scale,n=t.map(s=>i.convert(s));if(n.length===1){const s=i.convert(0);return[Math.min(n[0],s),Math.max(n[0],s)]}return xi(n)}getBarDimensions(){const t=this.getCategoryAxis(),e=this.getBandwidth(t);this.ctx.seriesStateManager.updateGroupScale(this,e,t);const i=this.getBarWidth(),n=this.getBarOffset(i);let s=this.getGroupOffset();if(this.ctx.domManager.isRtl&&this.seriesGrouping!=null){const a=this.ctx.seriesStateManager.getGroupBandWidth(this);s=e-s-a}return{groupOffset:s,barOffset:n,barWidth:i}}getGroupOffset(){return this.ctx.seriesStateManager.getGroupOffset(this)}getBarOffset(t){const e=this.ctx.seriesStateManager.getGroupScale(this),i=this.getCategoryAxis();let n=0;ti.is(i.scale)?n=-t/2:this.seriesGrouping==null&&e?n=(this.getGroupScaleRangeWidth(e)-t)/2:e&&this.properties.widthRatio!=null&&(n=(e.bandwidth-t)/2);const s=this.ctx.seriesStateManager.getStackOffset(this,t);return n+s}getBarWidth(){const{seriesGrouping:t}=this,{width:e}=this.properties;let{widthRatio:i}=this.properties;const n=this.ctx.seriesStateManager.getGroupScale(this),s=n?.bandwidth??0;if(t==null&&(i??(i=1)),i!=null){let a=e;return t==null&&a==null&&n&&(a=this.getGroupScaleRangeWidth(n)),a==null&&s<1&&n?n.rawBandwidth:(a??s)*i}return e??(s<1&&n?n.rawBandwidth:s)}getGroupScaleRangeWidth(t){let e=t.range[1]-t.range[0];return t.round&&e>0&&(e=Math.floor(e)),e}getDatumOffset(t){if(!this.processedData?.invalidData||!this.processedData?.missingData||!this.getCategoryAxis()?.skipNullBars)return 0;const e=this.ctx.seriesStateManager.getDatumOffset(this,this.processedData.invalidData,this.processedData.missingData,t);return this.ctx.domManager.isRtl?-e:e}resolveKeyDirection(t){return this.getBarDirection()===z.X?t===z.X?z.Y:z.X:t}initQuadTree(t){aA(t,this.datumNodesIter())}pickNodeClosestDatum(t){return oA(this,t)}};function kn(t,e,i){return(e-t)*i+t}function cV(t,e){const{x0:i,y0:n,x1:s,y1:a}=t,r=(a-n)/(s-i)*(e-i)+n;return{leftCp1x:i,leftCp1y:n,leftCp2x:e,leftCp2y:r,stepX:e,stepY0:r,stepY1:r,rightCp1x:e,rightCp1y:r,rightCp2x:s,rightCp2y:a}}function lit(t,e){const{cp0x:i,cp0y:n,cp1x:s,cp1y:a,cp2x:o,cp2y:r,cp3x:l,cp3y:c}=t,u=vM(i,s,o,l,e),[d,g]=$b(i,n,s,a,o,r,l,c,u),f=d[3].y;return{leftCp1x:d[1].x,leftCp1y:d[1].y,leftCp2x:d[2].x,leftCp2y:d[2].y,stepX:e,stepY0:f,stepY1:f,rightCp1x:g[1].x,rightCp1y:g[1].y,rightCp2x:g[2].x,rightCp2y:g[2].y}}function cit(t){const{x0:e,y0:i,x1:n,y1:s,stepX:a}=t;return{leftCp1x:(e+a)/2,leftCp1y:i,leftCp2x:(e+a)/2,leftCp2y:i,stepX:a,stepY0:i,stepY1:s,rightCp1x:(a+n)/2,rightCp1y:s,rightCp2x:(a+n)/2,rightCp2y:s}}function hV(t,e){return t.type==="linear"?cV(t,e):t.type==="cubic"?lit(t,e):t.type==="step"?cit(t):cV(t,e)}function rW(t,e,i,n,s,a,o){switch(e){case sa.MoveTo:o?t.moveTo(s,a):t.moveTo(i,n);break;case sa.LineTo:o?t.lineTo(s,a):t.lineTo(i,n);break;case sa.Skip:break}}function lW(t,e,i,n,s,a){a?t.lineTo(e,i):t.lineTo(n,s)}function cW(t,e,i,n,s,a,o,r,l,c){c?t.cubicCurveTo(a,o,n,s,e,i):t.cubicCurveTo(n,s,a,o,r,l)}function hW(t,e,i,n,s,a,o){o?(t.lineTo(a,s),t.lineTo(a,i),t.lineTo(e,i)):(t.lineTo(a,i),t.lineTo(a,s),t.lineTo(n,s))}function hit(t,e,i,n,s,a,o){if(o){for(let r=a.length-1;r>=0;r--){const{x:l,y:c}=a[r];t.lineTo(l,c)}t.lineTo(e,i)}else{for(const{x:r,y:l}of a)t.lineTo(r,l);t.lineTo(n,s)}}function nb(t,e,i,n){const[s,a]=Ks(e);switch(rW(t,i,s.x,s.y,a.x,a.y,n),e.type){case"linear":lW(t,e.x0,e.y0,e.x1,e.y1,n);break;case"cubic":cW(t,e.cp0x,e.cp0y,e.cp1x,e.cp1y,e.cp2x,e.cp2y,e.cp3x,e.cp3y,n);break;case"step":hW(t,e.x0,e.y0,e.x1,e.y1,e.stepX,n);break;case"multi-line":hit(t,e.x0,e.y0,e.x1,e.y1,e.midPoints,n);break}}function uW(t,e,i){const[n,s]=Ks(t),[a,o]=Ks(e),r=kn(n.x,a.x,i),l=kn(n.y,a.y,i),c=kn(s.x,o.x,i),u=kn(s.y,o.y,i);return[{x:r,y:l},{x:c,y:u}]}function UN(t,e,i,n,s,a){const[{x:o,y:r},{x:l,y:c}]=uW(e,i,n);if(rW(t,s,o,r,l,c,a),e.type==="cubic"&&i.type==="cubic"){const u=kn(e.cp1x,i.cp1x,n),d=kn(e.cp1y,i.cp1y,n),g=kn(e.cp2x,i.cp2x,n),f=kn(e.cp2y,i.cp2y,n);cW(t,o,r,u,d,g,f,l,c,a)}else if(e.type==="step"&&i.type==="step"){const u=kn(e.stepX,i.stepX,n);hW(t,o,r,l,c,u,a)}else if(e.type==="linear"&&i.type==="linear")lW(t,o,r,l,c,a);else{let u;e.type==="step"?u=e.stepX:i.type==="step"?u=i.stepX:u=(o+l)/2;const d=hV(e,u),g=hV(i,u),f=kn(d.leftCp1x,g.leftCp1x,n),y=kn(d.leftCp1y,g.leftCp1y,n),x=kn(d.leftCp2x,g.leftCp2x,n),S=kn(d.leftCp2y,g.leftCp2y,n),D=kn(d.stepX,g.stepX,n),A=kn(d.stepY0,g.stepY0,n),I=kn(d.stepY1,g.stepY1,n),w=kn(d.rightCp1x,g.rightCp1x,n),N=kn(d.rightCp1y,g.rightCp1y,n),O=kn(d.rightCp2x,g.rightCp2x,n),L=kn(d.rightCp2y,g.rightCp2y,n);a?(t.cubicCurveTo(O,L,w,N,D,I),t.lineTo(D,A),t.cubicCurveTo(x,S,f,y,o,r)):(t.cubicCurveTo(f,y,x,S,D,A),t.lineTo(D,I),t.cubicCurveTo(w,N,O,L,l,c))}}var uV=1e3,dW=(t=>(t[t.Zero=0]="Zero",t[t.Split=1]="Split",t))(dW||{});function uit(t,e){return t==null||e==null||typeof t!="object"||typeof e!="object"?!1:"id"in t&&"id"in e?t.id===e.id:t.toString()===e.toString()}function Gs(t){return bM(t).valueOf()}function vs(t,e){if(!e)return Number.NaN;if(t instanceof Date&&(t=t.getTime()),e.type==="continuous"&&typeof t=="number")return(t-e.domain[0])/(e.domain[1]-e.domain[0])*(e.range[1]-e.range[0])+e.range[0];if(e.type==="log"&&typeof t=="number")return e.convert(t);if(e.type!=="category")return Number.NaN;if(Au(e)){if(typeof t=="number"){const{firstBandTime:s,intervalMs:a,bandCount:o,inset:r,step:l}=e,c=Math.round((t-s)/a);if(c>=0&&cGs(s)===i);return n===-1&&(n=e.domain.findIndex(s=>uit(t,s))),n>=0?e.inset+e.step*n:Number.NaN}function dV({data:t},e){return t.map((i,n)=>({xValue0Index:e.indexOf(Gs(i.xValue0)),xValue1Index:e.indexOf(Gs(i.xValue1)),datumIndex:n}))}function pV(t){return Object.values(t.scales).every(e=>e.type==="category"?Au(e)?e.bandCount({axisValue:u,value:d}));n.sort((u,d)=>vs(u.value,t.scales.x)-vs(d.value,t.scales.x));const s=[];for(const{xValue0:u,xValue1:d}of e.data){const g=Gs(u),f=Gs(d);i.has(g)||(i.set(g,u),s.push({axisValue:g,value:u})),i.has(f)||(i.set(f,d),s.push({axisValue:f,value:d}))}s.sort((u,d)=>vs(u.value,e.scales.x)-vs(d.value,e.scales.x));const a=n;let o=0;for(const u of s){for(let d=a.length-1;d>=o;d-=1){const g=vs(u.value,e.scales.x),f=vs(a[d].value,e.scales.x);if(g>f){o=d+1;break}}a.splice(o,0,u),o+=1}if(!pit(a,e))return;const r=a.map(u=>u.axisValue),l=dV(e,r),c=dV(t,r);return{axisValues:r,oldDataAxisIndices:l,newDataAxisIndices:c}}function gV(t,e,i,n,s){if(s.xValue1Index===s.xValue0Index+1)return t;const a=Ks(t);let o,r;if(e.scales.x?.type==="category"){const l=(a[1].x-a[0].x)/(s.xValue1Index-s.xValue0Index);o=a[0].x+(n-s.xValue0Index)*l,r=o+l}else{const l=i[n],c=i[n+1];o=vs(l,e.scales.x),r=vs(c,e.scales.x)}return IT(t,o,r)}function pW(t,e){const[i,n]=Ks(t),s=vs(0,e.scales.y);return If(t,{x:i.x,y:s},{x:n.x,y:s})}function gW(t){const[e,i]=Ks(t);return SM(t,{x:(e.x+i.x)/2,y:(e.y+i.y)/2})}function fW(t,e,i,n,s,a){let o,r;if(s.xValue0Index>=a.xValue1Index){const d=n.findLast(f=>f.xValue1Index<=a.xValue1Index)?.datumIndex,g=d==null?void 0:i.data[d];o=g?.xValue1,r=g?.yValue1}else if(s.xValue0Index<=a.xValue0Index){const d=n.find(f=>f.xValue0Index>=a.xValue0Index)?.datumIndex,g=d==null?void 0:i.data[d];o=g?.xValue0,r=g?.yValue0}if(o==null||r==null)switch(e){case 0:return pW(t,i);case 1:return gW(t)}const l=vs(o,i.scales.x),c=vs(r,i.scales.y),u={x:l,y:c};return If(t,u,u)}function bL(t,e){if(e==null)return;const i=Gs(t.xValue0),n=Gs(t.xValue1);return e.find(s=>Gs(s.xValue0)===i&&Gs(s.xValue1)===n)?.span}function fV(t,e,i,n,s,a,o){const r=t.data[n.datumIndex],l=r.span,c=bL(r,s);if(c==null){const u=fW(l,e,t,i,n,a);o.added.push({from:u,to:l})}else o.removed.push({from:c,to:c}),o.moved.push({from:c,to:l}),o.added.push({from:l,to:l})}function mV(t,e,i,n,s,a,o){const r=t.data[n.datumIndex],l=r.span,c=bL(r,s);if(c==null){const u=fW(l,e,t,i,n,a);o.removed.push({from:l,to:u})}else o.removed.push({from:l,to:l}),o.moved.push({from:l,to:c}),o.added.push({from:c,to:c})}function yV(t,e,i,n,s){const a=n.scales.x,o=e[s.xValue0Index],r=e[s.xValue1Index];let l,c;if(a?.type==="continuous"||a?.type==="log"?(l=i.data.findLast(D=>Gs(D.xValue0)<=o),c=i.data.find(D=>Gs(D.xValue1)>=r)):(l=i.data.find(D=>Gs(D.xValue0)===o),c=i.data.find(D=>Gs(D.xValue1)===r)),l==null||c==null)return;const[{x:u},{x:d}]=Ks(t),g=vs(l.xValue0,i.scales.x),f=vs(l.yValue0,i.scales.y),y=vs(c.xValue1,i.scales.x),x=vs(c.yValue1,i.scales.y);let S=n.data[s.datumIndex].span;return S=If(S,{x:g,y:f},{x:y,y:x}),S=IT(S,u,d),S}function fit(t,e,i,n,s,a,o,r,l){const c=s+1,u=o.find(I=>I.xValue0Index<=s&&I.xValue1Index>=c),d=a.find(I=>I.xValue0Index<=s&&I.xValue1Index>=c),g=e.zeroData,f=t.zeroData;if(u==null&&d!=null){fV(t,i,a,d,g,r,l);return}else if(u!=null&&d==null){mV(e,i,o,u,f,r,l);return}else if(u==null||d==null)return;let y;u.xValue0Index===d.xValue0Index&&u.xValue1Index===d.xValue1Index?y=0:u.xValue0Index<=d.xValue0Index&&u.xValue1Index>=d.xValue1Index?y=-1:u.xValue0Index>=d.xValue0Index&&u.xValue1Index<=d.xValue1Index?y=1:y=0;const x=e.data[u.datumIndex],S=gV(x.span,e,n,s,u),D=t.data[d.datumIndex],A=gV(D.span,t,n,s,d);if(y===1){const I=yV(S,n,e,t,d);I==null?mV(e,i,o,u,f,r,l):(l.removed.push({from:S,to:I}),l.moved.push({from:I,to:A}),l.added.push({from:A,to:A}))}else if(y===-1){const I=yV(A,n,t,e,u);I==null?fV(t,i,a,d,g,r,l):(l.removed.push({from:S,to:S}),l.moved.push({from:S,to:I}),l.added.push({from:I,to:A}))}else l.removed.push({from:S,to:S}),l.moved.push({from:S,to:A}),l.added.push({from:A,to:A})}function mit(t,e,i,n){const s={removed:[],moved:[],added:[]},{axisValues:a,oldDataAxisIndices:o,newDataAxisIndices:r}=t,l={xValue0Index:Math.max(o.at(0)?.xValue0Index??-1/0,r.at(0)?.xValue0Index??-1/0),xValue1Index:Math.min(o.at(-1)?.xValue1Index??1/0,r.at(-1)?.xValue1Index??1/0)};for(let c=0;ct.data.length&&t.data.length>0){const o=t.data.at(-1).span,[,r]=Ks(o),l=SM(o,r);for(let c=a;ce.data.length&&e.data.length>0){const o=e.data.at(-1).span,[,r]=Ks(o),l=SM(o,r);for(let c=a;cs.point);let n=Yj(i);switch(e.type){case"linear":break;case"smooth":n=Xj(i,e.tension);break;case"step":n=$j(i,e.position);break}return n.map(function(a,o){return{span:a,xValue0:t[o].xDatum,yValue0:t[o].yDatum,xValue1:t[o+1].xDatum,yValue1:t[o+1].yDatum}})}function TM(t,e,i=.001){return Math.abs(t.x-e.x)XS(l,c,e.removed),a=(l,c)=>XS(l,c,e.moved),o=(l,c)=>XS(l,c,e.added),r=vL(t,i,n);return{status:t,path:{addPhaseFn:o,updatePhaseFn:a,removePhaseFn:s},pathProperties:r}}function vL(t,e,i=1){const n=e==="none"?"updated":t,s={fromFn(a,o){const r={phase:wr[n]},l=a.previousDatum??o;return l!=null&&(r.segments=l),t==="removed"?r.finish={visible:!1}:t==="added"&&(r.start={visible:!0}),r},toFn(a,o){const r={phase:wr[n]},l=o;return l!=null&&(r.segments=l),r}};return e==="fade"?{fromFn(a,o){const r=t==="added"?0:i,l=t==="removed"?a.previousDatum??o:o;return{...s.fromFn(a,o),opacity:r,segments:l}},toFn(a,o){const r=t==="removed"?0:i,l=t==="removed"?a.previousDatum??o:o;return{...s.toFn(a,o),opacity:r,segments:l}}}:s}function xit(t,e,i,n=1){const s=t.scales.x?.type==="category",a=e.scales.x?.type==="category";if(s!==a||!cp(t.scales.x)||!cp(e.scales.x)||t.strokeData==null||e.strokeData==null)return;let o="updated";e.visible&&!t.visible?o="removed":!e.visible&&t.visible&&(o="added");const r=kb({scales:t.scales,data:t.strokeData.spans},{scales:e.scales,data:e.strokeData.spans},1);if(r==null)return;const l=mW(o,r,"fade",n),c=(i?.changed??!0)||!yl(t.scales.x,e.scales.x)||!yl(t.scales.y,e.scales.y)||o!=="updated";return{status:o,stroke:l,hasMotion:c}}function yW(t,e,i,n){if(e!=null){const[s,a]=e;if(s!==0||a!==1)return!1}if(ti.is(t)){const s=t.calcBandwidth(n)-t.calcBandwidth(i);if(s>0&&s<1)return!1}if(Rr.is(t)){const{bandwidth:s,step:a}=t;if(s>0&&s<1)return!1;const o=a-s;if(o>0&&o<1)return!1}return!0}var HC=t=>sf(t.yValue??0);function Jb(t,e,i){const{startingX:n,startingY:s}=Sit(t,e);return{isVertical:t,calculate:(o,r)=>{let l=t?o.x:n,c=t?s:o.y,u=t?o.width:0,d=t?0:o.height;const{opacity:g=1}=o;r&&(Number.isNaN(l)||Number.isNaN(c))&&({x:l,y:c}=r,u=t?r.width:0,d=t?0:r.height,t&&!HC(r)?c+=r.height:!t&&HC(r)&&(l+=r.width));let f;return o.clipBBox==null?f=void 0:HC(o)?f=t?new Tt(l,c-d,u,d):new Tt(l-u,c,u,d):f=new Tt(l,c,u,d),{x:l,y:c,width:u,height:d,clipBBox:f,opacity:g}},mode:i}}function vit(t,e){return{isVertical:t,calculate:(i,n)=>{let s=t?i.x:i.x+i.width/2,a=t?i.y+i.height/2:i.y,o=t?i.width:0,r=t?0:i.height;return n&&(Number.isNaN(s)||Number.isNaN(a))&&(s=t?n.x:n.x+n.width/2,a=t?n.y+n.height/2:n.y,o=t?n.width:0,r=t?0:n.height),{x:s,y:a,width:o,height:r,clipBBox:i.clipBBox,opacity:i.opacity??1}},mode:e}}function tx(t,e){const i=o=>o==null||Number.isNaN(o.x)||Number.isNaN(o.y);return{toFn:(o,r,l)=>l==="removed"&&o.datum==null&&t.mode==="fade"?{...ex(o,r),opacity:0}:l==="removed"||i(r)?t.calculate(r,o.previousDatum):{x:r.x,y:r.y,width:r.width,height:r.height,clipBBox:r.clipBBox,opacity:r.opacity??1},fromFn:(o,r,l)=>{l==="updated"&&i(r)?l="removed":l==="updated"&&i(o.previousDatum)&&(l="added");let c;l==="unknown"||l==="added"?(o.previousDatum==null&&t.mode==="fade"?c={...ex(o,r),opacity:0}:c=t.calculate(r,o.previousDatum),l==="unknown"&&(l=e)):c={x:o.x,y:o.y,width:o.width,height:o.height,clipBBox:o.clipBBox,opacity:o.opacity??1};const u=wr[l];return{...c,phase:u}},applyFn:(o,r,l)=>{o.resetAnimationProperties(r.x,r.y,r.width,r.height,r.opacity??1,r.clipBBox),o.crisp=l==="end"&&(o.datum?.crisp??!1)}}}function Sit(t,e){const i=e[t?z.Y:z.X];let n=1/0,s=0;return i?(t?s=i.scale.convert(ti.is(i.scale)?0:Math.max(...i.range)):n=i.scale.convert(ti.is(i.scale)?0:Math.min(...i.range)),{startingX:n,startingY:s}):{startingX:n,startingY:s}}function ex(t,{x:e,y:i,width:n,height:s,clipBBox:a,opacity:o=1}){return{x:e,y:i,width:n,height:s,clipBBox:a,opacity:o,crisp:t.datum?.crisp??!1}}function LM(t){for(const e of t){const i=e.nodes();e.batchedUpdate(function(){for(const s of i){const a=s.datum;a!=null&&(s.resetAnimationProperties(a.x,a.y,a.width,a.height,a.opacity??1,a.clipBBox),s.crisp=a.crisp??!1)}e.cleanup()})}}function SL(t,e){if(e===void 0)return;const{x:i,y:n,width:s,height:a}=e;return Ti.toCanvas(t.contentGroup,new Tt(i,n,s,a))}function ML(t,e,i,n){const s=t.canIncrementallyUpdate&&t.nodeIndex=n;f-=1)nb(t,i[f].span,sa.LineTo,!0);t.closePath(),nb(t,r,sa.MoveTo,!1),n=o}s=u,a=g}for(let o=e.length-1;o>=n;o-=1)nb(t,i[o].span,sa.LineTo,!0);t.closePath()}function jC(t,{path:e},i,n){for(let s=0;sjC(l,c,e.removed,i.removed),a=(l,c)=>jC(l,c,e.moved,i.moved),o=(l,c)=>jC(l,c,e.added,i.added),r=vL(t,n);return{status:t,path:{addPhaseFn:o,updatePhaseFn:a,removePhaseFn:s},pathProperties:r}}function Mit(t,e){const i=t.scales.x?.type==="category",n=e.scales.x?.type==="category";if(i!==n||!cp(t.scales.x)||!cp(e.scales.x))return;let s="updated";e.visible&&!t.visible?s="removed":!e.visible&&t.visible&&(s="added");const a=kb({scales:t.scales,data:t.fillData.spans},{scales:e.scales,data:e.fillData.spans},0);if(a==null)return;const o=kb({scales:t.scales,data:t.fillData.phantomSpans},{scales:e.scales,data:e.fillData.phantomSpans},0);if(o==null)return;const r=kb({scales:t.scales,data:t.strokeData.spans,zeroData:t.fillData.phantomSpans},{scales:e.scales,data:e.strokeData.spans,zeroData:e.fillData.phantomSpans},0);if(r==null)return;const l="none",c=xW(s,a,o,l),u=mW(s,r,l);return{status:s,fill:c,stroke:u}}function vW(t,e,i,n,s,a,o){let r=a?.reduced?.diff?.[t];if(r?.changed)return r;if(!o)return{changed:!1,added:new Set,updated:new Set,removed:new Set,moved:new Set};const l=Dit(n,s);return r==null&&a?.reduced?.diff!=null?(r={changed:!0,added:new Set,updated:new Set,removed:new Set,moved:new Set},l?r.updated=new Set(Array.from(e,({datum:c})=>i(c))):r.added=new Set(Array.from(e,({datum:c})=>i(c)))):l&&(r={changed:!0,added:new Set,updated:new Set(Array.from(e,({datum:c})=>i(c))),removed:new Set,moved:new Set}),r}function xV(t){return typeof t=="object"&&t!==null&&"groupScale"in t}function Dit(t,e){if(!e)return!1;const i=t.scales,n=e.scales;if(!yl(i.x,n.x)||!yl(i.y,n.y))return!0;if(!xV(t)||!xV(e))return!1;const s=t.groupScale,a=e.groupScale;return!yl(s,a)}function ix({id:t},e,i,n,...s){const a={...n,phase:n?.phase??(i?wr[i]:"trailing")};Uc(t,"markers",e,s,{opacity:0},{opacity:1},a);for(const o of s)o.cleanup()}function Ait({id:t},e,...i){Uc(t,"markers",e,i,{scalingX:0,scalingY:0},{scalingX:1,scalingY:1},{phase:"initial"});for(const n of i)n.cleanup()}function DL({id:t,nodeDataDependencies:e},i,n,...s){const a=e.seriesRectWidth;dn(t,"markers",i,s,{fromFn:(l,c)=>{const u=c.midPoint?.x??a;let d=Nt(0,nG(u/a),1);return Number.isNaN(d)&&(d=0),{scalingX:0,scalingY:0,delay:n?.delay??d,duration:n?.duration??mN,phase:n?.phase??"initial",start:n?.start,finish:n?.finish}},toFn:()=>({scalingX:1,scalingY:1})})}function rA(t){return{opacity:1,scalingX:1,scalingY:1}}function lA(t){for(const e of t){const i=e.nodes();e.batchedUpdate(function(){for(const s of i){const a=s.datum;if(a?.point==null)continue;const{x:o,y:r}=a.point;!Number.isFinite(o)||!Number.isFinite(r)||s.resetAnimationProperties(o,r,s.size,1,1,1)}e.cleanup()})}}function nx(t,e){return{x:e.point?.x??Number.NaN,y:e.point?.y??Number.NaN,scalingCenterX:e.point?.x??Number.NaN,scalingCenterY:e.point?.y??Number.NaN}}function cA(t,{datumIndex:e}){const i=t.getNodeData();if(i===void 0)return;const n=i[e],{point:s}=n??{};if(n==null||s==null)return;const a=t.getFormattedMarkerStyle(n),o=wn.anchor(a.shape),r=s.focusSize??a.size,l=4+r,c=l/2,u=(o.x-.5)*r,d=(o.y-.5)*r,g=n.point.x-c-u,f=n.point.y-c-d;return Ti.toCanvas(t.contentGroup,new Tt(g,f,l,l))}function AL(t,e,i,n=i){return n.enabled??i.enabled?(e.step??Tc(e.range)/Math.max(1,t))>1:!1}function hA(t,e,i,n){return n??(n={stroke:e.stroke,strokeOpacity:e.strokeOpacity,strokeWidth:e.strokeWidth}),UT.reduce((s,a)=>(s[a]=t.getMarkerStyle(i,{},void 0,{highlightState:a},void 0,n),s),{})}function IL({id:t,visible:e,nodeDataDependencies:i},n,...s){const{seriesRectWidth:a,seriesRectHeight:o}=i;Uc(t,"path_properties",n,s,{clipX:0},{clipX:a},{phase:"initial",start:{clip:!0,clipY:o,visible:e},finish:{clip:!1,visible:e}})}function WN({id:t},e,i,n="add",...s){Uc(t,e,i,s,{opacity:0},{opacity:1},{phase:n})}function kL(t){return e=>({visible:t.getVisible(),opacity:t.getOpacity(),clipScalingX:1,clip:!1})}function OM({nodeDataDependencies:t},e){const i=n=>Number.isFinite(n)?n:0;e.clipX=i(t.seriesRectWidth),e.clipY=i(t.seriesRectHeight)}var SW={[z.Angle]:["angleKey"],[z.Radius]:["radiusKey"]},MW={[z.Angle]:["angleName"],[z.Radius]:["radiusName"]},CL=class extends fL{constructor({categoryKey:t,pickModes:e=[1,0],canHaveAxes:i=!1,animationResetFns:n,...s}){super({...s,categoryKey:t,pickModes:e,canHaveAxes:i}),this.directions=[z.Angle,z.Radius],this.itemGroup=this.contentGroup.appendChild(new ee({name:"items"})),this.nodeData=[],this.itemSelection=pn.select(this.itemGroup,()=>this.nodeFactory(),!1),this.labelSelection=pn.select(this.labelGroup,()=>this.labelFactory(),!1),this.highlightSelection=pn.select(this.highlightNodeGroup,()=>this.nodeFactory()),this.highlightLabelSelection=pn.select(this.highlightLabelGroup,()=>this.labelFactory()),this.centerX=0,this.centerY=0,this.radius=0,this.maxChartMarkerSize=0,this.animationResetFns=n,this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:a=>this.animateEmptyUpdateReady(a)},reset:"empty",skip:"ready"},ready:{updateData:"waiting",clear:"clearing",highlight:a=>this.animateReadyHighlight(a),highlightMarkers:a=>this.animateReadyHighlightMarkers(a),resize:a=>this.animateReadyResize(a),reset:"empty",skip:"ready"},waiting:{update:{target:"ready",action:a=>this.animateWaitingUpdateReady(a)},reset:"empty",skip:"ready"},clearing:{update:{target:"empty",action:a=>this.animateClearingUpdateEmpty(a)},reset:"empty",skip:"ready"}},()=>this.checkProcessedDataAnimatable()),this.cleanup.register(this.ctx.eventsHub.on("legend:item-click",a=>this.onLegendItemClick(a)),this.ctx.eventsHub.on("legend:item-double-click",a=>this.onLegendItemDoubleClick(a)))}getItemNodes(){return[...this.itemGroup.children()]}getNodeData(){return this.nodeData}getKeyAxis(t){if(t===z.Angle)return this.properties.angleKeyAxis;if(t===z.Radius)return this.properties.radiusKeyAxis}setZIndex(t){super.setZIndex(t),this.contentGroup.zIndex=[t,gl.FOREGROUND],this.highlightGroup.zIndex=[t,gl.HIGHLIGHT],this.labelGroup.zIndex=[t,gl.LABEL]}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"&&this.animationState.transition("skip")}labelFactory(){const t=new Pa;return t.pointerEvents=1,t}getInnerRadius(){return 0}computeLabelsBBox(t,e){return null}getShapeFillBBox(){const t=this.radius;return{series:new Tt(-t,-t,t*2,t*2),axis:new Tt(-t,-t,t*2,t*2)}}resetAllAnimation(){const{item:t,label:e}=this.animationResetFns??{};this.ctx.animationManager.stopByAnimationGroupId(this.id),t&&Qn([this.itemSelection,this.highlightSelection],t),e&&Qn([this.labelSelection,this.highlightLabelSelection],e),this.itemSelection.cleanup(),this.labelSelection.cleanup(),this.highlightSelection.cleanup(),this.highlightLabelSelection.cleanup()}animateEmptyUpdateReady(t){this.ctx.animationManager.skipCurrentBatch(),this.resetAllAnimation()}animateWaitingUpdateReady(t){this.ctx.animationManager.skipCurrentBatch(),this.resetAllAnimation()}animateReadyHighlight(t){const{item:e,label:i}=this.animationResetFns??{};e&&Qn([this.highlightSelection],e),i&&Qn([this.highlightLabelSelection],i)}animateReadyHighlightMarkers(t){}animateReadyResize(t){this.resetAllAnimation()}animateClearingUpdateEmpty(t){this.ctx.animationManager.skipCurrentBatch(),this.resetAllAnimation()}computeFocusBounds(t){const e=this.getNodeData()?.[t.datumIndex];if(e!==void 0)return this.itemSelection.select(i=>i instanceof Tn&&i.datum===e)[0]}getSeriesRange(){return[Number.NaN,Number.NaN]}isSeriesHighlighted(t,e){if(!this.properties.highlight.enabled)return!1;const{series:i,legendItemName:n,datumIndex:s}=t??{},a=typeof s=="number"?e?.[s]:void 0;return i===this||a!=null&&a===n}},DW=(t=>(t[t.None=0]="None",t[t.Item=1]="Item",t[t.OtherItem=2]="OtherItem",t[t.Branch=3]="Branch",t[t.OtherBranch=4]="OtherBranch",t))(DW||{});function sb(t){const e=i=>i;switch(t){case 1:return"highlighted-item";case 2:return"unhighlighted-item";case 3:return"highlighted-branch";case 4:return"unhighlighted-branch";case 0:return"none";default:return e(t)}}var Ku=class extends Fr{constructor(){super(...arguments),this.childrenKey="children",this.fills=Object.values(un),this.strokes=Object.values(pc)}};T([b],Ku.prototype,"childrenKey",2);T([b],Ku.prototype,"sizeKey",2);T([b],Ku.prototype,"colorKey",2);T([b],Ku.prototype,"colorName",2);T([b],Ku.prototype,"fills",2);T([b],Ku.prototype,"strokes",2);T([b],Ku.prototype,"colorRange",2);var AW=class ZS{constructor(e,i,n,s,a,o,r,l,c,u,d){this.series=e,this.itemId=i,this.datumIndex=n,this.datum=s,this.sizeValue=a,this.colorValue=o,this.sumSize=r,this.depth=l,this.parent=c,this.children=u,this.style=d,this.midPoint={x:0,y:0}}get hasChildren(){return this.children.length>0}walk(e,i=ZS.Walk.PreOrder){i===ZS.Walk.PreOrder&&e(this);for(const n of this.children)n.walk(e,i);i===ZS.Walk.PostOrder&&e(this)}find(e){if(e(this))return this;for(const i of this.children){const n=i.find(e);if(n!=null)return n}}*[Symbol.iterator](){yield this;for(const e of this.children)yield*e}};AW.Walk={PreOrder:0,PostOrder:1};var Iit=AW,kit=class extends Wx{constructor(t){super({moduleCtx:t,pickModes:[1,0]}),this.colorDomain=[0,0],this.maxDepth=0,this.colorScale=new qf,this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:e=>this.animateEmptyUpdateReady(e)},reset:"empty",skip:"ready"},ready:{updateData:"waiting",clear:"clearing",highlight:e=>this.animateReadyHighlight(e),resize:e=>this.animateReadyResize(e),reset:"empty",skip:"ready"},waiting:{update:{target:"ready",action:e=>this.animateWaitingUpdateReady(e)},reset:"empty",skip:"ready"},clearing:{update:{target:"empty",action:e=>this.animateClearingUpdateEmpty(e)},reset:"empty",skip:"ready"}},()=>this.checkProcessedDataAnimatable())}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"&&this.animationState.transition("skip")}processData(){this.data?.commitPendingTransactions();const{NodeClass:t}=this,{childrenKey:e,sizeKey:i,colorKey:n,colorRange:s}=this.properties;let a=0,o=1/0,r=-1/0;const l=(g,f,y)=>{const x=y.depth==null?0:y.depth+1,S=e==null?void 0:g[e],D=S==null||S.length===0;let A=i==null?void 0:g[i];Number.isFinite(A)?A=Math.max(A,0):A=D?1:0;const I=A;a=Math.max(a,x);const w=n==null?void 0:g[n];typeof w=="number"&&(o=Math.min(o,w),r=Math.max(r,w));const N=this.getItemStyle({datumIndex:f,datum:g,depth:x,colorValue:w},D,!1);return c(new t(this,As(f.join(";")),f,g,A,w,I,x,y,[],N),S)},c=(g,f)=>{const{datumIndex:y}=g;if(f)for(const[x,S]of f.entries()){const D=l(S,y.concat(x),g);g.children.push(D),g.sumSize+=D.sumSize}return g},u=c(new t(this,"root",[],void 0,0,void 0,0,void 0,void 0,[],{}),this.data?.data),d=[o,r];this.colorScale.domain=oe.itemId===t)}dataCount(){return Number.NaN}getSeriesDomain(){return{domain:[Number.NaN,Number.NaN]}}getSeriesRange(){return[Number.NaN,Number.NaN]}getLegendData(t){const{colorKey:e,colorRange:i}=this.properties,{id:n,ctx:{legendManager:s},visible:a}=this;return t==="gradient"&&e!=null&&i!=null?[{legendType:"gradient",enabled:a&&s.getItemEnabled({seriesId:n}),seriesId:n,series:this.getFormatterContext("color"),colorRange:i,colorDomain:this.colorDomain}]:[]}getDatumIdFromData(t){return t.datumIndex.join(":")}getDatumId(t){return this.getDatumIdFromData(t)}removeMeIndexPathForIndex(t){return this.datumSelection.at(t+1)?.datum.datumIndex??[]}removeMeIndexForIndexPath(t){for(const{index:e,datum:i}of this.datumSelection)if(tr(i.datumIndex,t))return e-1;return 0}pickFocus(t){if(!this.rootNode?.children.length)return;const e=Nt(0,t.datumIndex-t.datumIndexDelta,this.datumSelection.length-1),{datumIndexDelta:i,otherIndexDelta:n}=t;let s=this.removeMeIndexPathForIndex(e);const a=s.reduce((l,c)=>l.children[c],this.rootNode);if(n>0&&a.hasChildren)s=[...s,0];else if(n<0&&s.length>1)s=s.slice(0,-1);else if(n===0&&i!==0){const l=a.parent.children.length-1;s=s.slice(),s[s.length-1]=Nt(0,s.at(-1)+i,l)}const o=s.reduce((l,c)=>l.children[c],this.rootNode),r=this.computeFocusBounds(this.datumSelection.at(e+1));if(r!=null)return{datum:o,datumIndex:this.removeMeIndexForIndexPath(s),otherIndex:o.depth,bounds:r,clipFocusBox:!0}}getDatumAriaText(t,e){if(!(t instanceof this.NodeClass)){pt.error(`datum is not HierarchyNode: ${JSON.stringify(t)}`);return}return this.ctx.localeManager.t("ariaAnnounceHierarchyDatum",{level:(t.depth??-1)+1,count:t.children.length,description:e})}getCategoryValue(t){}datumIndexForCategoryValue(t){}getActiveHighlightNode(){if(!this.properties.highlight.enabled)return;const t=this.ctx.highlightManager?.getActiveHighlight();if(t?.series===this)return t}getHierarchyHighlightState(t,e,i){if(t)return 1;if(e==null)return 0;const n=i.datumIndex?.[0],s=e.datumIndex?.[0];return n==null||s==null?0:n===s?3:4}getHierarchyHighlightStyles(t,e){switch(t){case 1:return Et(e.highlightedItem,e.highlightedBranch);case 3:return Et(e.unhighlightedItem,e.highlightedBranch);case 4:return e.unhighlightedBranch;default:return}}getHighlightStateString(t,e,i,n){if(!this.properties.highlight.enabled||i==null)return sb(0);const s=i.reduce((r,l)=>r?.children[l],this.rootNode),a=this.getActiveHighlightNode();if(s==null)return sb(0);const o=this.getHierarchyHighlightState(e??!1,a,s);return sb(o)}},uA=Math.PI/180,GC=t=>t*uA,UC=t=>-Math.log(Math.tan(Math.PI*.25+t*uA*.5)),WC=t=>t/uA,KC=t=>(Math.atan(Math.exp(-t))-Math.PI*.25)/(uA*.5),Cit=class KN extends OD{constructor(e,i){super(),this.domain=e,this.range=i,this.type="mercator",this.defaultTickCount=0,this.bounds=KN.bounds(e)}static bounds(e){const[[i,n],[s,a]]=e,o=GC(i),r=UC(n),l=GC(s),c=UC(a);return new Tt(Math.min(o,l),Math.min(r,c),Math.abs(l-o),Math.abs(c-r))}static fixedScale(){return new KN([[WC(0),KC(0)],[WC(1),KC(1)]],[[0,0],[1,1]])}toDomain(){}normalizeDomains(...e){let i=-1/0,n=1/0,s=-1/0,a=1/0;for(const o of e){const r=o.domain;for(const[l,c]of r)i=Math.min(l,i),n=Math.max(l,n),s=Math.min(c,s),a=Math.max(c,a)}return{domain:[[i,s],[n,a]],animatable:!0}}convert([e,i]){const[[n,s],[a,o]]=this.range,r=(a-n)/this.bounds.width,l=(o-s)/this.bounds.height;return[(GC(e)-this.bounds.x)*r+n,(UC(i)-this.bounds.y)*l+s]}invert([e,i]){const[[n,s],[a,o]]=this.range,r=(a-n)/this.bounds.width,l=(o-s)/this.bounds.height;return[WC((e-n)/r+this.bounds.x),KC((i-s)/l+this.bounds.y)]}getDomainMinMax(){return RD(this.domain)}},wit=class{constructor(t){this.minimumDelay=t?.minimumDelay??50,this.timeout=t?.timeout??100}schedule(t,e){this.cancel(),this.pending={computation:t,onComplete:e},this.minimumDelay>0?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=void 0,this.scheduleIdleCallback()},this.minimumDelay):this.scheduleIdleCallback()}demand(){if(this.pending)return this.cancelScheduled(),this.execute()}cancel(){this.cancelScheduled(),this.pending=void 0}isPending(){return this.pending!=null}scheduleIdleCallback(){const t=Math.max(0,this.timeout-this.minimumDelay);typeof requestIdleCallback=="function"?this.idleCallbackId=requestIdleCallback(this.execute.bind(this),{timeout:t}):this.idleCallbackId=setTimeout(()=>this.execute(),t)}cancelScheduled(){this.delayTimeoutId!=null&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=void 0),this.idleCallbackId!=null&&(typeof cancelIdleCallback=="function"?cancelIdleCallback(this.idleCallbackId):clearTimeout(this.idleCallbackId),this.idleCallbackId=void 0)}execute(){const{pending:t}=this;if(!t)return;this.pending=void 0,this.delayTimeoutId=void 0,this.idleCallbackId=void 0;const e=t.computation();return t.onComplete(e),e}},dA=class{constructor(){this._dataLength=0,this.executor=new wit}get filters(){return this._filters}aggregate(e){if(this.executor.cancel(),e.targetRange>1&&e.computePartial){const i=e.computePartial(this._filters);if(i){const{immediate:n,computeRemaining:s}=i;return s&&this.executor.schedule(s,a=>{this.mergeFilters(a)}),this._filters=n,n}}return this._filters=e.computeFull(this._filters),this._filters}ensureLevelForRange(e){if(!this._filters?.some(n=>n.maxRange>e)&&this.executor.isPending()){const n=this.executor.demand();n&&this.mergeFilters(n)}}getFilterForRange(e){return this._filters?.find(i=>i.maxRange>e)}cancel(){this.executor.cancel()}markStale(e){const i=this._dataLength>0?e/this._dataLength:0;if(i>=2||i<=.5||this._dataLength===0)this._filters=void 0;else if(this._filters)for(const n of this._filters)n.stale=!0;this._dataLength=e,this.executor.cancel()}mergeFilters(e){if(!this._filters||e.length===0)return;const i=[...this._filters,...e];i.sort((n,s)=>n.maxRange-s.maxRange),this._filters=i}},wL=class extends JT{constructor(){super(...arguments),this.shape="polygon",this.innerRadiusRatio=0,this.defaultTickMinSpacing=20}update(){super.update(),this.tickLineGroup.visible=this.tick.enabled,this.tickLabelGroup.visible=this.label.enabled}layoutCrossLines(){const e=this.label.getSideFlag(),i=this.hasDefinedDomain()||this.hasVisibleSeries(),{rotation:n,parallelFlipRotation:s,regularFlipRotation:a}=this.calculateRotations();for(const o of this.crossLines)o.sideFlag=-e,o.direction=n===-Math.PI/2?z.Angle:z.Radius,o.parallelFlipRotation=s,o.regularFlipRotation=a,o.calculateLayout?.(i,this.reverse)}updatePosition(){super.updatePosition();const e=Math.floor(this.translation.x),i=Math.floor(this.translation.y);this.tickLineGroup.translationX=e,this.tickLineGroup.translationY=i,this.tickLabelGroup.translationX=e,this.tickLabelGroup.translationY=i,this.crossLineRangeGroup.translationX=e,this.crossLineRangeGroup.translationY=i,this.crossLineLineGroup.translationX=e,this.crossLineLineGroup.translationY=i,this.crossLineLabelGroup.translationX=e,this.crossLineLabelGroup.translationY=i,this.tickLabelGroupSelection.each(CM())}computeLabelsBBox(e,i){return null}computeRange(){}getAxisLinePoints(){}};T([b],wL.prototype,"shape",2);T([b],wL.prototype,"innerRadiusRatio",2);var IW=class extends qx{calculateGridLine({index:t,tickId:e,translation:i},n,s,a,o){const{gridLine:r,horizontal:l,interval:c,range:u}=this;if(c.placement!=="between")return super.calculateGridLine({index:t,tickId:e,translation:i},n,s,a,o);const d=o[n-1],g=d?i-(i-d.translation)/2:u[0],[f,y,x,S]=l?[g,Math.max(s,a),g,Math.min(s,a)]:[Math.min(s,a),g,Math.max(s,a),g],{style:D}=r,{stroke:A,strokeWidth:I=0,lineDash:w}=D[t%D.length]??{};return{tickId:e,offset:g,x1:f,y1:y,x2:x,y2:S,stroke:A,strokeWidth:I,lineDash:w}}calculateGridFills(t,e,i){return this.interval.placement!=="between"?super.calculateGridFills(t,e,i):t.map((n,s)=>this.calculateGridFill(n,s,n.index,e,i,t))}calculateGridFill({tickId:t,translation:e},i,n,s,a,o){const{gridLine:r,horizontal:l,interval:c,range:u}=this;if(c.placement!=="between")return super.calculateGridFill({tickId:t,translation:e},i,n,s,a,o);const d=o[i-1],g=o[i+1],f=d?e-(e-d.translation)/2:u[0],y=g?e+(g.translation-e)/2:u[1],[x,S,D,A]=l?[f,Math.max(s,a),y,Math.min(s,a)]:[Math.min(s,a),f,Math.max(s,a),y],{fill:I,fillOpacity:w}=r.style[n%r.style.length]??{};return{tickId:t,x1:x,y1:S,x2:D,y2:A,fill:I,fillOpacity:w}}calculateTickLine({isPrimary:t,tickId:e,translation:i},n,s,a,o=0){const{horizontal:r,interval:l,primaryTick:c,range:u,tick:d}=this;if(l.placement!=="between")return super.calculateTickLine({isPrimary:t,tickId:e,translation:i},n,s,a,o);const g=t&&c?.enabled?c:d,f=-s*this.getTickSize(g),y=a[n-1],x=y?i-(i-y.translation)/2:u[0],S=-s*(o+this.getTickSpacing(g)),[D,A,I,w]=r?[x,S,x,S+f]:[S,x,S+f,x],{stroke:N,width:O}=g;return{tickId:e,offset:x,x1:D,y1:A,x2:I,y2:w,stroke:N,strokeWidth:O,lineDash:void 0}}},Nit={top:{xTranslationDirection:0,yTranslationDirection:-1},bottom:{xTranslationDirection:0,yTranslationDirection:1},left:{xTranslationDirection:-1,yTranslationDirection:0},right:{xTranslationDirection:1,yTranslationDirection:0},"top-left":{xTranslationDirection:1,yTranslationDirection:-1},"top-right":{xTranslationDirection:-1,yTranslationDirection:-1},"bottom-left":{xTranslationDirection:1,yTranslationDirection:1},"bottom-right":{xTranslationDirection:-1,yTranslationDirection:1},inside:{xTranslationDirection:0,yTranslationDirection:0},"inside-left":{xTranslationDirection:1,yTranslationDirection:0},"inside-right":{xTranslationDirection:-1,yTranslationDirection:0},"inside-top":{xTranslationDirection:0,yTranslationDirection:1},"inside-bottom":{xTranslationDirection:0,yTranslationDirection:-1},"inside-top-left":{xTranslationDirection:1,yTranslationDirection:1},"inside-bottom-left":{xTranslationDirection:1,yTranslationDirection:-1},"inside-top-right":{xTranslationDirection:-1,yTranslationDirection:1},"inside-bottom-right":{xTranslationDirection:-1,yTranslationDirection:-1}},Tit={top:{xTranslationDirection:1,yTranslationDirection:0},bottom:{xTranslationDirection:-1,yTranslationDirection:0},left:{xTranslationDirection:0,yTranslationDirection:-1},right:{xTranslationDirection:0,yTranslationDirection:1},"top-left":{xTranslationDirection:-1,yTranslationDirection:-1},"top-right":{xTranslationDirection:-1,yTranslationDirection:1},"bottom-left":{xTranslationDirection:1,yTranslationDirection:-1},"bottom-right":{xTranslationDirection:1,yTranslationDirection:1},inside:{xTranslationDirection:0,yTranslationDirection:0},"inside-left":{xTranslationDirection:0,yTranslationDirection:1},"inside-right":{xTranslationDirection:0,yTranslationDirection:-1},"inside-top":{xTranslationDirection:-1,yTranslationDirection:0},"inside-bottom":{xTranslationDirection:1,yTranslationDirection:0},"inside-top-left":{xTranslationDirection:-1,yTranslationDirection:1},"inside-bottom-left":{xTranslationDirection:1,yTranslationDirection:1},"inside-top-right":{xTranslationDirection:-1,yTranslationDirection:-1},"inside-bottom-right":{xTranslationDirection:1,yTranslationDirection:-1}};function Lit({yDirection:t,padding:e=0,position:i="top",bbox:n}){const s=t?Nit:Tit,{xTranslationDirection:a,yTranslationDirection:o}=s[i],r=a*(e+n.width/2),l=o*(e+n.height/2);return{xTranslation:r,yTranslation:l}}function EM(t,e,i,n,s){const a=(d,g,f,y)=>{i.animate({id:`${t}_${e}_${g.id}_${d}`,groupId:t,from:f?1:0,to:1,ease:Lc,collapsable:f,onUpdate(x,S){S&&d!=="removed"||(g.path.clear(!0),y(x,g),g.checkPathDirty())},onStop(){d==="added"&&(g.path.clear(!0),y(1,g),g.checkPathDirty())},phase:wr[d]})},o=new Tn,r=d=>(o.resetPathDirty(),d(0,o),o.resetPathDirty(),d(1,o),o.checkPathDirty(),o.isPathDirty()),{addPhaseFn:l,updatePhaseFn:c,removePhaseFn:u}=s;for(const d of n)i.isSkipped()||(a("removed",d,!r(u),u),a("updated",d,!r(c),c)),a("added",d,!r(l),l)}var zl=class extends Zf{constructor(){super(...arguments),this.enabled=!0,this.color="rgba(0, 0, 0, 0.5)",this.xOffset=0,this.yOffset=0,this.blur=5}};T([b,ut()],zl.prototype,"enabled",2);T([b,ut()],zl.prototype,"color",2);T([b,ut()],zl.prototype,"xOffset",2);T([b,ut()],zl.prototype,"yOffset",2);T([b,ut()],zl.prototype,"blur",2);function kW({startAngle:t,endAngle:e,innerRadius:i,outerRadius:n}){let s=1/0,a=1/0,o=-1/0,r=-1/0;const l=(c,u)=>{s=Math.min(c,s),a=Math.min(u,a),o=Math.max(c,o),r=Math.max(u,r)};return l(i*Math.cos(t),i*Math.sin(t)),l(i*Math.cos(e),i*Math.sin(e)),l(n*Math.cos(t),n*Math.sin(t)),l(n*Math.cos(e),n*Math.sin(e)),Ba(0,t,e)&&l(n,0),Ba(Math.PI*.5,t,e)&&l(0,n),Ba(Math.PI,t,e)&&l(-n,0),Ba(Math.PI*1.5,t,e)&&l(0,-n),new Tt(s,a,o-s,r-a)}function YN(t,e,i){const n=Math.sqrt(Math.pow(t,2)+Math.pow(e,2)),{innerRadius:s,outerRadius:a}=i;if(i.startAngle===i.endAngle||nMath.max(s,a))return!1;const o=uM(i.startAngle),r=uM(i.endAngle),l=Math.atan2(e,t);return o=o:l<=r&&l>=-Math.PI||l>=o&&l<=Math.PI}function Oit(t,e,i,n,s,a,o,r,l,c){if(Number.isNaN(t)||Number.isNaN(e))return 0;[s,n]=[n,s];const u=(c-r)/(l-o),d=r-u*o,g=Math.pow(u,2)+1,f=2*(u*(d-e)-t),y=Math.pow(t,2)+Math.pow(d-e,2)-Math.pow(i,2),x=Math.pow(f,2)-4*g*y;if(x<0)return 0;const S=(-f+Math.sqrt(x))/2/g,D=(-f-Math.sqrt(x))/2/g;let A=0;for(const I of[S,D]){if(!(I>=Math.min(o,l)&&I<=Math.max(o,l)))continue;const N=u*I+d,O=I-t,L=N-e,R=Math.atan2(L,O);Ba(R,n,s)&&A++}return A}function vV(t,e){const{startAngle:i,endAngle:n,innerRadius:s,outerRadius:a}=e,o={x:a*Math.cos(i),y:a*Math.sin(i)},r={x:a*Math.cos(n),y:a*Math.sin(n)},l=s===0?{x:0,y:0}:{x:s*Math.cos(i),y:s*Math.sin(i)},c=s===0?{x:0,y:0}:{x:s*Math.cos(n),y:s*Math.sin(n)};return bb(t.start.x,t.start.y,t.end.x,t.end.y,o.x,o.y,l.x,l.y)||bb(t.start.x,t.start.y,t.end.x,t.end.y,r.x,r.y,c.x,c.y)||Oit(0,0,a,i,n,!0,t.start.x,t.start.y,t.end.x,t.end.y)}function Eit(t,e){const i={x:t.x,y:t.y},n={x:t.x+t.width,y:t.y},s={x:t.x,y:t.y+t.height},a={x:t.x+t.width,y:t.y+t.height};return vV({start:i,end:n},e)||vV({start:s,end:a},e)}function SV(t,e,i,n){if(i===0&&n===0)return 0;if(Math.asin(Math.abs(1*i)/(t+1*i))+Math.asin(Math.abs(1*n)/(t+1*n))-e<0)return 1;let a=0,o=1;for(let r=0;r<8;r+=1){const l=(a+o)/2;Math.asin(Math.abs(l*i)/(t+l*i))+Math.asin(Math.abs(l*n)/(t+l*n))-e<0?a=l:o=l}return a}var Rit=1e-6;function pu(t,e){return fl(t,e)=2*Math.PI?2*Math.PI:ze(e-t);return t=pu(t,i),e=t+s,{startAngle:t,endAngle:e}}function K0(t,e,i,n,s,a){const o=Math.sin(a),r=Math.cos(a),l=t**2+e**2-i**2;let c,u,d,g;if(r>.5){const I=o/r,w=1+I**2,N=-2*(t+e*I),O=N**2-4*w*l;if(O<0)return;const L=(-N+Math.sqrt(O))/(2*w),R=(-N-Math.sqrt(O))/(2*w);c=L,u=L*I,d=R,g=R*I}else{const I=r/o,w=1+I**2,N=-2*(e+t*I),O=N**2-4*w*l;if(O<0)return;const L=(-N+Math.sqrt(O))/(2*w),R=(-N-Math.sqrt(O))/(2*w);c=L*I,u=L,d=R*I,g=R}const f=r,y=o,x=c*f+u*y,S=d*f+g*y,D=x>0?pu(Math.atan2(u-e,c-t),n):Number.NaN,A=S>0?pu(Math.atan2(g-e,d-t),n):Number.NaN;if(D>=n&&D<=s)return D;if(A>=n&&A<=s)return A}function Y0(t,e,i,n,s,a){const o=Math.hypot(t,e),r=(o**2-i**2+a**2)/(2*o),l=o-r,c=Math.atan2(e,t),u=Math.acos(-l/i),d=pu(c+u,n),g=pu(c-u,n);if(d>=n&&d<=s)return d;if(g>=n&&g<=s)return g}var CW=class extends Tn{constructor(e=""){super(),this._d="",this.d=e}get d(){return this._d}set d(e){e!==this._d&&(this._d=e,this.path.clear(),this.path.appendSvg(e),this.checkPathDirty())}},Pit=class extends Jf(CW){isPointInPath(t,e){return super.isPointInPath(t-this.translationX,e-this.translationY)}},zit=class wW extends du{static is(e){return e instanceof wW}setSourceScale(e){this._sourceScale=e;const i=s=>{Object.defineProperty(this,s,{get:()=>e[s],set:a=>{e[s]=a},configurable:!0})};i("domain"),i("range"),i("paddingInner"),i("paddingOuter"),i("round");const n=s=>{Object.defineProperty(this,s,{get:()=>e[s],configurable:!0})};n("bandwidth"),n("step"),n("inset"),n("rawBandwidth")}get bands(){return this._sourceScale?.bands??super.bands}refresh(){this._sourceScale?.refresh?.()}ordinalRange(e){return this._sourceScale?this._sourceScale.ordinalRange(e):super.ordinalRange(e)}convert(e,i){this.refresh();const n=this.findIndex(e,i?.alignment);return n==null||n<0||n>=this.bands.length?Number.NaN:this.ordinalRange(n)}findIndex(e,i=wi.Leading){if(e==null)return;const{bands:n,reversed:s}=this,a=n.length;if(a===0)return;if(a===1)return 0;const o=n[0],r=n[a-1];if(o==null||r==null)return this._sourceScale?.findIndex(e,i);const l=e.valueOf(),c=o.valueOf(),u=r.valueOf(),d=(l-c)/(u-c),g=s?(1-d)*(a-1):d*(a-1);return i===wi.Leading?Math.max(0,Math.min(a-1,Math.floor(g))):Math.max(0,Math.min(a-1,Math.ceil(g)))}},NW=class $N{constructor(e,i,n,s){this.startAngle=e,this.endAngle=i,this.innerRadius=n,this.outerRadius=s}clone(){const{startAngle:e,endAngle:i,innerRadius:n,outerRadius:s}=this;return new $N(e,i,n,s)}equals(e){return this.startAngle===e.startAngle&&this.endAngle===e.endAngle&&this.innerRadius===e.innerRadius&&this.outerRadius===e.outerRadius}[LD](e,i){return new $N(this.startAngle*(1-i)+e.startAngle*i,this.endAngle*(1-i)+e.endAngle*i,this.innerRadius*(1-i)+e.innerRadius*i,this.outerRadius*(1-i)+e.outerRadius*i)}},dm=class extends Oc{constructor(t){super(),this.sourceImage=t,this.x=0,this.y=0,this.width=0,this.height=0,this.opacity=1}render(t){const{ctx:e}=t,i=this.sourceImage;i&&(e.globalAlpha=this.opacity,e.drawImage(i,0,0,i.width,i.height,this.x,this.y,this.width,this.height)),super.render(t)}};T([ut()],dm.prototype,"x",2);T([ut()],dm.prototype,"y",2);T([ut()],dm.prototype,"width",2);T([ut()],dm.prototype,"height",2);T([ut()],dm.prototype,"opacity",2);var Bl=class extends Tn{constructor(){super(...arguments),this.centerX=0,this.centerY=0,this.radius=10,this.startAngle=0,this.endAngle=Math.PI*2,this.counterClockwise=!1,this.type=0}get fullPie(){return be(ze(this.startAngle),ze(this.endAngle))}updatePath(){const t=this.path;t.clear(),t.arc(this.centerX,this.centerY,this.radius,this.startAngle,this.endAngle,this.counterClockwise),this.type===1?t.closePath():this.type===2&&!this.fullPie&&(t.lineTo(this.centerX,this.centerY),t.closePath())}computeBBox(){return new Tt(this.centerX-this.radius,this.centerY-this.radius,this.radius*2,this.radius*2)}isPointInPath(t,e){const i=this.getBBox();return this.type!==0&&i.containsPoint(t,e)&&this.path.isPointInPath(t,e)}};Bl.className="Arc";T([ut()],Bl.prototype,"centerX",2);T([ut()],Bl.prototype,"centerY",2);T([ut()],Bl.prototype,"radius",2);T([ut()],Bl.prototype,"startAngle",2);T([ut()],Bl.prototype,"endAngle",2);T([ut()],Bl.prototype,"counterClockwise",2);T([ut()],Bl.prototype,"type",2);function $0(t,e,i){const n=Math.hypot(t,e),a=Math.atan2(e,t)+i;return{x:Math.cos(a)*n,y:Math.sin(a)*n}}var Gr=class extends Tn{constructor(){super(...arguments),this.isBeveled=!0,this.columnWidth=0,this.startAngle=0,this.endAngle=0,this.outerRadius=0,this.innerRadius=0,this.axisInnerRadius=0,this.axisOuterRadius=0}set cornerRadius(e){}computeBBox(){const{columnWidth:e}=this,[i,n]=this.normalizeRadii(this.innerRadius,this.outerRadius),s=this.getRotation(),a=-e/2,o=e/2,r=-n,l=-i;let c=1/0,u=1/0,d=-1/0,g=-1/0;for(let f=0;f<4;f+=1){const{x:y,y:x}=$0(f%2===0?a:o,f<2?r:l,s);c=Math.min(y,c),u=Math.min(x,u),d=Math.max(y,d),g=Math.max(x,g)}return new Tt(c,u,d-c,g-u)}getRotation(){const{startAngle:e,endAngle:i}=this,n=fl(e,i);return ze(e+n/2+Math.PI/2)}normalizeRadii(e,i){return e>i?[i,e]:[e,i]}updatePath(){const{isBeveled:e}=this;e?this.updateBeveledPath():this.updateRectangularPath(),this.checkPathDirty()}updateRectangularPath(){const{columnWidth:e,path:i}=this,[n,s]=this.normalizeRadii(this.innerRadius,this.outerRadius),a=-e/2,o=e/2,r=-s,l=-n,c=this.getRotation(),u=[[a,l],[a,r],[o,r],[o,l]].map(([d,g])=>$0(d,g,c));i.clear(!0),i.moveTo(u[0].x,u[0].y),i.lineTo(u[1].x,u[1].y),i.lineTo(u[2].x,u[2].y),i.lineTo(u[3].x,u[3].y),i.closePath()}calculateCircleIntersection(e,i){const n=e*e;if(is||Math.hypot(l,c)>s;if(!g&&!f&&!y){this.updateRectangularPath();return}const x=g?this.calculateBothIntersections(r,l,a):null,S=f?this.calculateBothIntersections(r,l,o):null,D=y?this.calculateAxisOuterIntersections(r,l,s):null;if(g&&!x||f&&!S||y&&!D){this.updateRectangularPath();return}i.clear(!0);const A={left:r,right:l,top:c,bottom:u,rotation:d};x?this.moveToRotated(r,x.left.y,d):this.moveToRotated(r,u,d),x?i.arc(0,0,a,d+x.left.angle,d+x.right.angle,!1):this.lineToRotated(l,u,d),S?(this.lineToRotated(l,S.right.y,d),i.arc(0,0,o,d+S.right.angle,d+S.left.angle,!0)):D?this.renderTopWithCornerClipping(s,D,A):(this.lineToRotated(l,c,d),this.lineToRotated(r,c,d)),i.closePath()}};Gr.className="RadialColumnShape";T([ut()],Gr.prototype,"isBeveled",2);T([ut()],Gr.prototype,"columnWidth",2);T([ut()],Gr.prototype,"startAngle",2);T([ut()],Gr.prototype,"endAngle",2);T([ut()],Gr.prototype,"outerRadius",2);T([ut()],Gr.prototype,"innerRadius",2);T([ut()],Gr.prototype,"axisInnerRadius",2);T([ut()],Gr.prototype,"axisOuterRadius",2);function TW(t,e,i,n,s){const a=fl(t,e),o=a*(1-n)/2;if(t+=o,e-=o,a<.001)return 2*i*s;if(a>=2*Math.PI){const f=t+a/2;t=f-Math.PI,e=f+Math.PI}const r=i*Math.cos(t),l=i*Math.sin(t),c=i*Math.cos(e),u=i*Math.sin(e),d=Math.floor(Math.hypot(r-c,l-u)),g=2*i*s;return Math.max(1,Math.min(g,d))}var YC=class{constructor(t,e,i,n,s){this.cx=t,this.cy=e,this.r=i,this.a0=n,this.a1=s,this.a0>=this.a1&&(this.a0=Number.NaN,this.a1=Number.NaN)}isValid(){return Number.isFinite(this.a0)&&Number.isFinite(this.a1)}pointAt(t){return{x:this.cx+this.r*Math.cos(t),y:this.cy+this.r*Math.sin(t)}}clipStart(t){t==null||!this.isValid()||t=this.a1)&&(this.a0=Number.NaN,this.a1=Number.NaN))}clipEnd(t){t==null||!this.isValid()||t>this.a1||(this.a1=t,(Number.isNaN(t)||this.a0>=this.a1)&&(this.a0=Number.NaN,this.a1=Number.NaN))}},Ts=class extends Tn{constructor(){super(...arguments),this.centerX=0,this.centerY=0,this.innerRadius=10,this.outerRadius=20,this.startAngle=0,this.endAngle=Math.PI*2,this.clipSector=void 0,this.concentricEdgeInset=0,this.radialEdgeInset=0,this.startOuterCornerRadius=0,this.endOuterCornerRadius=0,this.startInnerCornerRadius=0,this.endInnerCornerRadius=0}set inset(e){this.concentricEdgeInset=e,this.radialEdgeInset=e}set cornerRadius(e){this.startOuterCornerRadius=e,this.endOuterCornerRadius=e,this.startInnerCornerRadius=e,this.endInnerCornerRadius=e}computeBBox(){return kW(this).translate(this.centerX,this.centerY)}normalizedRadii(){const{concentricEdgeInset:e}=this;let{innerRadius:i,outerRadius:n}=this;return i=i>0?i+e:0,n=Math.max(n-e,0),{innerRadius:i,outerRadius:n}}normalizedClipSector(){const{clipSector:e}=this;if(e==null)return;const{startAngle:i,endAngle:n}=W0(this.startAngle,this.endAngle),{innerRadius:s,outerRadius:a}=this.normalizedRadii(),o=W0(e.startAngle,e.endAngle,i);return new NW(Math.max(i,o.startAngle),Math.min(n,o.endAngle),Math.max(s,e.innerRadius),Math.min(a,e.outerRadius))}getAngleOffset(e){return e>0?this.radialEdgeInset/e:0}arc(e,i,n,s,a,o,r,l){if(e<=0)return;const{startAngle:c,endAngle:u}=W0(this.startAngle,this.endAngle),{innerRadius:d,outerRadius:g}=this.normalizedRadii(),f=this.normalizedClipSector();if(l&&d<=0)return;const y=l?this.getAngleOffset(d+e):this.getAngleOffset(g-e),x=r?c+y+i:u-y-i,S=l?d+e:g-e,D=S*Math.cos(x),A=S*Math.sin(x);if(f!=null&&(!r&&!(x>=c-1e-6&&x<=f.endAngle-1e-6)||r&&!(x>=f.startAngle+1e-6&&x<=u-1e-6)||l&&Sf.outerRadius+1e-6))return;const I=new YC(D,A,e,n,s);if(f!=null){l?(I.clipStart(K0(D,A,e,n,s,f.endAngle)),I.clipEnd(K0(D,A,e,n,s,f.startAngle))):(I.clipStart(K0(D,A,e,n,s,f.startAngle)),I.clipEnd(K0(D,A,e,n,s,f.endAngle)));let R,P;if(r?(R=Y0(D,A,e,n,s,f.innerRadius),P=Y0(D,A,e,n,s,f.outerRadius)):(R=Y0(D,A,e,n,s,f.outerRadius),P=Y0(D,A,e,n,s,f.innerRadius)),I.clipStart(R),I.clipEnd(P),R!=null){const{x:B,y:F}=I.pointAt(R),H=pu(Math.atan2(F,B),c);r?o?.clipStart(H):a.clipEnd(H)}if(P!=null){const{x:B,y:F}=I.pointAt(P),H=pu(Math.atan2(F,B),c);r?a.clipStart(H):o?.clipEnd(H)}}if(f!=null){const{x:R,y:P}=I.pointAt((I.a0+I.a1)/2);if(!YN(R,P,f))return}const{x:w,y:N}=I.pointAt(r===l?I.a0:I.a1),O=pu(Math.atan2(N,w),c),L=l?o:a;return r?L?.clipStart(O):L?.clipEnd(O),I}updatePath(){const{path:i,centerX:n,centerY:s,concentricEdgeInset:a,radialEdgeInset:o}=this;let{startOuterCornerRadius:r,endOuterCornerRadius:l,startInnerCornerRadius:c,endInnerCornerRadius:u}=this;const{startAngle:d,endAngle:g}=W0(this.startAngle,this.endAngle),{innerRadius:f,outerRadius:y}=this.normalizedRadii(),x=this.normalizedClipSector(),S=g-d,D=S>=2*Math.PI-1e-6;i.clear();const A=this.getAngleOffset(f),I=S-2*A,w=y-f,N=f>0&&I>0?2*f*Math.sin(I/2):0,O=y>0&&I>0?2*y*Math.sin(I/2):0;if(r=Math.floor(Math.max(0,Math.min(r,O/2,w/2))),l=Math.floor(Math.max(0,Math.min(l,O/2,w/2))),c=Math.floor(Math.max(0,Math.min(c,N/2,w/2))),u=Math.floor(Math.max(0,Math.min(u,N/2,w/2))),f===0&&y===0||f>y||N<0||O<=0)return;if((x?.startAngle??d)===(x?.endAngle??g))return;if(D&&this.clipSector==null&&r===0&&l===0&&c===0&&u===0){i.moveTo(n+y*Math.cos(d),s+y*Math.sin(d)),i.arc(n,s,y,d,g),f>a&&(i.moveTo(n+f*Math.cos(g),s+f*Math.sin(g)),i.arc(n,s,f,g,d,!0)),i.closePath();return}else if(this.clipSector==null&&Math.abs(f-y)<1e-6){i.arc(n,s,y,d,g,!1),i.arc(n,s,y,g,d,!0),i.closePath();return}const R=this.getAngleOffset(y);if(S<2*R)return;const B=(x?.innerRadius??f)>a,F=f0?Math.min(w/H,1):1;r*=$,l*=$,c*=$,u*=$;const Y=SV(y,S-2*R,-r,-l);if(r*=Y,l*=Y,!F&&B){const zt=SV(f,S-2*A,c,u);c*=zt,u*=zt}else c=0,u=0;const U=Math.max(r+c,l+u),V=U>0?Math.min(w/U,1):1;r*=V,l*=V,c*=V,u*=V;let Z=0,W=0;const q=r/(y-r),nt=l/(y-l);if(q>=0&&q<1-1e-6)Z=Math.asin(q);else{Z=S/2;const zt=y/(1/Math.sin(Z)+1);r=Math.min(zt,r)}if(nt>=0&&nt<1-1e-6)W=Math.asin(nt);else{W=S/2;const zt=y/(1/Math.sin(W)+1);l=Math.min(zt,l)}const G=Math.asin(c/(f+c)),et=Math.asin(u/(f+u)),st=x?.outerRadius??y,lt=this.getAngleOffset(st),mt=new YC(0,0,st,d+lt,g-lt),Dt=x?.innerRadius??f,kt=this.getAngleOffset(Dt),Vt=B?new YC(0,0,Dt,d+kt,g-kt):void 0;x!=null&&(mt.clipStart(x.startAngle),mt.clipEnd(x.endAngle),Vt?.clipStart(x.startAngle),Vt?.clipEnd(x.endAngle));const Kt=this.arc(r,Z,d-Math.PI*.5,d+Z,mt,Vt,!0,!1),ae=this.arc(l,W,g-W,g+Math.PI*.5,mt,Vt,!1,!1),ne=this.arc(u,et,g+Math.PI*.5,g+Math.PI-et,mt,Vt,!1,!0),Qt=this.arc(c,G,d+Math.PI+G,d+Math.PI*1.5,mt,Vt,!0,!0);if(!(F&&B)){if(F){const zt=S0&&zt{n.hasPopup()||this.expandSubMenu(i,void 0)},this.handleMouseMove=(i,n)=>{n.focus({preventScroll:!0})}}destructor(){this.collapse({mode:"2"})}addSeparator(){const e=this.elem.ownerDocument.createElement("div");return ye(e,"role","separator"),this.elem.appendChild(e),e}toggleChildEnabledByIndex(e,i){this.children.at(e)?.setEnabled(i)}onChildAdded(e){super.onChildAdded(e),e.addListener("mouseenter",this.handleMouseEnter),e.addListener("mousemove",this.handleMouseMove)}onChildRemoved(e){super.onChildRemoved(e),e.removeListener("mouseenter",this.handleMouseEnter),e.removeListener("mousemove",this.handleMouseMove)}addSubMenu(){const e=new NL,i=new EW(this.orientation);i.id=lu();const n=()=>{this.collapseExpandedSubMenu(i),e.expandControlled()},s=a=>{const o=ff(this.elem)?"ArrowLeft":"ArrowRight";Nx(a.sourceEvent)&&a.sourceEvent.code===o&&(this.collapseExpandedSubMenu(i),e.expandControlled())};return e.setControlled(i),e.setAriaHasPopup("menu"),e.addListener("click",n),e.addListener("mouseenter",n),e.addListener("keydown",s),this.addChild(e),{subMenuButton:e,subMenu:i}}expandSubMenu(e,i){const{expansionScope:n}=this;n&&(this.collapseExpandedSubMenu(i),i?.expand(e))}collapseExpandedSubMenu(e){const{expansionScope:i}=this;i&&(i.expandedSubMenu?.collapse({mode:"4"}),i.expandedSubMenu=e)}getCloseKeys(){return ff(this.elem)?["Escape","ArrowRight"]:["Escape","ArrowLeft"]}expand(e){if(this.expansionScope!=null)return;this.expansionScope={lastFocus:cT(e.sourceEvent),expandedSubMenu:void 0,abort:()=>this.collapse({mode:"1"}),close:()=>this.collapse({mode:"0"}),removers:new qe};const i=this.expansionScope,n=this.children.map(s=>s.getElement());ye(i.lastFocus,"aria-expanded",!0),i.removers.register(mj(this.elem,i.abort),yj(this.elem,i.abort),...this.children.map(s=>rT(s.getElement(),i.close,()=>this.getCloseKeys())),e?.overrideFocusVisible&&xj(this.elem,n,e.overrideFocusVisible)),this.internalListener?.dispatch("expand-widget",this,{type:"expand-widget"}),this.children[0]?.focus({preventScroll:!0})}collapse(e){const{mode:i="0"}=e??{};if(this.expansionScope===void 0)return;const{lastFocus:n,removers:s,expandedSubMenu:a}=this.expansionScope;this.expansionScope=void 0,a?.collapse({mode:"3"}),ye(n,"aria-expanded",!1),i==="0"&&n?.focus({preventScroll:!0}),s.flush(),this.internalListener?.dispatch("collapse-widget",this,{type:"collapse-widget",mode:i})}},MV="canvas-overlay",RW=class extends Ln{constructor(t,e,i){super(),this.ctx=t,this.hideFns=[],this.setOwnedWidget=(()=>{let n;return s=>{n?.destroy(),n=s}})(),this.moduleId=`popover-${e}`,i?.detached?this.element=$t("div"):this.element=t.domManager.addChild(MV,this.moduleId),this.element.setAttribute("role","presentation"),this.hideFns.push(()=>this.setOwnedWidget(void 0)),this.cleanup.register(()=>t.domManager.removeChild(MV,this.moduleId))}attachTo(t){this.element.parentElement||t.element.append(this.element)}hide(t){const{lastFocus:e=this.lastFocus}=t??{};if(this.element.children.length!==0){for(const i of this.hideFns)i();e?.focus(),this.lastFocus=void 0}}removeChildren(){this.element.replaceChildren()}initPopoverElement(t,e){if(!this.element.parentElement)throw new Error("Can not show popover that has not been attached to a parent.");return t??(t=$t("div","ag-charts-popover")),t.classList.toggle("ag-charts-popover",!0),e.ariaLabel!=null&&t.setAttribute("aria-label",e.ariaLabel),e.class!=null&&t.classList.add(e.class),e.minWidth!=null&&(t.style.minWidth=`${e.minWidth}px`),this.element.replaceChildren(t),t}showWidget(t,e,i){this.setOwnedWidget(e),this.initPopoverElement(e.getElement(),i),e.addListener("collapse-widget",()=>{this.hide(),t.setControlled(void 0),this.setOwnedWidget(void 0)}),t.setControlled(e),t.expandControlled(),i.onHide&&this.hideFns.push(i.onHide)}showWithChildren(t,e){const i=this.initPopoverElement(void 0,e);if(i.replaceChildren(...t),this.hideFns.push(()=>this.removeChildren()),e.onHide&&this.hideFns.push(e.onHide),e.initialFocus&&e.sourceEvent){const n=cT(e.sourceEvent);n!==void 0&&(this.lastFocus=n,this.initialFocus=e.initialFocus)}return i}getPopoverElement(){return this.element.firstElementChild}updatePosition(t){const e=this.getPopoverElement();e&&(e.style.setProperty("right","unset"),e.style.setProperty("bottom","unset"),t.x!=null&&e.style.setProperty("left",`${t.x}px`),t.y!=null&&e.style.setProperty("top",`${t.y}px`),this.initialFocus?.focus(),this.initialFocus=void 0)}},PW=class extends RW{setAnchor(t,e){this.anchor=t,this.fallbackAnchor=e,this.updatePosition(t),this.repositionWithinBounds()}updateAnchor(t){const e=t.anchor??this.anchor,i=t.fallbackAnchor??this.fallbackAnchor;e&&this.setAnchor(e,i)}showWidget(t,e,i){super.showWidget(t,e,i),this.updateAfterShow(i)}showWithChildren(t,e){const i=super.showWithChildren(t,e);return this.updateAfterShow(e),i}repositionWithinBounds(){const{anchor:t,ctx:e,fallbackAnchor:i}=this,n=this.getPopoverElement();if(!t||!n)return;const s=e.domManager.getBoundingClientRect(),{offsetWidth:a,offsetHeight:o}=n,{isRtl:r}=e.domManager,l=r?t.x-a:t.x;let c=Nt(0,l,s.width-a),u=Nt(0,t.y,s.height-o);if(c!==l&&i?.x!=null){const d=r?i.x:i.x-a;c=Nt(0,d,s.width-a)}u!==t.y&&i?.y!=null&&(u=Nt(0,i.y-o,s.height-o)),this.updatePosition({x:c,y:u})}updateAfterShow(t){this.updateAnchor(t),this.ctx.agDocument.requestAnimationFrame(()=>{this.repositionWithinBounds()})}},Bit=class extends PW{show(e,i){const n=new OW("vertical");for(const s of i.items)n.addChild(this.createRow(i,s,n));n.addClass("ag-charts-menu"),this.showWidget(e,n,i)}allocRow(e,i){if(e.menuItemRole==null||e.menuItemRole==="menuitem")return new NL;{e.menuItemRole;const n=new LW;return n.setChecked(e.value===i.value),n}}createRow(e,i,n){const s=i.value===e.value,a=this.allocRow(e,i);if(i.enabled!=null&&a.setEnabled(i.enabled),a.addClass("ag-charts-menu__row"),a.toggleClass("ag-charts-menu__row--active",s),typeof i.value=="string"&&(a.getElement().dataset.popoverId=i.value),i.icon!=null){const r=$t("span",`ag-charts-menu__icon ${mu(i.icon)}`);a.getElement().appendChild(r)}const o=i.strokeWidth!=null;if(o&&(a.toggleClass("ag-charts-menu__row--stroke-width-visible",o),a.setCSSVariable("--strokeWidth",o?`${i.strokeWidth}px`:null)),i.label!=null){const r=$t("span","ag-charts-menu__label");r.textContent=this.ctx.localeManager.t(i.label),a.getElement().appendChild(r)}return"altText"in i&&a.setAriaLabel(this.ctx.localeManager.t(i.altText)),a.addListener("click",({sourceEvent:r})=>{e.onPress?.(i),r.preventDefault(),r.stopPropagation(),n.collapse()}),a}},zW=class extends RW{constructor(){super(...arguments),this.dragged=!1}setDragHandle(e){e.addListener("drag-start",i=>{e.addClass(this.dragHandleDraggingClass),this.onDragStart(i)}),e.addListener("drag-move",this.onDragMove.bind(this)),e.addListener("drag-end",()=>{e.removeClass(this.dragHandleDraggingClass),this.onDragEnd.bind(this)})}onDragStart(e){const i=this.getPopoverElement();i&&(e.sourceEvent.preventDefault(),this.dragged=!0,this.dragStartState={client:at.from(e.clientX,e.clientY),position:at.from(Number(i.style.getPropertyValue("left").replace("px","")),Number(i.style.getPropertyValue("top").replace("px","")))})}onDragMove(e){const{dragStartState:i}=this,n=this.getPopoverElement();if(!i||!n)return;const s=at.sub(at.from(e.clientX,e.clientY),i.client),a=at.add(i.position,s),o=this.ctx.domManager.getBoundingClientRect(),r={};a.x>=0&&a.x+n.offsetWidth<=o.width&&(r.x=a.x),a.y>=0&&a.y+n.offsetHeight<=o.height&&(r.y=a.y),this.updatePosition(r)}onDragEnd(){this.dragStartState=void 0}},Vit={"disjoint-channel":"false","fibonacci-menu":"menu","fibonacci-retracement":"false","fibonacci-retracement-trend-based":"false","fill-color":"dialog","horizontal-line":"false","line-color":"dialog","line-menu":"menu","line-stroke-width":"menu","line-style-type":"menu","measurer-menu":"menu","pan-end":"false","pan-left":"false","pan-right":"false","pan-start":"false","parallel-channel":"false","shape-menu":"menu","text-color":"dialog","text-menu":"menu","text-size":"menu","vertical-line":"false","zoom-in":"false","zoom-out":"false",callout:"false",clear:"false",comment:"false",delete:"false",line:"false",lock:"false",menu:"menu",note:"false",reset:"false",settings:"dialog",text:"false",millisecond:"false",second:"false",minute:"false",hour:"false",day:"false",month:"false",year:"false"};function _it(t){return typeof t!="string"?"false":Vit[t]}var BW=class extends _D{constructor(e){super(),this.localeManager=e}update(e){const{localeManager:i}=this;if(e.tooltip){const a=i.t(e.tooltip);a!==this.lastTooltip&&(this.elem.title=a,this.lastTooltip=a)}let n="";if(e.icon!=null&&e.iconPosition!=="after"&&(n=``),e.label!=null){const a=i.t(e.label);n=`${n}${a}`}e.icon!=null&&e.iconPosition==="after"&&(n=`${n}`);const s=_it(e.value);s=="false"?(this.setAriaHasPopup(void 0),this.setAriaExpanded(void 0)):(this.setAriaHasPopup(s),this.setAriaExpanded(!1)),n!==this.lastInnerHTML&&(this.elem.innerHTML=n,this.lastInnerHTML=n)}setChecked(e){ye(this.elem,"aria-checked",e)}},DV="ag-charts-toolbar__button--active",TL=class extends FD{constructor({eventsHub:t,localeManager:e},i,n){super(n),this.ariaLabelId=i,this.horizontalSpacing=10,this.verticalSpacing=10,this.events=new kG,this.hasPrefix=!1,this.buttonWidgets=[],this.updateAriaLabel=()=>this.setAriaLabel(this.localeManager.t(this.ariaLabelId)),this.eventsHub=t,this.localeManager=e,this.addClass("ag-charts-toolbar"),this.toggleClass("ag-charts-toolbar--horizontal",n==="horizontal"),this.toggleClass("ag-charts-toolbar--vertical",n==="vertical"),this.eventsHub.on("locale:change",this.updateAriaLabel),this.updateAriaLabel()}setAriaLabelId(t){this.ariaLabelId=t,this.updateAriaLabel()}addToolbarListener(t,e){return this.events.addListener(t,e)}clearButtons(){this.expanded?.collapse({mode:"2"});for(const t of this.buttonWidgets)t.destroy();this.buttonWidgets.splice(0)}updateButtons(t){const{buttonWidgets:e}=this;for(const[i,n]of t.entries())(this.buttonWidgets.at(i)??this.createButton(i,n)).update(n);for(let i=t.length;ithis.getButtonWidgetBounds(t))}getButtonWidget(t){return this.buttonWidgets.at(t)}setButtonHiddenByIndex(t,e){this.buttonWidgets.at(t)?.setHidden(e)}getButtonWidgetBounds(t){const e=this.getBounds(),i=t.getBounds(),n=t.getBoundingClientRect(),s=n.x-Math.floor(n.x),a=n.y-Math.floor(n.y);return new Tt(i.x+e.x+s,i.y+e.y+a,n.width,n.height)}refreshButtonClasses(){const{buttonWidgets:t,hasPrefix:e}=this;let i,n,s;for(const[a,o]of t.entries())i=!e&&a===0||s!=o.section,n=a===t.length-1||o.section!=t.at(a+1)?.section,o.toggleClass("ag-charts-toolbar__button--first",i),o.toggleClass("ag-charts-toolbar__button--last",n),o.toggleClass("ag-charts-toolbar__button--group-first",a>0&&i),s=o.section}createButton(t,e){const i=this.createButtonWidget();return i.addClass("ag-charts-toolbar__button"),i.addListener("click",n=>{const s={index:t,...e instanceof xt?e.toJson():e},a=this.getButtonWidgetBounds(i),o={event:n,button:s,buttonBounds:a,buttonWidget:i};this.events.dispatch("button-pressed",o)}),i.addListener("focus",()=>{const n={button:{index:t}};this.events.dispatch("button-focused",n)}),i.addListener("expand-controlled-widget",n=>{this.expanded?.collapse({mode:"4"}),this.expanded=n.controlled;const s=this.expanded.addListener("collapse-widget",()=>{this.expanded=void 0,s()})}),e.section&&(i.section=e.section),this.buttonWidgets.push(i),this.addChild(i),i}},Fit=class extends TL{createButtonWidget(){return new BW(this.localeManager)}},Hit=class extends zW{constructor(t,e,i){super(t,e),this.onPopoverMoved=i,this.dragHandleDraggingClass="ag-charts-floating-toolbar__drag-handle--dragging"}show(t,e={}){this.showWithChildren(t,{...e,class:"ag-charts-floating-toolbar"})}hide(){this.dragged=!1,super.hide()}getBounds(){const t=this.getPopoverElement();return new Tt(t?.offsetLeft??0,t?.offsetTop??0,t?.offsetWidth??0,t?.offsetHeight??0)}hasBeenDragged(){return this.dragged}setAnchor(t,e,i){const n=this.getPopoverElement();if(!n)return;const s=t.position??"above",{offsetWidth:a,offsetHeight:o}=n;let r=t.y-o-i,l=t.x-a/2;s==="below"?r=t.y+i:s==="right"?(r=t.y-o/2,l=t.x+e):s==="above-left"&&(l=t.x),this.updatePosition({x:l,y:r})}ignorePointerEvents(){const t=this.getPopoverElement();t&&(t.style.pointerEvents="none")}capturePointerEvents(){const t=this.getPopoverElement();t&&(t.style.pointerEvents="unset")}updatePosition(t){const e=this.getBounds(),i=this.ctx.domManager.getBoundingClientRect();t.x=Math.floor(Nt(0,t.x,i.width-e.width)),t.y=Math.floor(Nt(0,t.y,i.height-e.height)),super.updatePosition(t),this.onPopoverMoved()}},jit=class extends TL{constructor(e,i,n){super(e,i,"horizontal"),this.hasPrefix=!0,this.popover=new Hit(e,n,this.onPopoverMoved.bind(this)),this.dragHandle=new Git(e.localeManager.t("toolbarAnnotationsDragHandle")),this.popover.setDragHandle(this.dragHandle)}destroy(){super.destroy(),this.popover.destroy()}show(e={}){this.popover.show([this.dragHandle.getElement(),this.getElement()],e)}hide(){this.popover.hide()}setAnchor(e){this.popover.setAnchor(e,this.horizontalSpacing,this.verticalSpacing)}hasBeenDragged(){return this.popover.hasBeenDragged()}ignorePointerEvents(){this.popover.ignorePointerEvents()}capturePointerEvents(){this.popover.capturePointerEvents()}onPopoverMoved(){const e=this.popover.getBounds();if(this.popoverBounds?.equals(e))return;this.popoverBounds=e.clone();const i=this.getButtonBounds();this.events.dispatch("toolbar-moved",{popoverBounds:e,buttonBounds:i})}getButtonWidgetBounds(e){const i=this.popover.getBounds(),n=super.getButtonWidgetBounds(e),s=this.dragHandle.getBounds();return new Tt(n.x+i.x-s.width,n.y+i.y,n.width,n.height)}},Git=class extends Nf{constructor(e){super($t("div","ag-charts-floating-toolbar__drag-handle"));const i=new Nf($t("span",`${mu("drag-handle")} ag-charts-toolbar__icon`));i.setAriaHidden(!0),this.addChild(i),this.elem.title=e}},Uit={...c3,...h3},RM={};Ap(RM,{ButtonWidget:()=>_D,MenuItemRadioWidget:()=>LW,MenuItemWidget:()=>NL,MenuWidget:()=>OW,NativeWidget:()=>Nf,SliderWidget:()=>_T,ToolbarWidget:()=>FD,Widget:()=>Vu,WidgetEventUtil:()=>cu});var VW={title:{enabled:!1},label:{enabled:!1},line:{enabled:!1},gridLine:{enabled:!1},crosshair:{enabled:!1,stroke:vD,lineDash:[0],label:{enabled:!1}}},$C={...VW,nice:!1},X0={mode:"compact",position:{anchorTo:"node",placement:["right","left"]},showArrow:!1},XC={style:[{stroke:{$ref:"gridLineColor"}}],width:2},Wit={number:{gridLine:XC},time:{gridLine:XC},category:{gridLine:XC}},Kit={overrides:{common:{animation:{enabled:!1},contextMenu:{enabled:!1},keyboard:{enabled:!1},background:{visible:!1},navigator:{enabled:!1},padding:{top:0,right:0,bottom:0,left:0},axes:{number:{...$C,interval:{values:[0]}},log:{...$C},time:{...$C},category:{...VW}}},bar:{series:{crisp:!1,label:{placement:"inside-end",padding:4},sparklineMode:!0},tooltip:{...X0,position:{...X0.position,anchorTo:"pointer"},range:"nearest"},axes:Wit},line:{seriesArea:{padding:{top:2,right:2,bottom:2,left:2}},series:{sparklineMode:!0,strokeWidth:1,marker:{enabled:!1,size:3}},tooltip:X0},area:{seriesArea:{padding:{top:1,right:0,bottom:1,left:0}},series:{strokeWidth:1,fillOpacity:.4},tooltip:X0}}},_W=xs(Yit);function Yit(t,e){return typeof t=="string"?{...e,baseTheme:t}:t!=null?{...t,baseTheme:_W(t.baseTheme,e)}:e}function FW(t){if(Array.isArray(t)&&t.length!==0){const e=t.find(i=>i!=null);if(typeof e=="number")return{data:t.map((n,s)=>({x:s,y:n})),series:[{xKey:"x",yKey:"y"}],datumKey:"y"};if(Array.isArray(e))return{data:t.map(n=>({x:n?.[0],y:n?.[1],datum:n})),series:[{xKey:"x",yKey:"y"}],datumKey:"datum"}}else if(t?.length===0)return{data:t,series:[{xKey:"x",yKey:"y"}],datumKey:"y"};return{data:t}}function $it(t){switch(t?.type){case"number":{const{reverse:e,min:i,max:n}=t??{};return{type:"number",reverse:e,min:i,max:n}}case"time":{const{reverse:e,min:i,max:n}=t??{};return{type:"time",reverse:e,min:i,max:n}}default:{if(t==null)return{type:"category"};const{reverse:e,paddingInner:i,paddingOuter:n}=t;return{type:"category",reverse:e,paddingInner:i,paddingOuter:n}}}}function Xit(t,e,i){const n={};return t?.stroke!=null&&(n.style=[{stroke:t?.stroke}],n.enabled??(n.enabled=!0)),t?.strokeWidth!=null&&(n.width=t?.strokeWidth,n.enabled??(n.enabled=!0)),i.type==="bar"&&i.direction!=="horizontal"&&(n.enabled??(n.enabled=!0)),t?.visible!=null&&(n.enabled=t.visible),n.enabled??(n.enabled=e),n}var Zit=xs((t,e,i)=>n=>{const s=n.datum[n.xKey],a=n.datum[n.yKey],o=i==null?n.datum:n.datum[i],r=e?.renderer?.({context:t,datum:o,xValue:s,yValue:a});if(zi(r)||Je(r)||aa(r))return bi(r);const l=r?.content??a.toFixed(2);return r?.title?{heading:void 0,title:void 0,data:[{label:r.title,value:l}]}:{heading:void 0,title:l,data:[]}});function qit(t){const{background:e,container:i,foreground:n,height:s,listeners:a,locale:o,minHeight:r,minWidth:l,overrideDevicePixelRatio:c,padding:u,width:d,theme:g,data:f,crosshair:y,axis:x,min:S,max:D,tooltip:A,context:I,styleNonce:w,...N}=t,O={background:e,container:i,foreground:n,height:s,listeners:a,locale:o,minHeight:r,minWidth:l,overrideDevicePixelRatio:c,padding:u,width:d,styleNonce:w},{data:L,series:[R]=[],datumKey:P}=FW(f),B=N;R!=null&&Object.assign(B,R),B.tooltip={...A,renderer:Zit(I,A,P)},O.theme=_W(g,Kit),O.data=L,O.series=[B];const F=B.type==="bar"&&B.direction==="horizontal",[H,$]=F?["left","bottom"]:["bottom","left"],Y={...$it(x),position:H,...y==null?{}:{crosshair:y}},U={type:"number",gridLine:Xit(x,!1,t),position:$,...S==null?{}:{min:S},...D==null?{}:{max:D}};return O.axes=F?{x:U,y:Y}:{x:Y,y:U},O}var ZC=["showInLegend","showInMiniChart","grouped","stacked","stackGroup","tooltip","listeners","errorBar","xKey","yKey","type"],qC={visible:J,reverse:J,stroke:It,strokeWidth:X},wb={context:()=>!0,tooltip:jt,theme:jt,background:jt,container:jt,width:jt,height:jt,minWidth:jt,minHeight:jt,padding:jt,listeners:jt,locale:jt,data:jt,styleNonce:K,axis:xp({number:{...qC,min:Me(gt,Fs("max")),max:Me(gt,Hs("min"))},category:{...qC,paddingInner:Ot,paddingOuter:Ot},time:{...qC,min:Me(Xt(gt,_s),Fs("max")),max:Me(Xt(gt,_s),Hs("min"))}},"axis options","category"),min:Me(gt,Fs("max")),max:Me(gt,Hs("min")),crosshair:{enabled:J,snap:J,...bt,...Lt},xKey:K,yKey:K};wb.overrideDevicePixelRatio=Mt(gt);wb.foreground=Mt(jt);var Qit={type:"preset",name:"sparkline",version:oi,options:xp({area:{...wb,...At(sL,ZC)},bar:{...wb,...At(om,ZC)},line:{...wb,...At($x,ZC)}},"sparkline options"),create:qit,processData:FW},Jit=["top","right","bottom","left"],tv=class HW extends QD{constructor(e,i){super(e,i),this.paired=!0,this.axes=this.createChartAxes(),this.lastUpdateClipRect=void 0,this.lastLayoutWidth=Number.NaN,this.lastLayoutHeight=Number.NaN}createChartAxes(){return new NZ}onAxisChange(e,i){super.onAxisChange(e,i),this.syncAxisChanges(e,i),this.ctx!=null&&this.ctx.zoomManager.setAxes(e)}destroySeries(e){super.destroySeries(e),this.lastLayoutWidth=Number.NaN,this.lastLayoutHeight=Number.NaN}getChartType(){return"cartesian"}setRootClipRects(e){const{seriesRoot:i,annotationRoot:n}=this;i.setClipRect(e),n.setClipRect(e)}async processData(){await super.processData(),this.syncStatus==="init"&&(this.syncStatus="domains-calculated"),this.ctx.updateService.dispatchProcessData({series:{shouldFlipXY:this.shouldFlipXY()}})}async processDomains(){await super.processDomains();for(const e of this.axes){const i=await this.getSyncedDomain(e);i!=null&&e.setDomains({domain:i})}}performLayout(e){const{seriesRoot:i,annotationRoot:n}=this,{clipSeries:s,seriesRect:a,visible:o}=this.updateAxes(e);this.seriesRoot.visible=o,this.seriesRect=a,this.animationRect=e.layoutBox;const{x:r,y:l}=a;if(e.width!==this.lastLayoutWidth||e.height!==this.lastLayoutHeight)for(const y of[i,n])y.translationX=Math.floor(r),y.translationY=Math.floor(l);else{const{translationX:y,translationY:x}=i;Uc(this.id,"seriesRect",this.ctx.animationManager,[i,n],{translationX:y,translationY:x},{translationX:Math.floor(r),translationY:Math.floor(l)},{phase:"update"})}this.lastLayoutWidth=e.width,this.lastLayoutHeight=e.height;const c=a.clone().grow(this.seriesArea.getPadding()),g=this.series.some(y=>y.alwaysClip)||(this.seriesArea.clip??!1)||s?c:void 0,{lastUpdateClipRect:f}=this;this.lastUpdateClipRect=g,this.ctx.animationManager.isActive()&&f!=null?this.ctx.animationManager.animate({id:this.id,groupId:"clip-rect",phase:"update",from:f,to:c,onUpdate:y=>this.setRootClipRects(y),onStop:()=>this.setRootClipRects(g),onComplete:()=>this.setRootClipRects(g)}):this.setRootClipRects(g),this.ctx.layoutManager.emitLayoutComplete(e,{axes:G4(this.axes.map(y=>[y.id,y.getLayoutState()])),series:{visible:o,rect:a,paddedRect:c},clipSeries:s,layoutBox:e.layoutBox}),ZU(this.series)}updateAxes(e){const{layoutBox:i,scrollbars:n}=e,{clipSeries:s,seriesRect:a,overflows:o}=this.resolveAxesLayout(i,n);for(const r of this.axes)r.update(),r.setCrossLinesVisible(!o),this.clipAxis(r,a,i);return{clipSeries:s,seriesRect:a,visible:!o}}resolveAxesLayout(e,i){let n,s,a=0;const o=10,r=this.axes.filter(l=>l.crossAt?.value!=null);do if(s=n??this.getDefaultState(),n=this.updateAxesPass(new Map(s.axisAreaWidths),e.clone(),r,i),a++>o){pt.warn("Max iterations reached. Unable to stabilize axes layout.");break}while(!this.isLayoutStable(n,s));return this.lastAreaWidths=n.axisAreaWidths,n}updateAxesPass(e,i,n,s){const a=new Map,o={};let r=!1,l=!1;const c=this.seriesArea.getPadding();for(const N of Jit){const O=c[N]??0,L=this.axes.findLast(R=>R.position===N);L?L.seriesAreaPadding=O:i.shrink(O,N)}const u=(e.get("left")??0)+(e.get("right")??0),d=(e.get("top")??0)+(e.get("bottom")??0),g=this.buildCrossLinePadding(e),f=g.left+g.right,y=g.top+g.bottom;i.width<=u+f||i.height<=d+y?r=!0:i.shrink(g);const{scene:x}=this.ctx,S=i.clone().shrink(Object.fromEntries(e));for(const N of this.axes){const{position:O="left",direction:L}=N,R=L===z.Y;let P;this.sizeAxis(N,S,O),N.thickness==null?P=QC(R,x)*(N.maxThicknessRatio??1):P=N.thickness;const B={sizeLimit:P-N.label.spacing,padding:this.padding,scrollbars:s},{primaryTickCount:F,bbox:H}=N.calculateLayout(N.nice?o[L]:void 0,B);o[L]??(o[L]=F),l||(l=N.dataDomain.clipped||N.visibleRange[0]>0||N.visibleRange[1]<1),N.thickness==null&&(P=Math.min(QC(R,H)??0,P)),a.set(N.id,Math.ceil(P))}let D;n.length>0&&(D=this.calculateAxesCrossPositions(a,S,n));const A=px(this.axes,N=>N.position??"left"),I=new Map,w=new Map;for(const[N,O]of Xe(A)){let L=QC(N!=="left"&&N!=="right",x)%x.pixelRatio,R=0;for(const P of O??[]){w.set(P.id,L);const B=a.get(P.id)??0;R=Math.max(R,L+B),P.layoutConstraints.stacked&&(L+=B+HW.AxesPadding)}I.set(N,Math.ceil(R))}for(const[N,O]of Xe(A))this.positionAxes({axes:O??[],position:N,axisWidths:a,axisOffsets:w,axisAreaWidths:I,axisBound:i,seriesRect:S});return D!=null&&this.applyAxisCrossing(S,D),{clipSeries:l,seriesRect:S,axisAreaWidths:I,overflows:r}}calculateAxesCrossPositions(e,i,n){const s=new Map;for(const a of n){const{crossPosition:o,visible:r}=this.calculateAxisCrossPosition(a);a.setAxisVisible(r),this.adjustAxisWidth(a,e,o,i,r),o!=null&&s.set(a.id,o)}return s}calculateAxisCrossPosition(e){const i=this.axes.perpendicular(e),{scale:{domain:n,bandwidth:s},range:a}=i,o=(s??0)/2,r=i.scale.convert(e.crossAt?.value,{clamp:!1})+o;return i.inRange(r)?{crossPosition:r,visible:!0}:e.crossAt?.sticky===!1?{crossPosition:void 0,visible:!1}:{crossPosition:Number.isNaN(r)?a[n[0]]:bf(r,a),visible:!0}}adjustAxisWidth(e,i,n,s,a){if(e.getModuleMap().getModule("crosshair")?.enabled||this.modulesManager.getModule("annotations")?.enabled===!0||this.ctx.annotationManager.createMemento().some(d=>{switch(d.type){case"vertical-line":return e.direction===z.X;case"horizontal-line":return e.direction===z.Y}}))return;const c=i.get(e.id)??0,u=a?this.calculateAxisBleedingWidth(e,c,n,s):0;i.set(e.id,u)}calculateAxisBleedingWidth(e,i,n,s){if(n==null)return i;switch(e.position){case"left":case"top":return Math.max(0,i-n);case"right":return Math.max(0,n+i-s.width);case"bottom":return Math.max(0,n+i-s.height);default:return i}}applyAxisCrossing(e,i){for(const n of this.axes){const s=i.get(n.id);if(s==null){n.crossAxisTranslation.x=0,n.crossAxisTranslation.y=0;continue}const a=n.direction===z.X;n.crossAxisTranslation.x=a?0:e.x+s-n.translation.x,n.crossAxisTranslation.y=a?e.y+s-n.translation.y:0}}buildCrossLinePadding(e){var i;const n={top:0,right:0,bottom:0,left:0};for(const s of this.axes){const{position:a,label:o}=s;if(s.crossLines)for(const r of s.crossLines)r instanceof Xs&&(r.position=a??"top",(i=r.label).parallel??(i.parallel=o.parallel)),r.calculatePadding?.(n)}for(const[s,a=0]of Xe(n))n[s]=Math.max(a-(e.get(s)??0),0);return n}clampToOutsideSeriesRect(e,i,n,s){const a=n==="x"?e.x:e.y,o=n==="x"?e.width:e.height;return s===1?Math.min(i,a+o):Math.max(i,a)}async getSyncedDomain(e){const i=this.modulesManager.getModule("sync");if(i?.enabled)return await i.getSyncedDomain(e)}syncAxisChanges(e,i){const n=this.modulesManager.getModule("sync");if(!n?.enabled)return;const s=new Set(i??[]);for(const a of e)s.delete(a);for(const a of s)n.removeAxis(a)}sizeAxis(e,i,n){const s=e instanceof Ao,a=n==="left"||n==="right",{width:o,height:r}=i,l=a?r:o;let c=0,u=l,{min:d,max:g}=this.ctx.zoomManager.getAxisZoom(e.id);const{width:f,unit:y,align:x}=e.layoutConstraints;y==="px"?u=c+f:u=u*f/100;const S=u-c;if(x==="end")c=l-S,u=l;else if(x==="center"){const D=c+(l-c)/2;c=D-S/2,u=D+S/2}else x==="justify"&&(u=l);a&&(s?[c,u]=[u,c]:[d,g]=[1-g,1-d]),e.range=[c,u],e.visibleRange=[d,g],e.gridLength=a?o:r,e.lineRange=a?[r,0]:[0,o]}positionAxes(e){const{axes:i,axisBound:n,axisWidths:s,axisOffsets:a,axisAreaWidths:o,seriesRect:r,position:l}=e,c=o.get(l)??0;let u="x",d="y",g=1;(l==="top"||l==="bottom")&&(u="y",d="x");let f=n[u];(l==="right"||l==="bottom")&&(g=-1,f+=u==="x"?n.width:n.height);for(const y of i){const x=o.get(d==="x"?"left":"top")??0,S=s.get(y.id)??0,D=a.get(y.id)??0;y.gridPadding=c-D-S,y.translation[d]=n[d]+x,y.translation[u]=this.clampToOutsideSeriesRect(r,f+g*(D+S),u,g)}}shouldFlipXY(){return this.series.every(e=>e instanceof Wu&&e.shouldFlipXY())}getDefaultState(){const e=new Map;if(this.lastAreaWidths)for(const{position:i="left"}of this.axes){const n=this.lastAreaWidths.get(i);n!=null&&e.set(i,n)}return{axisAreaWidths:e,clipSeries:!1,overflows:!1}}isLayoutStable(e,i){if(i.overflows!==e.overflows||i.clipSeries!==e.clipSeries)return!1;for(const n of e.axisAreaWidths.keys())if(!i.axisAreaWidths.has(n))return!1;for(const[n,s]of i.axisAreaWidths.entries()){const a=e.axisAreaWidths.get(n);if((s!=null||a!=null)&&s!==a)return!1}return!0}clipAxis(e,i,n){const s=Math.ceil(e.gridLine?.width??0),a=Math.ceil(e.line?.width??0);let{width:o,height:r}=i;switch(o+=e.direction===z.X?s:a,r+=e.direction===z.Y?s:a,e.clipGrid(i.x,i.y,o,r),e.position){case"left":case"right":e.clipTickLines(n.x,i.y-s,n.width+s,i.height+s*2);break;case"top":case"bottom":e.clipTickLines(i.x-s,n.y,i.width+s*2,n.height+s);break}}};tv.className="CartesianChart";tv.type="cartesian";tv.AxesPadding=15;T([Pe({changeValue(t,e){this.onAxisChange(t,e)}})],tv.prototype,"axes",2);var tnt=tv;function QC(t,e){return t?e?.width:e?.height}var ent=new Set(["number","log","time"]),int=t=>Bt(t)&&t.type!=null&&!ent.has(t.type),hr={type:"chart",name:"cartesian",version:oi,options:Iq,create(t,e){return new tnt(t,e)},validate(t,e,i){const n=[];t?.series?.[0]?.type==="histogram"&&Object.values(t?.axes??{}).some(int)&&(n.push(new ou("invalid","only continuous axis types when histogram series is used",t.axes,i,"axes")),t=At(t,["axes"]));const s=ts(t,e,i);return s.invalid.push(...n),s}},LL=class extends QD{constructor(t,e){super(t,e),this.axes=this.createChartAxes(),this.padding=new zu(40),this.ctx.axisManager.axisGroup.zIndex=pe.AXIS_FOREGROUND}createChartAxes(){return new TZ}getChartType(){return"polar"}isDataTransactionSupported(){return!this.series.some(t=>t.type==="pie"||t.type==="donut")}async performLayout(t){const e=t.layoutBox.clone().shrink(this.seriesArea.getPadding());this.seriesRect=e,this.animationRect=e,this.seriesRoot.translationX=e.x,this.seriesRoot.translationY=e.y,await this.computeCircle(e);for(const n of this.axes)n.update();let i=0;for(const n of this.series)i=Math.max(i,n.properties.marker?.size??0);for(const n of this.series.filter(AV))n.maxChartMarkerSize=i;this.ctx.layoutManager.emitLayoutComplete(t,{series:{visible:!0,rect:e,paddedRect:t.layoutBox},layoutBox:t.layoutBox})}updateAxes(t,e,i,n){if(this.axes.length===0)return;const s=this.axes[z.Angle],a=this.axes[z.Radius],o=s.scale,r=a.innerRadiusRatio;s.innerRadiusRatio=r,s.computeRange(),s.gridLength=n,a.gridAngles=o.ticks({nice:[s.nice,s.nice],interval:void 0,tickCount:void 0,minTickCount:0,maxTickCount:1/0})?.ticks?.map(l=>o.convert(l)),a.gridRange=s.range,a.range=[n,n*r];for(const l of[s,a])l.translation.x=t.x+e,l.translation.y=t.y+i,l.calculateLayout()}async computeCircle(t){const e=this.series.filter(AV),i=(l,c,u)=>{this.updateAxes(t,l,c,u);for(const g of e)g.centerX=l,g.centerY=c,g.radius=u;const d=e.filter(g=>g.type==="donut"||g.type==="pie");if(d.length>1){const g=d.map(f=>{const y=f.getInnerRadius();return{series:f,innerRadius:y}}).sort((f,y)=>f.innerRadius-y.innerRadius);g.at(-1).series.surroundingRadius=void 0;for(let f=0;f{const c=[];for(const g of Mu(this.axes,e)){const f=await g.computeLabelsBBox({hideWhenNecessary:l},t);f&&c.push(f)}if(c.length===0){i(n,s,a);return}const u=Tt.merge(c),d=this.refineCircle(u,o,t);i(d.centerX,d.centerY,d.radius),o=d.radius};await r(),await r(),await r(),await r({hideWhenNecessary:!0}),await r({hideWhenNecessary:!0});for(const l of Mu(this.axes,e))await l.computeLabelsBBox({hideWhenNecessary:!0},t);return{radius:o,centerX:n,centerY:s}}refineCircle(t,e,i){const s=-e,a=-e,o=e,r=e;let l=Math.max(0,s-t.x),c=Math.max(0,a-t.y),u=Math.max(0,t.x+t.width-o),d=Math.max(0,t.y+t.height-r);l=u=Math.max(l,u),c=d=Math.max(c,d);const g=i.width-l-u,f=i.height-c-d;let y=Math.min(g,f)/2;const x=.5*i.width/2,S=.5*i.height/2,D=Math.min(x,S);if(yi.height){const O=i.height-2*y;Math.min(c,d)*2>O?(c=O/2,d=O/2):c>d?c=O-d:d=O-c}if(2*y+w>i.width){const O=i.width-2*y;Math.min(l,u)*2>O?(l=O/2,u=O/2):l>u?l=O-u:u=O-l}}const A=l+2*y+u,I=c+2*y+d;return{centerX:(i.width-A)/2+l+y,centerY:(i.height-I)/2+c+y,radius:y}}};LL.className="PolarChart";LL.type="polar";function AV(t){return t instanceof CL}var OL={type:"chart",name:"polar",version:oi,options:kq,create(t,e){return new LL(t,e)},validate(t,e,i){const n=[],s=t?.series?.[0]?.type;(s==="pie"||s==="donut")&&t?.axes&&(n.push(new eD([],t.axes,i,"axes")),t=At(t,["axes"]));const a=ts(t,e,i);return a.invalid.push(...n),a}};function nnt({orientation:t,bboxes:e,maxHeight:i,maxWidth:n,itemPaddingY:s=0,itemPaddingX:a=0,forceResult:o=!1}){const r=t==="horizontal",l={max:r?n:i,fn:r?g=>g.width:g=>g.height,padding:r?a:s},c={max:r?i:n,fn:r?g=>g.height:g=>g.width,padding:r?s:a};let u=0;const d=[];for(;u=1;){const l=ant(t,e,r,i,n,s);if(l==null&&r<=1)return;if(l==null){r--;continue}if(typeof l=="number"){if(l<=1)return;r=l1?l:r,r--;continue}return{processedBBoxCount:l.length*l[0].length,pageIndices:l}}}function ant(t,e,i,n,s,a){const o=[];let r=0,l=0,c=[];const u=[];for(let d=0;d0&&o.push(c),c=[]);const f=n.fn(t[d])+n.padding;u[g]=Math.max(u[g]??0,f),l=Math.max(l,s.fn(t[d])+s.padding);const y=r+l,x=!a||o.length>0;if(y>s.max&&x){c=[];break}if(u.reduce((D,A)=>D+A,0)>n.max&&!a)return u.length0&&o.push(c),o.length>0?o:void 0}function ont(t,e,i,n,s){let a=0,o=0;return{pages:t.map(l=>{e==="horizontal"&&(l=rnt(l));let c=0;const u=l.map(f=>{const y=f.map(D=>(c=Math.max(D,c),i[D]));let x=0,S=0;for(const D of y)x+=D.height+n,S=Math.max(S,D.width+s);return{indices:f,bboxes:y,columnHeight:Math.ceil(x),columnWidth:Math.ceil(S)}});let d=0,g=0;for(const f of u)d+=f.columnWidth,g=Math.max(g,f.columnHeight);return a=Math.max(d,a),o=Math.max(g,o),{columns:u,startIndex:l[0][0],endIndex:c,pageWidth:d,pageHeight:g}}),maxPageWidth:a,maxPageHeight:o}}function rnt(t){const e=[];for(const i of t[0])e.push([]);for(const[i,n]of t.entries())for(const[s,a]of n.entries())e[s][i]=a;return e}function lnt(t,e){const i=t.length;let n=0;for(let s=0;se.max)return i/s<2?Math.ceil(i/2):s;return i}var pm=class extends xt{constructor(){super(...arguments),this.color="black",this.fontStyle=void 0,this.fontWeight=void 0,this.fontSize=zc.SMALL,this.fontFamily="Verdana, sans-serif"}};T([b],pm.prototype,"color",2);T([b],pm.prototype,"fontStyle",2);T([b],pm.prototype,"fontWeight",2);T([b],pm.prototype,"fontSize",2);T([b],pm.prototype,"fontFamily",2);var wc=class extends xt{constructor(){super(...arguments),this.size=15,this.fill=void 0,this.fillOpacity=void 0,this.stroke=void 0,this.strokeWidth=1,this.strokeOpacity=1}};T([b],wc.prototype,"size",2);T([b],wc.prototype,"fill",2);T([b],wc.prototype,"fillOpacity",2);T([b],wc.prototype,"stroke",2);T([b],wc.prototype,"strokeWidth",2);T([b],wc.prototype,"strokeOpacity",2);var pA=class extends xt{constructor(t){super(),this.parent=t,this.shape="triangle",this.size=15,this.padding=8}};T([Pe({changeValue(){this.parent.marker===this&&this.parent.onMarkerShapeChange()}})],pA.prototype,"shape",2);T([b],pA.prototype,"size",2);T([b],pA.prototype,"padding",2);var Yc=class extends xt{constructor(t,e){super(),this.chartUpdateCallback=t,this.pageUpdateCallback=e,this.id=Nn(this),this.marker=new pA(this),this.activeStyle=new wc,this.inactiveStyle=new wc,this.highlightStyle=new wc,this.label=new pm,this.group=new Ds({name:"pagination"}),this.labelNode=new Pa,this.totalPages=0,this.currentPage=0,this.translationX=0,this.translationY=0,this.nextButtonDisabled=!1,this.previousButtonDisabled=!1,this._visible=!0,this._enabled=!0,this.nextButton=new wn,this.previousButton=new wn,this.isRtl=!1,this.orientation="vertical",this.labelNode.setProperties({textBaseline:"middle",textAlign:"left",fontSize:zc.SMALL,fontFamily:"Verdana, sans-serif",fill:"black",y:1}),this.group.append([this.nextButton,this.previousButton,this.labelNode]),this.update(),this.updateMarkers()}set visible(t){this._visible=t,this.updateGroupVisibility()}get visible(){return this._visible}set enabled(t){this._enabled=t,this.updateGroupVisibility()}get enabled(){return this._enabled}updateGroupVisibility(){this.group.visible=this.enabled&&this.visible}applyRotations(){const{isRtl:t}=this;this.orientation==="horizontal"?(this.previousButton.rotation=t?Math.PI/2:-Math.PI/2,this.nextButton.rotation=t?-Math.PI/2:Math.PI/2):(this.previousButton.rotation=0,this.nextButton.rotation=Math.PI)}update(){this.updateLabel(),this.updatePositions(),this.enableOrDisableButtons()}updatePositions(){this.group.translationX=this.translationX,this.group.translationY=this.translationY,this.updateLabelPosition(),this.updateButtonPositions()}updateLabelPosition(){const{size:t,padding:e}=this.marker;this.nextButton.size=t,this.previousButton.size=t,this.labelNode.x=t/2+e}updateButtonPositions(){const e=this.labelNode.getBBox().width+(this.marker.size/2+this.marker.padding)*2;this.isRtl&&this.orientation==="horizontal"?(this.nextButton.translationX=0,this.previousButton.translationX=e):(this.previousButton.translationX=0,this.nextButton.translationX=e)}updateLabel(){const{isRtl:t,labelNode:e,currentPage:i,totalPages:n,label:{color:s,fontStyle:a,fontWeight:o,fontSize:r,fontFamily:l}}=this,c=[i+1,n];t&&c.reverse(),e.text=c.join(" / "),e.fill=s,e.fontStyle=a,e.fontWeight=o,e.fontSize=r,e.fontFamily=l}updateMarkers(){const{nextButton:t,previousButton:e,nextButtonDisabled:i,previousButtonDisabled:n,activeStyle:s,inactiveStyle:a,highlightStyle:o,highlightActive:r}=this,l=(c,u)=>u?a:c===r?o:s;this.updateMarker(t,l("next",i)),this.updateMarker(e,l("previous",n))}updateMarker(t,e){const{shape:i,size:n}=this.marker;t.shape=i,t.size=n,t.fill=e.fill,t.fillOpacity=e.fillOpacity??1,t.stroke=e.stroke,t.strokeWidth=e.strokeWidth,t.strokeOpacity=e.strokeOpacity}enableOrDisableButtons(){const{currentPage:t,totalPages:e}=this,i=e===0,n=t===e-1,s=t===0;this.nextButtonDisabled=n||i,this.previousButtonDisabled=s||i}setPage(t){t=Nt(0,t,Math.max(0,this.totalPages-1)),this.currentPage!==t&&(this.currentPage=t,this.onPaginationChanged())}getCursor(t){return{previous:this.previousButtonDisabled,next:this.nextButtonDisabled}[t]?void 0:"pointer"}onClick(t,e){t.preventDefault(),e==="next"&&!this.nextButtonDisabled?(this.incrementPage(),this.onPaginationChanged()):e==="previous"&&!this.previousButtonDisabled&&(this.decrementPage(),this.onPaginationChanged())}onMouseHover(t){this.highlightActive=t,this.updateMarkers(),this.chartUpdateCallback()}onPaginationChanged(){this.pageUpdateCallback(this.currentPage)}incrementPage(){this.currentPage=Math.min(this.currentPage+1,this.totalPages-1)}decrementPage(){this.currentPage=Math.max(this.currentPage-1,0)}onMarkerShapeChange(){this.updatePositions(),this.updateMarkers(),this.chartUpdateCallback()}attachPagination(t){t.append(this.group)}getBBox(){return this.group.getBBox()}computeCSSBounds(){const t=Ti.toCanvas(this.previousButton),e=Ti.toCanvas(this.nextButton);return{prev:t,next:e}}};Yc.className="Pagination";T([b],Yc.prototype,"marker",2);T([b],Yc.prototype,"activeStyle",2);T([b],Yc.prototype,"inactiveStyle",2);T([b],Yc.prototype,"highlightStyle",2);T([b],Yc.prototype,"label",2);T([Bi(t=>{t.applyRotations(),t.updatePositions()})],Yc.prototype,"isRtl",2);T([Bi(t=>t.applyRotations())],Yc.prototype,"orientation",2);var cnt=class{constructor(t,e){this.dirty=!0,this.itemList=t.proxyInteractionService.createProxyContainer({type:"list",domManagerId:`${e}-toolbar`,classList:["ag-charts-proxy-legend-toolbar"],ariaLabel:{id:"ariaLabelLegend"}}),this.paginationGroup=t.proxyInteractionService.createProxyContainer({type:"group",domManagerId:`${e}-pagination`,classList:["ag-charts-proxy-legend-pagination"],ariaLabel:{id:"ariaLabelLegendPagination"}}),this.itemDescription=t.agDocument.createElement("p"),this.itemDescription.style.display="none",this.itemDescription.id=lu(),this.itemDescription.textContent=this.getItemAriaDescription(t.localeManager),this.itemList.getElement().append(this.itemDescription)}shouldApplyHoverOnFocus(t){const e=t.getElement();return[":hover",":focus-visible"].some(i=>e.matches(i))}initLegendList(t){if(!this.dirty)return;const{ctx:e,itemSelection:i,datumReader:n,itemListener:s}=t,a=e.localeManager,o=i.length;i.each((r,l,c)=>{r.proxyButton?.destroy(),r.proxyButton=e.proxyInteractionService.createProxyElement({type:"listswitch",textContent:this.getItemAriaText(a,ce(n.getItemLabel(l)),c,o),ariaChecked:!!r.datum.enabled,ariaDescribedBy:this.itemDescription.id,parent:this.itemList});const u=r.proxyButton;u.addListener("click",d=>s.onClick(d.sourceEvent,r.datum,u)),u.addListener("dblclick",d=>s.onDoubleClick(d.sourceEvent,r.datum)),u.addListener("mouseenter",d=>s.onHover(d.sourceEvent,r)),u.addListener("mouseleave",()=>s.onLeave()),u.addListener("contextmenu",d=>s.onContextClick(d,r)),u.addListener("blur",()=>s.onLeave()),u.addListener("focus",d=>this.shouldApplyHoverOnFocus(u)?s.onHover(d.sourceEvent,r):s.onLeave()),u.addListener("drag-start",()=>{})}),this.dirty=!1}update(t){t.visible&&(this.initLegendList(t),this.updateItemProxyButtons(t),this.updatePaginationProxyButtons(t,!0)),this.updateVisibility(t.visible)}updateVisibility(t){this.itemList.setHidden(!t),this.paginationGroup.setHidden(!t)}updateItemProxyButtons({itemSelection:t,group:e,pagination:i,interactive:n}){const s=Ti.toCanvas(e);this.itemList.setBounds(s);const a=Math.max(...t.nodes().map(o=>o.getTextMeasureBBox().height));t.each((o,r)=>{if(o.proxyButton){const l=o.pageIndex===i.currentPage,{x:c,y:u,height:d,width:g}=Ti.toCanvas(o,o.getTextMeasureBBox()),f=(a-d)/2,y={x:c-s.x,y:u-f-s.y,height:a,width:g},x=n&&l;o.proxyButton.setCursor("pointer"),o.proxyButton.setEnabled(x),o.proxyButton.setPointerEvents(x?void 0:"none"),o.proxyButton.setBounds(y)}})}updatePaginationProxyButtons(t,e){const{pagination:i}=t;if(this.paginationGroup.setHidden(!i.visible),e&&"ctx"in t){const{oldPages:n,newPages:s}=t,a=(n?.length??s.length)>1,o=s.length>1;a!==o&&(o?this.createPaginationButtons(t):this.destroyPaginationButtons()),this.paginationGroup.setAriaHidden(o?void 0:!0)}if(this.prevButton&&this.nextButton){const{prev:n,next:s}=i.computeCSSBounds(),a=Tt.merge([n,s]);n.x-=a.x,n.y-=a.y,s.x-=a.x,s.y-=a.y,this.paginationGroup.setBounds(a),this.prevButton.setBounds(n),this.nextButton.setBounds(s),this.prevButton.setEnabled(i.currentPage!==0),this.nextButton.setEnabled(i.currentPage!==i.totalPages-1),this.nextButton.setCursor(i.getCursor("next")),this.prevButton.setCursor(i.getCursor("previous"))}}createPaginationButtons(t){const{ctx:e,pagination:i}=t;this.prevButton||(this.prevButton=e.proxyInteractionService.createProxyElement({type:"button",textContent:{id:"ariaLabelLegendPagePrevious"},tabIndex:0,parent:this.paginationGroup}),this.prevButton.addListener("click",n=>this.onPageButton(t,n,"previous")),this.prevButton.addListener("mouseenter",()=>i.onMouseHover("previous")),this.prevButton.addListener("mouseleave",()=>i.onMouseHover(void 0))),this.nextButton||(this.nextButton=e.proxyInteractionService.createProxyElement({type:"button",textContent:{id:"ariaLabelLegendPageNext"},tabIndex:0,parent:this.paginationGroup}),this.nextButton.addListener("click",n=>this.onPageButton(t,n,"next")),this.nextButton.addListener("mouseenter",()=>i.onMouseHover("next")),this.nextButton.addListener("mouseleave",()=>i.onMouseHover(void 0)))}destroyPaginationButtons(){this.nextButton?.destroy(),this.prevButton?.destroy(),this.nextButton=void 0,this.prevButton=void 0}onPageButton(t,e,i){t.pagination.onClick(e.sourceEvent,i),this.updatePaginationProxyButtons(t,!1)}onDataUpdate(t,e){this.dirty=t.length!==e.length||t.some((i,n,s)=>{const[a,o]=[e[n],t[n]];return a.id!==o.id})}onLocaleChanged(t,e,i){const n=e.length;e.each(({proxyButton:s},a,o)=>{const r=s?.getElement();if(r!=null){const l=ce(i.getItemLabel(a));r.textContent=this.getItemAriaText(t,l,o,n)}}),this.itemDescription.textContent=this.getItemAriaDescription(t)}onPageChange(t){this.updateItemProxyButtons(t),this.updatePaginationProxyButtons(t,!1)}getItemAriaText(t,e,i,n){return i>=0&&e?(i++,t.t("ariaLabelLegendItem",{label:e,index:i,count:n})):t.t("ariaLabelLegendItemUnknown")}getItemAriaDescription(t){return t.t("ariaDescriptionLegendItem")}};function IV(t,{itemId:e,seriesId:i,label:{text:n}},s){const a={defaultPrevented:!1,apiEvent:{type:t,itemId:e,seriesId:i,event:s,text:ce(n),preventDefault:()=>a.defaultPrevented=!0}};return a}var ur=class extends Ds{constructor(){super({name:"markerLabelGroup"}),this.symbolsGroup=this.appendChild(new ee({name:"legend-markerLabel-symbols",renderToOffscreenCanvas:!0,optimizeForInfrequentRedraws:!0})),this.label=this.appendChild(new Pa),this.enabled=!0,this.pageIndex=Number.NaN,this.spacing=0,this.length=0,this.isCustomMarker=!1,this.isRtl=!1,this.marker=this.symbolsGroup.appendChild(new wn({zIndex:1})),this.line=this.symbolsGroup.appendChild(new mo({zIndex:0})),this.line.visible=!1,this.label.textBaseline="middle",this.label.y=1}destroy(){super.destroy(),this.proxyButton?.destroy()}setEnabled(t){this.enabled=t,this.refreshVisibilities()}getTextMeasureBBox(){return this.layout(),Tt.merge([this.symbolsGroup.getBBox(),this.label.getTextMeasureBBox()])}refreshVisibilities(){const t=this.enabled?1:.5;this.label.opacity=t,this.opacity=t}layout(){const{marker:t,line:e,length:i,isCustomMarker:n}=this;let s=0,a=0;if(t.visible){const{size:o}=t,r=wn.anchor(t.shape);s=(r.x-.5)*o+i/2,a=(r.y-.5)*o,n?(t.x=0,t.y=0,t.translationX=s,t.translationY=a):(t.x=s,t.y=a,t.translationX=0,t.translationY=0)}e.visible&&(e.x1=0,e.x2=i,e.y1=0,e.y2=0)}preRender(t){const e=super.preRender(t);return this.layout(),e}layoutLabel(){const{length:t,spacing:e,isRtl:i}=this;this.label.x=i?-e:t+e,this.label.textAlign=i?"right":"left"}computeBBox(){return this.layout(),super.computeBBox()}};ur.className="MarkerLabel";T([pi("label")],ur.prototype,"text",2);T([pi("label")],ur.prototype,"fontStyle",2);T([pi("label")],ur.prototype,"fontWeight",2);T([pi("label")],ur.prototype,"fontSize",2);T([pi("label")],ur.prototype,"fontFamily",2);T([pi("label","fill")],ur.prototype,"color",2);T([Bi(t=>t.layoutLabel())],ur.prototype,"spacing",2);T([Bi(t=>t.layoutLabel())],ur.prototype,"length",2);T([ut()],ur.prototype,"isCustomMarker",2);T([Bi(t=>t.layoutLabel())],ur.prototype,"isRtl",2);function hnt(t,e){switch(typeof e.itemId){case"number":return{series:t,itemId:void 0,datum:void 0,datumIndex:e.itemId,legendItemName:e.legendItemName};case"string":return{series:t,itemId:e.itemId,datum:void 0,datumIndex:void 0,legendItemName:e.legendItemName};default:return e.itemId}}var Yu=class extends xt{constructor(){super(...arguments),this.maxLength=void 0,this.color="black",this.fontStyle=void 0,this.fontWeight=void 0,this.fontSize=zc.SMALL,this.fontFamily="Verdana, sans-serif"}};T([b],Yu.prototype,"maxLength",2);T([b],Yu.prototype,"color",2);T([b],Yu.prototype,"fontStyle",2);T([b],Yu.prototype,"fontWeight",2);T([b],Yu.prototype,"fontSize",2);T([b],Yu.prototype,"fontFamily",2);T([b],Yu.prototype,"formatter",2);var gm=class extends xt{constructor(){super(...arguments),this.shape=void 0,this.size=15,this.padding=8}};T([b],gm.prototype,"shape",2);T([b],gm.prototype,"size",2);T([b],gm.prototype,"padding",2);T([b],gm.prototype,"strokeWidth",2);T([b],gm.prototype,"enabled",2);var EL=class extends xt{};T([b],EL.prototype,"strokeWidth",2);T([b],EL.prototype,"length",2);var $u=class extends xt{constructor(){super(...arguments),this.paddingX=16,this.paddingY=8,this.showSeriesStroke=!1,this.marker=new gm,this.label=new Yu,this.line=new EL}};T([b],$u.prototype,"maxWidth",2);T([b],$u.prototype,"paddingX",2);T([b],$u.prototype,"paddingY",2);T([b],$u.prototype,"showSeriesStroke",2);T([b],$u.prototype,"marker",2);T([b],$u.prototype,"label",2);T([b],$u.prototype,"line",2);var RL=class extends xt{};T([b],RL.prototype,"legendItemClick",2);T([b],RL.prototype,"legendItemDoubleClick",2);var kV={bounds:"item",gradient:"linear",colorStops:[{color:"black"}],rotation:0,reverse:!1,colorSpace:"rgb"},CV={pattern:"forward-slanted-lines",width:8,height:8,padding:1,fill:"black",fillOpacity:1,backgroundFill:"white",backgroundFillOpacity:1,stroke:"black",strokeOpacity:1,strokeWidth:1,rotation:0,scale:1},wV={backgroundFill:"black",backgroundFillOpacity:1,rotation:0,repeat:"no-repeat",fit:"contain"},fn=class extends xt{constructor(t){super(),this.ctx=t,this.id=Nn(this),this.group=new Ds({name:"legend",zIndex:pe.LEGEND}),this.itemSelection=pn.select(this.group,ur),this.containerNode=this.group.appendChild(new On({name:"legend-container"})),this.oldSize=[0,0],this.pages=[],this.paginationItemsOffsetX=0,this.maxPageSize=[0,0],this.paginationTrackingIndex=0,this.truncatedItems=new Set,this._data=[],this.toggleSeries=!0,this.item=new $u,this.listeners=new RL,this.enabled=!1,this.position="bottom",this.border=new Ru(this.containerNode),this.cornerRadius=0,this.fillOpacity=1,this.padding=4,this.spacing=0,this.cleanup=new qe,this.size=[0,0],this._visible=!0,this.pagination=new Yc(()=>t.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}),i=>this.updatePageNumber(i)),this.pagination.attachPagination(this.group);const{items:e}=t.contextMenuRegistry.builtins;e["toggle-series-visibility"].action=i=>this.contextToggleVisibility(i),e["toggle-other-series"].action=i=>this.contextToggleOtherSeries(i),this.cleanup.register(t.eventsHub.on("active:load-memento",i=>this.onActiveLoadMemento(i)),t.eventsHub.on("active:update",i=>this.onActiveUpdate(i)),t.eventsHub.on("legend:change",this.onLegendDataChange.bind(this)),t.eventsHub.on("legend:change-partial",this.onLegendDataChangePartial.bind(this)),t.layoutManager.registerElement(1,i=>this.positionLegend(i)),t.eventsHub.on("locale:change",()=>this.onLocaleChanged()),()=>delete e["toggle-series-visibility"].action,()=>delete e["toggle-other-series"].action,()=>this.group.remove()),this.domProxy=new cnt(this.ctx,this.id),this.ctx.historyManager.addMementoOriginator(t.legendManager)}set data(t){ks(t,this._data)||(this.domProxy.onDataUpdate(this._data,t),this._data=t,this.updateGroupVisibility())}get data(){return this._data}onLegendDataChange({legendData:t=[]}){this.data=t.filter(e=>!e.hideInLegend)}onLegendDataChangePartial(t){this.itemSelection.each(({proxyButton:e},{itemId:i})=>{if(e!=null)for(const n of t.legendData)n.itemId===i&&e.setChecked(n.enabled)})}destroy(){this.ctx.domManager.removeChild("canvas-overlay",`${this.id}-toolbar`),this.ctx.domManager.removeChild("canvas-overlay",`${this.id}-pagination`),this.cleanup.flush(),this.itemSelection.clear()}getOrientation(){return this.orientation??"horizontal"}set visible(t){this._visible=t,this.updateGroupVisibility()}get visible(){return this._visible}updateGroupVisibility(){this.group.visible=this.enabled&&this.visible&&this.data.length>0}updateItemSelection(){const t=[...this.data];this.reverseOrder&&t.reverse(),this.itemSelection.update(t)}isInteractive(){const{toggleSeries:t,listeners:{legendItemClick:e,legendItemDoubleClick:i}}=this;return t||i!=null||e!=null}checkInteractionState(){return this.ctx.interactionManager.isState(1)}attachLegend(t){t.appendChild(this.group)}getItemLabel(t){const{formatter:e}=this.item.label;if(e){const i=t.datum;return this.cachedCallWithContext(e,{itemId:t.itemId,value:t.label.text,seriesId:t.seriesId,...i&&{datum:i}})}return t.label.text}calcLayout(t,e){const{paddingX:i,paddingY:n,label:s,maxWidth:a,label:{maxLength:o=1/0,fontStyle:r,fontWeight:l,fontSize:c,fontFamily:u}}=this.item;this.updateItemSelection();const d=[],g=Ve(s),y=a??t*.8,{markerWidth:x,anyLineEnabled:S}=this.calculateMarkerWidth(),{isRtl:D}=this.ctx.domManager;if(this.itemSelection.each((B,F)=>{B.fontStyle=r,B.fontWeight=l,B.fontSize=c,B.fontFamily=u,B.isRtl=D;const H=this.updateMarkerLabel(B,F,x,S),$=F.itemId??F.id,Y=this.getItemLabel(F),U=ce(Y,"").replace(au," ");B.text=this.truncate(U,o,y,H,g,$),d.push(B.getTextMeasureBBox())}),t=Math.max(1,t),e=Math.max(1,e),!Number.isFinite(t))return{};[t,e]=this.updateContainer(t,e);const A=this.size,I=this.oldSize;A[0]=t,A[1]=e,(A[0]!==I[0]||A[1]!==I[1])&&(I[0]=A[0],I[1]=A[1]);const{pages:w,maxPageHeight:N,maxPageWidth:O}=this.updatePagination(d,t,e),L=this.pages;this.pages=w,this.maxPageSize=[O-i,N-n];const R=this.pagination.currentPage,P=this.pages[R];return this.pages.length<1||!P?(this.visible=!1,{oldPages:L}):(this.visible=!0,this.updatePositions(R),this.update(),{oldPages:L})}isCustomMarker(t,e){return t&&e!==void 0&&typeof e!="string"}calcSymbolsEnabled(t){const{showSeriesStroke:e,marker:i}=this.item,n=!!i.enabled||!e||(t.marker.enabled??!0),s=!!(t.line&&e),a=this.isCustomMarker(n,t.marker.shape);return{markerEnabled:n,lineEnabled:s,isCustomMarker:a}}calcSymbolsLengths(t,e,i){const{marker:n,line:s}=this.item;let a;const{shape:o}=t.marker;if(this.isCustomMarker(e,o)){const c=new wn;c.shape=o,c.updatePath();const u=c.getBBox();a=Math.max(u.width,u.height)}const r=e?n.size:0,l=i?s.length??25:0;return{markerLength:r,lineLength:l,customMarkerSize:a}}calculateMarkerWidth(){let t=0,e=!1;return this.itemSelection.each((i,n)=>{const{symbol:s}=n,{lineEnabled:a,markerEnabled:o}=this.calcSymbolsEnabled(s),{markerLength:r,lineLength:l,customMarkerSize:c=-1/0}=this.calcSymbolsLengths(s,o,a);t=Math.max(t,l,c,r),e||(e=a)}),{markerWidth:t,anyLineEnabled:e}}updateMarkerLabel(t,e,i,n){const{marker:s,paddingX:a}=this.item,{symbol:o}=e;let r=a;const{markerEnabled:l,isCustomMarker:c}=this.calcSymbolsEnabled(o),u=s.padding;(l||n)&&(r+=u+i);const{marker:d,line:g}=t;return d.visible=l,d.visible&&(d.shape=s.shape??o.marker.shape??"square",d.size=s.size,d.setStyleProperties(this.getMarkerStyles(le(o)))),g.visible=n,g.visible&&g.setStyleProperties(this.getLineStyles(o)),t.length=i,t.spacing=u,t.isCustomMarker=c,r}updateContainer(t,e){const i=this.getContainerStyles();return this.containerNode.width=0,this.containerNode.height=0,this.containerNode.setStyleProperties(i),this.containerNode.cornerRadius=i.cornerRadius,t-=i.strokeWidth*2+i.padding.left+i.padding.right,e-=i.strokeWidth*2+i.padding.top+i.padding.bottom,[t,e]}truncate(t,e,i,n,s,a){let o=!1;t.length>e&&(t=t.substring(0,e),o=!0);const r=tp(t,s,i-n,o);return wu(r)?this.truncatedItems.add(a):this.truncatedItems.delete(a),r}updatePagination(t,e,i){const n=this.getOrientation(),s=Math.min(this.paginationTrackingIndex,t.length),{isRtl:a}=this.ctx.domManager;this.pagination.orientation=n,this.pagination.isRtl=a,this.pagination.translationX=0,this.pagination.translationY=0;const{pages:o,maxPageHeight:r,maxPageWidth:l,paginationBBox:c,paginationVertical:u}=this.calculatePagination(t,e,i),d=o.findIndex(w=>w.endIndex>=s);this.pagination.currentPage=Nt(0,d,Math.max(0,o.length-1));const{paddingX:g,paddingY:f}=this.item,y=8,x=l-g,S=r-f;let D=0,A=-c.y-this.item.marker.size/2;u?(a&&(D=e-c.width+c.x),A+=S+y):a?(D=-c.x,A+=(S-c.height)/2):(D+=-c.x+x+y,A+=(S-c.height)/2),this.paginationItemsOffsetX=a&&!u&&this.pagination.visible?c.width+y:0,this.pagination.translationX=D,this.pagination.translationY=A,this.pagination.update(),this.pagination.updateMarkers();let I=0;return this.itemSelection.each((w,N,O)=>{O>(o[I]?.endIndex??1/0)&&I++,w.pageIndex=I}),{maxPageHeight:r,maxPageWidth:l,pages:o}}calculatePagination(t,e,i){const{paddingX:n,paddingY:s}=this.item,a=["left","left-top","left-bottom","right","right-top","right-bottom"],{placement:o}=qd(this.position),r=this.getOrientation(),l=a.includes(o);let c=this.pagination.getBBox(),u=new Tt(0,0,0,0),d=[],g=0,f=0,y=0;const x=D=>D.width===c.width&&D.height===c.height,S=this.maxWidth!==void 0&&this.maxHeight!==void 0;do{if(y++>10){pt.warn("unable to find stable legend layout.");break}c=u;const D=e-(l?0:c.width),A=i-(l?c.height:0),I=nnt({orientation:r,bboxes:t,maxHeight:A,maxWidth:D,itemPaddingY:s,itemPaddingX:n,forceResult:S});d=I?.pages??[],g=I?.maxPageWidth??0,f=I?.maxPageHeight??0;const w=d.length;if(this.pagination.visible=w>1,this.pagination.totalPages=w,this.pagination.update(),this.pagination.updateMarkers(),u=this.pagination.getBBox(),!this.pagination.visible)break}while(!x(u));return{maxPageWidth:g,maxPageHeight:f,pages:d,paginationBBox:u,paginationVertical:l}}updatePositions(t=0){const{item:{paddingY:e},itemSelection:i,pages:n}=this;if(n.length<1||!n[t])return;const{columns:s,startIndex:a,endIndex:o}=n[t];let r=0,l=0;const c=s.length,u=s[0].indices.length,d=this.getOrientation()==="horizontal",g=s[0].bboxes[0].height+e,{isRtl:f}=this.ctx.domManager,y=[],x=s.reduce((S,D)=>S+D.columnWidth,0);i.each((S,D,A)=>{if(Ao){S.visible=!1;return}const I=A-a;let w,N;d?(w=I%c,N=Math.floor(I/c)):(w=Math.floor(I/u),N=I%u),S.visible=!0;const O=s[w];O&&(l=Math.floor(g*N),f?r=Math.floor(x-(y[N]??0)):r=Math.floor(y[N]??0),y[N]=(y[N]??0)+O.columnWidth,S.translationX=r+this.paginationItemsOffsetX,S.translationY=l)})}updatePageNumber(t){const{itemSelection:e,group:i,pagination:n,pages:s}=this,a=s[t];if(!a)return;const{startIndex:o,endIndex:r}=a;o===0?this.paginationTrackingIndex=0:t===s.length-1?this.paginationTrackingIndex=r:this.paginationTrackingIndex=Math.floor((o+r)/2),this.pagination.update(),this.pagination.updateMarkers(),this.updatePositions(t),this.domProxy.onPageChange({itemSelection:e,group:i,pagination:n,interactive:this.isInteractive()}),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER})}update(){const{label:{color:t}}=this.item;this.itemSelection.each((e,i)=>{e.setEnabled(i.enabled),e.color=t}),this.updateContextMenu()}updateContextMenu(){const t=this.toggleSeries?"show":"hide";this.ctx.contextMenuRegistry.toggle("toggle-series-visibility",t),this.ctx.contextMenuRegistry.toggle("toggle-other-series",t)}getLineStyles(t){const{stroke:e,strokeOpacity:i=1,strokeWidth:n,lineDash:s}=t.line??{},a=Math.min(2,n??1);return{stroke:e,strokeOpacity:i,strokeWidth:this.item.line.strokeWidth??a,lineDash:s}}getMarkerStyles({marker:t}){const{fill:e,stroke:i,strokeOpacity:n=1,fillOpacity:s=1,strokeWidth:a,lineDash:o,lineDashOffset:r}=t,l=Math.min(2,a??1);return ir(e)&&(e.width=8,e.height=8,e.padding=1,e.strokeWidth=Math.min(2,e.strokeWidth??2)),ml(e)&&(e.fit="contain",e.width=void 0,e.height=void 0,e.repeat="no-repeat"),RN({fill:e,stroke:i,strokeOpacity:n,fillOpacity:s,strokeWidth:this.item.marker.strokeWidth??l,lineDash:o,lineDashOffset:r},kV,CV,wV)}getContainerStyles(){const{stroke:t,strokeOpacity:e,strokeWidth:i}=this.border,{cornerRadius:n,fill:s,fillOpacity:a,padding:o}=this,r=typeof o=="number";return RN({cornerRadius:n,fill:s,fillOpacity:a,padding:{top:r?o:o.top??0,right:r?o:o.right??0,bottom:r?o:o.bottom??0,left:r?o:o.left??0},stroke:t,strokeOpacity:e,strokeWidth:this.border.enabled?i:0},kV,CV,wV)}computePagedBBox(){const t=ee.computeChildrenBBox(this.group.excludeChildren({name:"legend-container"}));if(this.pages.length>1){const[n,s]=this.maxPageSize;t.height=Math.max(s,t.height),t.width=Math.max(n,t.width)}const{strokeWidth:e,padding:i}=this.getContainerStyles();return t.grow(i).grow(e),t}findNode(t){const{datum:e,proxyButton:i}=this.itemSelection.select(n=>n.datum?.itemId===t.itemId)[0]??{};if(e===void 0||i===void 0)throw new Error(`AG Charts - Missing required properties { datum: ${e}, proxyButton: ${JSON.stringify(i)} }`);return{datum:e,proxyButton:i}}contextToggleVisibility(t){const{datum:e,proxyButton:i}=this.findNode(t);this.doClick(t.event,e,i),this.clearHighlight()}contextToggleOtherSeries(t){this.doDoubleClick(t.event,this.findNode(t).datum),this.clearHighlight()}onContextClick(t,e){if(this.checkInteractionState())return;const{sourceEvent:i}=t,n=e.datum;this.clearHighlight(),this.preventHidingAll&&this.contextMenuDatum?.enabled&&this.getVisibleItemCount()<=1?this.ctx.contextMenuRegistry.builtins.items["toggle-series-visibility"].enabled=!1:this.ctx.contextMenuRegistry.builtins.items["toggle-series-visibility"].enabled=!0;const a=this.ctx.chartService.series.length>1&&this.ctx.chartService.series[0]?.getLegendData("category")[0]?.hideToggleOtherSeries!==!0?"show":"hide";this.ctx.contextMenuRegistry.toggle("toggle-other-series",a);const{offsetX:o,offsetY:r}=i,{x:l,y:c}=Ti.toCanvasPoint(e,o,r);this.ctx.contextMenuRegistry.dispatchContext("legend-item",{widgetEvent:t,canvasX:l,canvasY:c},{legendItem:n})}onClick(t,e,i){this.doClick(t,e,i)&&t.preventDefault()}getVisibleItemCount(){return this.ctx.chartService.series.flatMap(t=>t.getLegendData("category")).filter(t=>t.enabled).length}doClick(t,e,i){const{listeners:{legendItemClick:n},ctx:{chartService:s},preventHidingAll:a,toggleSeries:o}=this;if(!e)return!1;const{legendType:r,seriesId:l,itemId:c,enabled:u,legendItemName:d}=e,g=s.series.find(x=>x.id===l);if(!g)return!1;let f=u;const y=IV("click",e,t);return n&&js([g.properties,this.ctx.chartService],n,y.apiEvent),y.defaultPrevented||(o&&(f=!u,a&&!f&&this.getVisibleItemCount()<2&&(f=!0),i.setChecked(f),this.ctx.eventsHub.emit("legend:item-click",{legendType:r,series:g,itemId:c,enabled:f,legendItemName:d})),this.updateHighlight(f,e,g),this.ctx.legendManager.update(),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.PROCESS_DATA,opts:{forceNodeDataRefresh:!0,skipAnimations:e.skipAnimations??!1}})),!0}onDoubleClick(t,e){this.doDoubleClick(t,e)&&t.preventDefault()}doDoubleClick(t,e){const{listeners:{legendItemDoubleClick:i},ctx:{chartService:n},toggleSeries:s}=this;if(!e)return!1;const{legendType:a,id:o,itemId:r,seriesId:l}=e,c=n.series.find(d=>d.id===o);if(!c)return!1;const u=IV("dblclick",e,t);if(i&&js([c.properties,this.ctx.chartService],i,u.apiEvent),u.defaultPrevented)return!0;if(s){const d=n.series.flatMap(x=>x.getLegendData("category"));let g=0;const f=new Set;for(const x of d)x.enabled&&(g+=1,x.legendItemName!=null&&f.add(x.legendItemName));f.size>0&&(g=f.size);const y=d.find(x=>x.itemId===r&&x.seriesId===l);this.ctx.eventsHub.emit("legend:item-double-click",{legendType:a,series:c,itemId:r,numVisibleItems:g,enabled:y?.enabled??!1,legendItemName:y?.legendItemName})}return this.ctx.legendManager.update(),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.PROCESS_DATA,opts:{forceNodeDataRefresh:!0}}),!0}toTooltipMeta(t,e){let i;return t instanceof FocusEvent?i=Ti.toCanvas(e).computeCenter():(t.preventDefault(),i=Ti.toCanvasPoint(e,t.offsetX,t.offsetY)),{canvasX:i.x,canvasY:i.y,showArrow:!1}}onHover(t,e){if(this.checkInteractionState())return;if(!this.enabled)throw new Error("AG Charts - onHover handler called on disabled legend");this.pagination.setPage(e.pageIndex);const i=e.datum,n=i?this.ctx.chartService.series.find(s=>s.id===i?.id):void 0;if(i&&this.truncatedItems.has(i.itemId??i.id)){const s=this.toTooltipMeta(t,e);this.ctx.tooltipManager.updateTooltip(this.id,s,[{type:"structured",title:this.getItemLabel(i)}])}else this.ctx.tooltipManager.removeTooltip(this.id,void 0,!0);this.updateHighlight(i?.enabled,i,n)}onLeave(){this.checkInteractionState()||(this.ctx.tooltipManager.removeTooltip(this.id,void 0,!0),this.clearHighlight())}clearHighlight(){this.updateHighlight(void 0,void 0,void 0)}updateHighlight(t,e,i,n){if(this.checkInteractionState())return;const s=r=>{if(r===void 0)return this.ctx.activeManager.clear();{const l=r.nodeDatum.series.id,c=r.itemId;return this.ctx.activeManager.update({type:"legend",seriesId:l,itemId:c},void 0)}},a=r=>{s(r)||this.ctx.highlightManager.updateHighlight(this.id,r?.nodeDatum)},o=r=>{this.ctx.interactionManager.isState(64)||n?.initialState?a(r):this.ctx.interactionManager.isState(4)?this.ctx.animationManager.onBatchStop(()=>{a(r)}):r===void 0&&a(r)};if(t===!0&&i!==void 0&&e!==void 0){const r=e.itemId,l=hnt(i,e);o({itemId:r,nodeDatum:l})}else o(void 0)}onActiveUpdate(t){t?.type==="series-node"&&this.ctx.highlightManager.updateHighlight(this.id,void 0)}onActiveLoadMemento(t){const{activeItem:e}=t;if(e?.type!=="legend")return this.ctx.highlightManager.updateHighlight(this.id,void 0);const i=this.data.find(s=>s.seriesId===e.seriesId&&s.itemId===e.itemId),n=this.ctx.chartService.series.find(s=>s.id===e.seriesId);if(n===void 0)pt.warn(`Cannot find seriesId: "${e.seriesId}"`),t.reject();else if(i===void 0){const s=JSON.stringify({seriesId:e.seriesId,itemId:e.itemId});pt.warn(`cannot find legend item: ${s}`),t.reject()}else this.updateHighlight(i.enabled,i,n,t)}onLocaleChanged(){this.updateItemSelection(),this.domProxy.onLocaleChanged(this.ctx.localeManager,this.itemSelection,this)}positionLegend(t){const e=this.positionLegendScene(t);this.positionLegendDOM(e)}positionLegendScene(t){if(!this.enabled||!this.data.length)return;const{placement:e,floating:i,xOffset:n,yOffset:s}=qd(this.position),a=i?new Tt(0,0,t.width,t.height):t.layoutBox,{x:o,y:r,width:l,height:c}=a,[u,d]=this.calculateLegendDimensions(a),{oldPages:g}=this.calcLayout(u,d),f=this.computePagedBBox();if(this.visible){const y=this.spacing;let x,S;switch(e){case"top":x=(l-f.width)/2,S=0;break;case"bottom":x=(l-f.width)/2,S=c-f.height;break;case"right":x=l-f.width,S=(c-f.height)/2;break;case"left":x=0,S=(c-f.height)/2;break;case"top-right":case"right-top":x=l-f.width,S=0;break;case"top-left":case"left-top":x=0,S=0;break;case"bottom-right":case"right-bottom":x=l-f.width,S=c-f.height;break;case"bottom-left":case"left-bottom":x=0,S=c-f.height;break}if(!i){let D,A;switch(e){case"top":case"top-right":case"top-left":D=f.height+y,A="top";break;case"bottom":case"bottom-right":case"bottom-left":D=f.height+y,A="bottom";break;case"left":case"left-top":case"left-bottom":D=f.width+y,A="left";break;case"right":case"right-top":case"right-bottom":D=f.width+y,A="right";break}a.shrink(D,A)}x+=n,S+=s,this.group.translationX=Math.floor(o+x-f.x),this.group.translationY=Math.floor(r+S-f.y),this.containerNode.x=f.x,this.containerNode.y=f.y,this.containerNode.width=f.width,this.containerNode.height=f.height}return g}positionLegendDOM(t){const{ctx:e,itemSelection:i,pagination:n,pages:s,group:a}=this,o=this.visible&&this.enabled,r=this.isInteractive();this.domProxy.update({visible:o,interactive:r,ctx:e,itemSelection:i,group:a,pagination:n,oldPages:t,newPages:s,datumReader:this,itemListener:this})}calculateLegendDimensions(t){const{width:e,height:i}=t,{placement:n}=qd(this.position),s=e/i,a=.5,o=.2,r=.25;let l,c;switch(n){case"top":case"top-left":case"top-right":case"bottom":case"bottom-left":case"bottom-right":{const u=s<1?Math.min(a,o*(1/s)):o;l=this.maxWidth?Math.min(this.maxWidth,e):e,c=this.maxHeight?Math.min(this.maxHeight,i):Math.round(i*u);break}case"left":case"left-top":case"left-bottom":case"right":case"right-top":case"right-bottom":{const u=s>1?Math.min(a,r*s):r;l=this.maxWidth?Math.min(this.maxWidth,e):Math.round(e*u),c=this.maxHeight?Math.min(this.maxHeight,i):i;break}}return[l,c]}cachedCallWithContext(t,e){const{callbackCache:i,chartService:n}=this.ctx;return i.call([this,n],t,e)}};fn.className="Legend";T([b],fn.prototype,"toggleSeries",2);T([b],fn.prototype,"pagination",2);T([b],fn.prototype,"item",2);T([b],fn.prototype,"listeners",2);T([Bi((t,e,i)=>{if(t.updateGroupVisibility(),e===i)return;const{ctx:{legendManager:n,stateManager:s}}=t;i===!1&&e===!0&&s.restoreState(n)}),b],fn.prototype,"enabled",2);T([b],fn.prototype,"position",2);T([b],fn.prototype,"maxWidth",2);T([b],fn.prototype,"maxHeight",2);T([b],fn.prototype,"reverseOrder",2);T([b],fn.prototype,"orientation",2);T([b],fn.prototype,"preventHidingAll",2);T([b],fn.prototype,"border",2);T([b],fn.prototype,"cornerRadius",2);T([b],fn.prototype,"fill",2);T([b],fn.prototype,"fillOpacity",2);T([b],fn.prototype,"padding",2);T([b],fn.prototype,"spacing",2);T([b],fn.prototype,"xOffset",2);T([b],fn.prototype,"yOffset",2);var jW={type:"plugin",name:"legend",version:oi,options:{enabled:J,position:nM,orientation:dt("horizontal","vertical"),maxWidth:X,maxHeight:X,spacing:X,border:Zd,cornerRadius:gt,padding:Ar,fill:Ga,fillOpacity:Ot,preventHidingAll:J,reverseOrder:J,toggleSeries:J,item:{marker:{size:X,shape:xu,padding:X,strokeWidth:X},line:{length:X,strokeWidth:X},label:{maxLength:X,formatter:ai,...De},maxWidth:X,paddingX:X,paddingY:X,showSeriesStroke:J},pagination:{marker:{size:X,shape:xu,padding:X},activeStyle:{...wt,...bt},inactiveStyle:{...wt,...bt},highlightStyle:{...wt,...bt},label:De},listeners:{legendItemClick:ai,legendItemDoubleClick:ai}},themeTemplate:{...F1,enabled:{$and:[{$greaterThan:[{$size:{$path:"/series"}},1]},{$or:[{$isChartType:"cartesian"},{$isChartType:"standalone"},{$and:[{$isChartType:"polar"},{$not:{$isSeriesType:"pie"}},{$not:{$isSeriesType:"donut"}}]}]}]},position:he.BOTTOM,orientation:{$if:[{$or:[{$eq:[{$path:"./position"},he.LEFT]},{$eq:[{$path:"./position"},he.LEFT_TOP]},{$eq:[{$path:"./position"},he.LEFT_BOTTOM]},{$eq:[{$path:"./position"},he.RIGHT]},{$eq:[{$path:"./position"},he.RIGHT_TOP]},{$eq:[{$path:"./position"},he.RIGHT_BOTTOM]},{$eq:[{$path:"./position/placement"},he.LEFT]},{$eq:[{$path:"./position/placement"},he.LEFT_TOP]},{$eq:[{$path:"./position/placement"},he.LEFT_BOTTOM]},{$eq:[{$path:"./position/placement"},he.RIGHT]},{$eq:[{$path:"./position/placement"},he.RIGHT_TOP]},{$eq:[{$path:"./position/placement"},he.RIGHT_BOTTOM]}]},"vertical","horizontal"]},spacing:30,listeners:{},toggleSeries:!0,item:{paddingX:16,paddingY:8,marker:{size:15,padding:8},showSeriesStroke:!0,label:{color:{$ref:"textColor"},fontSize:{$rem:Cn.SMALL},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"}}},reverseOrder:!1,pagination:{marker:{size:12},activeStyle:{fill:{$ref:"foregroundColor"}},inactiveStyle:{fill:{$ref:"subtleTextColor"}},highlightStyle:{fill:{$ref:"foregroundColor"}},label:{color:{$ref:"textColor"}}},fill:{$if:[{$path:["./position/floating",!1]},{$ref:"chartBackgroundColor"},"transparent"]}},create:t=>{const e=new fn(t);return e.attachLegend(t.scene),e}},fm=class extends Ao{getVisibleDomain(t){const[e,i]=t,[n,s]=this.visibleRange;if(t.length<2)return[e,i];const a=Math.min(e,i),o=Math.max(e,i);if(a>=0){const r=Math.log(e),c=Math.log(i)-r;return[Math.exp(r+n*c),Math.exp(r+s*c)]}if(o<=0){const r=-Math.log(-e),c=-Math.log(-i)-r;return[-Math.exp(-(r+n*c)),-Math.exp(-(r+s*c))]}return[Number.NaN,Number.NaN]}normaliseDataDomain(t){const{min:e,max:i,preferredMin:n,preferredMax:s}=this,{extent:a,clipped:o}=Uf(t.domain,e,i,n,s,void 0,t.sortMetadata?.sortOrder);return a[0]<0&&a[1]>0||t.domain[0]<0&&t.domain[1]>0?(pt.warn("The log axis domain crosses zero, the chart data cannot be rendered. See log axis documentation for more information."),{domain:[],clipped:o}):a[0]===0||a[1]===0||t.domain[0]===0||t.domain[1]===0?(pt.warn("The log axis domain contains a value of 0, the chart data cannot be rendered. See log axis documentation for more information."),{domain:[],clipped:o}):{domain:a,clipped:o}}set base(t){this.scale.base=t}get base(){return this.scale.base}constructor(t){super(t,new pL)}};fm.className="LogAxis";fm.type="log";var unt=10;function PM(t,e,i,n,s,a,o){const r=t[a];if(r===void 0)return-1;const l=Number.isFinite(e)?ar(r,e,i,o):xf(a,t.length),c=yD(l,s);return a===n[c+Ca]||a===n[c+wa]||a===n[c+Na]||a===n[c+Ta]?c:-1}function GW(t,e,i,n,s,a,o,r,l){let c=0,u=0,d=-1;for(let S=0;SD.maxRange===u);let{indexData:g,valueData:f}=Fc(e,i,i,a,o,u,{xNeedsValueOf:r,yNeedsValueOf:l,reuseIndexData:d?.indexData,reuseValueData:d?.valueData}),{indices:y,metaIndices:x}=GW(e,a,o,g,u,r,s,d?.indices,d?.metaIndices);const S=[{maxRange:u,metaIndices:x,indices:y,indexData:g,valueData:f}];for(;y.length>unt&&u>Ou;){const D=u,A=Math.trunc(D/2),I=c?.find($=>$.maxRange===A),w=ap(g,f,D,{reuseIndexData:I?.indexData,reuseValueData:I?.valueData});u=w.maxRange,g=w.indexData,f=w.valueData;const N=y;let O=0,L=0,R=-1;for(const $ of N){const Y=PM(e,a,o,g,u,$,r);Y!==-1&&(O++,Y!==R&&(L++,R=Y))}L++;const P=I?.indices?.length===O?I.indices:new Uint32Array(O),B=I?.metaIndices?.length===L?I.metaIndices:new Uint32Array(L);let F=0,H=0;R=-1;for(const $ of N){const Y=PM(e,a,o,g,u,$,r);Y!==-1&&(Y!==R&&(B[H++]=F,R=Y),P[F++]=$)}B[H]=O-1,y=P,x=B,S.push({maxRange:u,metaIndices:x,indices:y,indexData:g,valueData:f})}return S.reverse(),S}function dnt(t,e,i,n){const s=e.length;if(sw.maxRange===g),{indexData:y,valueData:x}=Fc(e,i,i,a,o,g,{xNeedsValueOf:r,yNeedsValueOf:l,reuseIndexData:f?.indexData,reuseValueData:f?.valueData}),{indices:S,metaIndices:D}=GW(e,a,o,y,g,r,s,f?.indices,f?.metaIndices),A={maxRange:g,indices:S,metaIndices:D,indexData:y,valueData:x};function I(){return PL([a,o],e,i,{xNeedsValueOf:r,yNeedsValueOf:l,existingFilters:u})?.filter(N=>N.maxRange!==g)??[]}return{immediate:[A],computeRemaining:I}}function pnt(t,e,i,n,s,a){const[o,r]=gn(t,n);return PL([o,r],e,i,{xNeedsValueOf:s,yNeedsValueOf:a})}var gnt=Pu(pnt);function fnt(t,e,i,n,s,a){const o=e.resolveKeysById(s,"xValue",i),r=e.resolveColumnById(s,n,i),l=e.getDomain(s,"xValue","key",i),c=e.resolveColumnNeedsValueOf(s,"xValue",i),u=e.resolveColumnNeedsValueOf(s,n,i);if(a){const[d,g]=gn(t,l);return PL([d,g],o,r,{xNeedsValueOf:c,yNeedsValueOf:u,existingFilters:a})}return gnt(t,o,r,l,c,u)}function mnt(t,e,i,n,s,a,o){const r=e.resolveKeysById(s,"xValue",i),l=e.resolveColumnById(s,n,i),c=e.getDomain(s,"xValue","key",i),u=e.resolveColumnNeedsValueOf(s,"xValue",i),d=e.resolveColumnNeedsValueOf(s,n,i),[g,f]=gn(t,c);return dnt([g,f],r,l,{xNeedsValueOf:u,yNeedsValueOf:d,targetRange:a,existingFilters:o})}var on=class extends jr{constructor(){super(...arguments),this.xName=void 0,this.fill="#c16068",this.fillOpacity=1,this.stroke="#874349",this.strokeWidth=2,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.interpolation=new Mp,this.shadow=new zl,this.marker=new la,this.label=new Do,this.tooltip=zp(),this.connectMissingData=!1}};T([b],on.prototype,"xKey",2);T([b],on.prototype,"xName",2);T([b],on.prototype,"yKey",2);T([b],on.prototype,"yName",2);T([b],on.prototype,"selectedKey",2);T([b],on.prototype,"stackGroup",2);T([b],on.prototype,"normalizedTo",2);T([b],on.prototype,"fill",2);T([b],on.prototype,"fillOpacity",2);T([b],on.prototype,"stroke",2);T([b],on.prototype,"strokeWidth",2);T([b],on.prototype,"strokeOpacity",2);T([b],on.prototype,"lineDash",2);T([b],on.prototype,"lineDashOffset",2);T([b],on.prototype,"interpolation",2);T([b],on.prototype,"styler",2);T([b],on.prototype,"shadow",2);T([b],on.prototype,"marker",2);T([b],on.prototype,"label",2);T([b],on.prototype,"tooltip",2);T([b],on.prototype,"connectMissingData",2);var zL=class extends Wu{constructor(t){super({moduleCtx:t,propertyKeys:hm,propertyNames:um,categoryKey:"xValue",pathsPerSeries:["fill","stroke"],pathsZIndexSubOrderOffset:[0,1e3],datumSelectionGarbageCollection:!1,segmentedDataNodes:!1,pickModes:[2,0],animationResetFns:{path:kL({getVisible:()=>this.visible,getOpacity:()=>this.getOpacity()}),label:Pp,datum:(e,i)=>({...rA(),...nx(e,i)})},clipFocusBox:!1}),this.properties=new on,this.connectsToYAxis=!0,this.aggregationManager=new dA,this.backgroundGroup=new ee({name:`${this.id}-background`,zIndex:Vs.BACKGROUND}),this._isStacked=void 0,this.fillSpans=[],this.phantomSpans=[],this.strokeSpans=[]}get pickModeAxis(){return"main"}renderToOffscreenCanvas(){const t=(this.contextNodeData?.nodeData?.length??0)>0;return super.renderToOffscreenCanvas()||t&&this.getDrawingMode(!1)==="cutout"||this.contextNodeData!=null&&(this.contextNodeData.fillData.spans.length>GN||this.contextNodeData.strokeData.spans.length>GN)}attachSeries(t,e,i){super.attachSeries(t,e,i),t.appendChild(this.backgroundGroup)}detachSeries(t,e,i){super.detachSeries(t,e,i),this.backgroundGroup.remove()}attachPaths([t,e]){this.backgroundGroup.appendChild(t),this.contentGroup.appendChild(e),e.zIndex=-1}detachPaths([t,e]){t.remove(),e.remove()}isStacked(){return(this.seriesGrouping?.stackCount??1)>1}isNormalized(){return this.properties.normalizedTo!=null}setSeriesIndex(t){const i=this.isStacked()===this._isStacked;return this._isStacked=i,super.setSeriesIndex(t,i)}setZIndex(t){super.setZIndex(t),this.isStacked()?(this.backgroundGroup.zIndex=[Vs.BACKGROUND,t],this.contentGroup.zIndex=[Vs.ANY_CONTENT,t,Mc.FOREGROUND]):(this.backgroundGroup.zIndex=[Vs.ANY_CONTENT,t,Mc.FOREGROUND,0],this.contentGroup.zIndex=[Vs.ANY_CONTENT,t,Mc.FOREGROUND,1])}async processData(t){if(this.data==null)return;const{data:e,visible:i,seriesGrouping:{groupIndex:n=this.id,stackCount:s=1}={}}=this,{xKey:a,yKey:o,selectedKey:r,connectMissingData:l,normalizedTo:c}=this.properties,u=!this.ctx.animationManager.isSkipped(),d=this.axes[z.X]?.scale,g=this.axes[z.Y]?.scale,{xScaleType:f,yScaleType:y}=this.getScaleInformation({xScale:d,yScale:g}),x=s>1||c!=null,S={value:`area-stack-${n}-yValue`,marker:`area-stack-${n}-yValues-marker`},D={invalidValue:null};(go(c)||l)&&s>1&&(D.invalidValue=0),i||(D.forceValue=0);const A=this.properties.allowNullKeys??!1,I=[uu(a,f,{id:"xValue",allowNullKey:A}),Ci(o,y,{id:"yValueRaw",...D}),...r==null?[]:[Ci(r,"category",{id:"selectedRaw"})]];x&&I.push(...Wd(o,"normal",{id:"yValueCumulative",...D,groupId:S.marker},y)),go(c)&&I.push(Ci(o,y,{id:"yValue",...D,groupId:S.value}),jD(Object.values(S),c)),u&&I.push(Hx());const{dataModel:w,processedData:N}=await this.requestDataModel(t,e,{props:I,groupByKeys:x,groupByData:!x});this.aggregateData(w,N),this.animationState.transition("updateData")}xCoordinateRange(t,e){const{marker:i}=this.properties,n=this.axes[z.X].scale.convert(t),s=i.enabled?.5*i.size*e:0;return[n-s,n+s]}yCoordinateRange(t,e){const{marker:i}=this.properties,n=this.axes[z.Y].scale.convert(t[0]),s=i.enabled?.5*i.size*e:0;return[n-s,n+s]}yValueKey(){return this.isNormalized()?"yValue":"yValueRaw"}yCumulativeKey(t){return t.type==="grouped"?"yValueCumulative":this.yValueKey()}getSeriesDomain(t){const{dataModel:e,processedData:i,axes:n}=this;if(!e||!i)return{domain:[]};const s=n[z.Y];if(t===z.X){const o=e.resolveProcessedDataDefById(this,"xValue"),r=e.getDomain(this,"xValue","key",i);return o?.def.type==="key"&&o.def.valueType==="category"?r:{domain:_a(Ll(r.domain))}}const a=this.domainForClippedRange(z.Y,[this.yCumulativeKey(i)],"xValue");if(s instanceof Ao&&!(s instanceof fm)){const o=Number.isFinite(a[1]-a[0])?[Math.min(a[0],0),Math.max(a[1],0)]:[];return{domain:_a(o)}}else return{domain:_a(a)}}getSeriesRange(t,e){const[i,n]=this.domainForVisibleRange(z.Y,[this.yCumulativeKey(this.processedData)],"xValue",e);return[Math.min(i,0),Math.max(n,0)]}getZoomRangeFittingItems(t,e,i){return this.zoomFittingVisibleItems("xValue",[this.yCumulativeKey(this.processedData)],t,e,i)}getVisibleItems(t,e,i){return this.countVisibleItems("xValue",[this.yCumulativeKey(this.processedData)],t,e,i)}aggregateData(t,e){if(this.aggregationManager.markStale(e.input.count),rr(e))return;const i=this.axes[z.X];if(i==null)return;const n=this.estimateTargetRange();this.aggregationManager.aggregate({computePartial:a=>mnt(i.scale.type,t,e,this.yCumulativeKey(e),this,n,a),computeFull:a=>fnt(i.scale.type,t,e,this.yCumulativeKey(e),this,a),targetRange:n});const s=this.aggregationManager.filters;s&&s.length>0&&Vr.record(`${this.type}:aggregation`,s.map(a=>a.maxRange))}estimateTargetRange(){const t=this.axes[z.X];if(t?.scale?.range){const[e,i]=t.scale.range;return Math.abs(i-e)}return this.ctx.scene?.canvas?.width??800}stackAggregatedData(t){const{indices:e,metaIndices:i}=t,{visible:n,axes:s,dataModel:a,processedData:o,seriesBelowStackContext:r}=this,l=s[z.X],c=s[z.Y];if(!n)return this.phantomSpans=[],this.fillSpans=[],this.strokeSpans=[],r;if(l==null||c==null||a==null||o==null)return;const{scale:u}=l,{scale:d}=c,g=(u.bandwidth??0)/2,f=!this.isStacked()&&this.properties.connectMissingData,y=o.invalidData?.get(this.id),x=a.resolveKeysById(this,"xValue",o),S=a.resolveColumnById(this,this.yCumulativeKey(o),o);let[D,A]=Qb(1,i.length-1,l.range,L=>{const R=i[L],P=i[L+1],B=e[R],F=e[P],H=x[B],$=x[F],{0:Y}=this.xCoordinateRange(H,0),{1:U}=this.xCoordinateRange($,0);return[Y,U]});D=Math.max(D-1,0),A=Math.min(A+1,i.length-1);let I=[];if(r?.fillSpans)I=r?.fillSpans;else for(let L=D;Lnt.point),q={span:{type:"multi-line",moveTo:!1,x0:U.point.x,y0:U.point.y,x1:V.point.x,y1:V.point.y,midPoints:Z},xValue0:U.xDatum,xValue1:V.xDatum,yValue0:U.yDatum,yValue1:V.yDatum};w.push(q),N.push(q)}return this.fillSpans=w,this.strokeSpans=N,{stack:[],fillSpans:w,strokeSpans:N}}hasInvalidDatumsInRange(t,e,i,n){const s=Math.min(i,n),a=Math.max(i,n);for(let o=s;o<=a;o++){if(t?.[o])return!0;const r=e[o];if(!Number.isFinite(r))return!0}return!1}stackYValueData(){const{visible:t,axes:e,dataModel:i,processedData:n,seriesBelowStackContext:s,properties:a}=this,o=e[z.X],r=e[z.Y];if(o==null||r==null||i==null||n==null)return;const{interpolation:l}=a,{scale:c}=o,{scale:u}=r,d=(c.bandwidth??0)/2;let g=i.resolveKeysById(this,"xValue",n),f=i.resolveColumnById(this,this.yValueKey(),n);const y=!this.isStacked()&&this.properties.connectMissingData,x=n.invalidKeys?.get(this.id),D=(y?n.invalidData?.get(this.id):void 0)??x;D!=null&&(g=g.filter((F,H)=>D[H]===!1),f=f.filter((F,H)=>D[H]===!1));let[A,I]=Qb(1,g.length,o.range,F=>this.xCoordinateRange(g[F],0));A=Math.max(A-2,0),I=Math.min(I+2,g.length);let w;if(s?.fillSpans)w=s?.fillSpans;else{const F=[];for(let H=A;H0,crossFiltering:this.properties.selectedKey!=null,styles:hA(this,this.properties,this.properties.marker),segments:void 0}}assembleResult(t,e){return e.segments=nA(this.properties.segmentation,t.xAxis,t.yAxis,this.chart.seriesRect,this.ctx.scene,!1),e}isPathOrSelectionDirty(){return this.properties.marker.isDirty()}updatePathNodes(t){const{paths:[e,i],visible:n,animationEnabled:s}=t,a=this.contextNodeData?.segments,o=Et(this.getHighlightStyle(),this.getStyle()),{strokeWidth:r,stroke:l,strokeOpacity:c,lineDash:u,lineDashOffset:d,fill:g,fillOpacity:f,opacity:y}=o;i.setProperties({segments:a,fill:void 0,lineCap:"round",lineJoin:"round",pointerEvents:1,stroke:l,strokeWidth:r,strokeOpacity:c,lineDash:u,lineDashOffset:d,opacity:y,visible:n||s}),i.datum=a,e.setStyleProperties({fill:g,stroke:void 0,fillOpacity:f},this.getShapeFillBBox()),e.setProperties({segments:a,lineJoin:"round",pointerEvents:1,fillShadow:this.properties.shadow,opacity:y,visible:n||s}),e.datum=a,OM(this,i),OM(this,e)}updatePaths(t){this.updateAreaPaths(t.paths,t.contextData)}updateAreaPaths(t,e){for(const i of t)i.visible=e.visible;if(e.visible)this.updateFillPath(t,e),this.updateStrokePath(t,e);else for(const i of t)i.path.clear(),i.markDirty("AreaSeries")}updateFillPath(t,e){const[i]=t;i.path.clear(),bW(i,e.fillData),i.markDirty("AreaSeries")}updateStrokePath(t,e){const{spans:i}=e.strokeData,[,n]=t;n.path.clear(),xL(n,i),n.markDirty("AreaSeries")}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t,{contextNodeData:n,processedData:s,axes:a,properties:o}=this,{marker:r,styler:l}=o,c=l?this.getStyle().marker:void 0,u=n?.crossFiltering===!0||AL(s.input.count,a[z.X].scale,r,c);r.isDirty()&&(i.clear(),i.cleanup());const d=u?e:[];return rr(this.processedData)?i.update(d,void 0,g=>As(g.xValue)):i.update(d)}updateDatumStyles(t){const{datumSelection:e,isHighlight:i}=t,{marker:n}=this.properties,s=this.ctx.highlightManager.getActiveHighlight();e.each((a,o)=>{if(!e.isGarbage(a)){const r=this.getHighlightState(s,t.isHighlight,o.datumIndex),l=this.getStyle(r),{stroke:c,strokeWidth:u,strokeOpacity:d}=l,g=this.makeItemStylerParams(this.dataModel,this.processedData,o.datumIndex,l.marker);o.style=this.getMarkerStyle(n,o,g,{isHighlight:i,highlightState:r},l.marker,{stroke:c,strokeWidth:u,strokeOpacity:d})}})}updateDatumNodes(t){const{contextNodeData:e}=this;if(!e)return;const{datumSelection:i,isHighlight:n}=t,s=this.getShapeFillBBox(),a=this.ctx.highlightManager.getActiveHighlight(),o=this.getDrawingMode(n,t.drawingMode);i.each((r,l)=>{const c=this.getHighlightState(a,n,l.datumIndex),u=l.style??e.styles[c];this.applyMarkerStyle(u,r,l.point,s,{selected:l.selected}),r.drawingMode=this.resolveMarkerDrawingModeForState(o,u)}),n||this.properties.marker.markClean()}updateLabelSelection(t){return t.labelSelection.update(this.isLabelEnabled()?t.labelData:[])}updateLabelNodes(t){const{isHighlight:e=!1}=t,i=this.ctx.highlightManager?.getActiveHighlight(),n=this.makeLabelFormatterParams();t.labelSelection.each((s,a)=>{const o=Rp(this,a,n,this.properties.label,e,i),{enabled:r,fontStyle:l,fontWeight:c,fontSize:u,fontFamily:d,color:g}=o;r&&a?.labelText?(s.fontStyle=l,s.fontWeight=c,s.fontSize=u,s.fontFamily=d,s.textAlign="center",s.textBaseline="bottom",s.text=a.labelText,s.x=a.x,s.y=a.y-10,s.fill=g,s.visible=!0,s.fillOpacity=this.getHighlightStyle(e,a.datumIndex).opacity??1,s.setBoxing(o)):s.visible=!1})}makeStylerParams(t){const{id:e}=this,{marker:i,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,stroke:r,strokeOpacity:l,strokeWidth:c,xKey:u,yKey:d}=this.properties,g=em(t??0);return{marker:{fill:i.fill,fillOpacity:i.fillOpacity,size:i.size,shape:i.shape,stroke:i.stroke,strokeOpacity:i.strokeOpacity,strokeWidth:i.strokeWidth,lineDash:i.lineDash,lineDashOffset:i.lineDashOffset},highlightState:g,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,seriesId:e,stroke:r,strokeOpacity:l,strokeWidth:c,xKey:u,yKey:d}}makeItemStylerParams(t,e,i,n){const{xKey:s,yKey:a}=this.properties,o=t.resolveKeysById(this,"xValue",e)[i],r=t.resolveColumnById(this,"yValueRaw",e)[i],l=t.getDomain(this,"xValue","key",e).domain,c=t.getDomain(this,this.yCumulativeKey(e),"value",e).domain,u=this.filterItemStylerFillParams(n.fill)??n.fill;return{...WT(o,r,s,a,l,c),xValue:o,yValue:r,...n,fill:u}}makeLabelFormatterParams(){const{xKey:t,xName:e,yKey:i,yName:n,legendItemName:s}=this.properties;return{xKey:t,xName:e,yKey:i,yName:n,legendItemName:s}}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a}=this,{xKey:o,xName:r,yKey:l,yName:c,tooltip:u,legendItemName:d}=a,g=a.allowNullKeys??!1,f=s[z.X],y=s[z.Y];if(!i||!n||!f||!y)return;const x=n.dataSources.get(this.id)?.data?.[t],S=i.resolveKeysById(this,"xValue",n)[t],D=i.resolveColumnById(this,"yValueRaw",n)[t];if(S===void 0&&!g)return;const A=this.getStyle(),I=this.makeItemStylerParams(i,n,t,A.marker),w=this.getMarkerStyle(this.properties.marker,{datumIndex:t,datum:x},I,{isHighlight:!1},A.marker);return this.formatTooltipWithContext(u,{heading:this.getAxisValueText(f,"tooltip",S,x,o,d,g),symbol:this.legendItemSymbol(),data:[{label:c,fallbackLabel:l,value:this.getAxisValueText(y,"tooltip",D,x,l,d),missing:dp(D)}]},{seriesId:e,datum:x,title:c,xKey:o,xName:r,yKey:l,yName:c,...w,...this.getModuleTooltipParams()})}legendItemSymbol(){const{fill:t,stroke:e,fillOpacity:i,strokeOpacity:n,strokeWidth:s,lineDash:a,marker:o}=this.getStyle(),r=!o.enabled||o.fill==null,l=r?t:o.fill;return{marker:{...this.getMarkerStyle(this.properties.marker,{},void 0,{isHighlight:!1,checkForHighlight:!1},{size:o.size,shape:o.shape,fill:l,fillOpacity:r?i:o.fillOpacity,stroke:o.stroke}),enabled:o.enabled||s<=0},line:{enabled:!0,stroke:e,strokeOpacity:n,strokeWidth:s,lineDash:a}}}getLegendData(t){if(t!=="category")return[];const{id:e,ctx:{legendManager:i},visible:n}=this,{yKey:s,yName:a,legendItemName:o,showInLegend:r}=this.properties;return[{legendType:t,id:e,itemId:s,legendItemName:o,seriesId:e,enabled:n&&i.getItemEnabled({seriesId:e,itemId:s}),label:{text:o??a??s},symbol:this.legendItemSymbol(),hideInLegend:!r}]}resetDatumAnimation(t){lA([t.datumSelection])}animateEmptyUpdateReady(t){const{datumSelection:e,labelSelection:i,contextData:n,paths:s}=t,{animationManager:a}=this.ctx;this.updateAreaPaths(s,n),IL(this,a,...s),Qn([e],nx),DL(this,a,{...this.getAnimationDrawingModes(),phase:"initial"},e),Wi(this,"labels",a,i)}animateReadyResize(t){const{contextData:e,paths:i}=t;this.updateAreaPaths(i,e),super.animateReadyResize(t)}animateWaitingUpdateReady(t){const{animationManager:e}=this.ctx,{datumSelection:i,labelSelection:n,contextData:s,paths:a,previousContextData:o}=t,[r,l]=a;if(s.visible===!1&&o?.visible===!1||r==null&&l==null)return;this.resetDatumAnimation(t),this.resetLabelAnimation(t);const c=()=>{this.resetPathAnimation(t),this.updateAreaPaths(a,s)},u=()=>{e.skipCurrentBatch(),c()};if(s==null||o==null){c(),ix(this,e,"added",this.getAnimationDrawingModes(),i),WN(this,"fill_path_properties",e,"add",r),WN(this,"stroke_path_properties",e,"add",l),Wi(this,"labels",e,n);return}if(s.crossFiltering!==o.crossFiltering){u();return}const d=Mit(s,o);if(d===void 0){u();return}else if(d.status==="no-op")return;ix(this,e,void 0,this.getAnimationDrawingModes(),i),dn(this.id,"fill_path_properties",e,[r],d.fill.pathProperties),EM(this.id,"fill_path_update",e,[r],d.fill.path),dn(this.id,"stroke_path_properties",e,[l],d.stroke.pathProperties),EM(this.id,"stroke_path_update",e,[l],d.stroke.path),Wi(this,"labels",e,n),this.ctx.animationManager.animate({id:this.id,groupId:"reset_after_animation",phase:"trailing",from:{},to:{},onComplete:()=>this.updateAreaPaths(a,s)})}isLabelEnabled(){return this.properties.label.enabled}nodeFactory(){return new wn}getStyle(t){const{styler:e,marker:i,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,stroke:r,strokeOpacity:l,strokeWidth:c}=this.properties,{size:u,shape:d,fill:g="transparent",fillOpacity:f}=i;let y={};if(e){const x=this.makeStylerParams(t),S=this.cachedCallWithContext(e,x)??{};y=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],S,{pick:!1})??{}}return y.marker??(y.marker={}),{fill:y.fill??n,fillOpacity:y.fillOpacity??s,lineDash:y.lineDash??a,lineDashOffset:y.lineDashOffset??o,stroke:y.stroke??r,strokeOpacity:y.strokeOpacity??l,strokeWidth:y.strokeWidth??c,marker:{enabled:y.marker.enabled??i.enabled,fill:y.marker.fill??g,fillOpacity:y.marker.fillOpacity??f,shape:y.marker.shape??d,size:y.marker.size??u,lineDash:y.marker.lineDash??i.lineDash??a,lineDashOffset:y.marker.lineDashOffset??i.lineDashOffset??o,stroke:y.marker.stroke??i.stroke??r,strokeOpacity:y.marker.strokeOpacity??i.strokeOpacity??l,strokeWidth:y.marker.strokeWidth??i.strokeWidth??c}}}getFormattedMarkerStyle(t){const e=this.getStyle(),i=this.makeItemStylerParams(this.dataModel,this.processedData,t.datumIndex,e.marker);return this.getMarkerStyle(this.properties.marker,t,i,{isHighlight:!0},void 0,e)}isPointInArea(t,e){let i;for(const n of this.backgroundGroup.children())if(n instanceof Tn){i=n;break}return i?.getBBox().containsPoint(t,e)?i.isPointInPath(t,e):!1}computeFocusBounds(t){return cA(this,t)}hasItemStylers(){return this.properties.styler!=null||this.properties.marker.itemStyler!=null||this.properties.label.itemStyler!=null}};zL.className="AreaSeries";zL.type="area";var ynt={series:{nodeClickRange:"nearest",fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Tl],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"},fillOpacity:.8,strokeOpacity:1,strokeWidth:{$isUserOption:["./stroke",2,0]},lineDash:[0],lineDashOffset:0,shadow:{enabled:!1,color:Dp,xOffset:3,yOffset:3,blur:5},interpolation:{type:"linear"},marker:{enabled:!1,shape:"circle",size:7,strokeWidth:{$isUserOption:["./stroke",1,0]},fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Sp],["pattern",Cs]]},stroke:{$palette:"stroke"}},label:{...Oe,enabled:!1,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"}},tooltip:{range:{$path:["/tooltip/range","nearest"]},position:{anchorTo:{$path:["/tooltip/position/anchorTo","node"]}}},highlight:fD,segmentation:mD}},UW={type:"series",name:"area",chartType:"cartesian",stackable:!0,version:oi,dependencies:[hr],options:sL,predictAxis:Zx,defaultAxes:{y:{type:ie.NUMBER,position:he.LEFT},x:{type:ie.CATEGORY,position:he.BOTTOM}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},themeTemplate:ynt,create:t=>new zL(t)},bnt=.001,BL=class extends On{constructor(){super(...arguments),this.direction="x",this.featherRatio=0}setStaticProperties(t,e,i,n,s,a,o,r,l,c){this.__direction=l??"x",this.__featherRatio=c??0,super.setStaticProperties(t,e,i,n,s,a,o,r)}get feathered(){return Math.abs(this.featherRatio)>bnt}isPointInPath(t,e){return this.feathered?this.getBBox().containsPoint(t,e):super.isPointInPath(t,e)}updatePath(){if(!this.feathered){super.updatePath();return}const{path:t,borderPath:e,__direction:i,__featherRatio:n,__x:s,__y:a,__width:o,__height:r}=this;if(t.clear(),e.clear(),i==="x"){const l=Math.abs(n)*o;n>0?(t.moveTo(s,a),t.lineTo(s+o-l,a),t.lineTo(s+o,a+r/2),t.lineTo(s+o-l,a+r),t.lineTo(s,a+r),t.closePath()):(t.moveTo(s+l,a),t.lineTo(s+o,a),t.lineTo(s+o,a+r),t.lineTo(s+l,a+r),t.lineTo(s,a+r/2),t.closePath())}else{const l=Math.abs(n)*r;n>0?(t.moveTo(s,a+l),t.lineTo(s+o/2,a),t.lineTo(s+o,a+l),t.lineTo(s+o,a+r),t.lineTo(s,a+r),t.closePath()):(t.moveTo(s,a),t.lineTo(s+o,a),t.lineTo(s+o,a+r-l),t.lineTo(s+o/2,a+r),t.lineTo(s,a+r-l),t.closePath())}}renderStroke(t){if(!this.feathered){super.renderStroke(t);return}const{__stroke:e,__strokeWidth:i,__lineDash:n,__lineDashOffset:s,__lineCap:a,__lineJoin:o,path:r}=this;if(e&&i){const{globalAlpha:l}=t;this.applyStrokeAndAlpha(t),t.lineWidth=i,n&&t.setLineDash(n),s&&(t.lineDashOffset=s),a&&(t.lineCap=a),o&&(t.lineJoin=o),t.stroke(r.getPath2D()),t.globalAlpha=l}}};T([fe()],BL.prototype,"direction",2);T([fe()],BL.prototype,"featherRatio",2);function VL(t,e,i,n,s){if(e.lengthw.maxRange===d);let{indexData:f,valueData:y,negativeIndexData:x,negativeValueData:S}=Fc(e,n,i??n,a,o,d,{split:!0,xNeedsValueOf:l,yNeedsValueOf:c,reuseIndexData:g?.positiveIndexData,reuseValueData:g?.positiveValueData,reuseNegativeIndexData:g?.negativeIndexData,reuseNegativeValueData:g?.negativeValueData});if(!x||!S)throw new Error("Negative aggregation data missing in split mode");let D=ul(d,f,g?.positiveIndices),A=ul(d,x,g?.negativeIndices);const I=[{maxRange:d,positiveIndices:D,positiveIndexData:f,positiveValueData:y,negativeIndices:A,negativeIndexData:x,negativeValueData:S}];for(;d>64;){const w=d,N=Math.trunc(w/2),O=u?.find(P=>P.maxRange===N),L=ap(f,y,w,{reuseIndexData:O?.positiveIndexData,reuseValueData:O?.positiveValueData}),R=ap(x,S,w,{reuseIndexData:O?.negativeIndexData,reuseValueData:O?.negativeValueData});d=L.maxRange,f=L.indexData,y=L.valueData,D=L.midpointData??ul(d,f,O?.positiveIndices),x=R.indexData,S=R.valueData,A=R.midpointData??ul(d,x,O?.negativeIndices),I.push({maxRange:d,positiveIndices:D,positiveIndexData:f,positiveValueData:y,negativeIndices:A,negativeIndexData:x,negativeValueData:S})}return I.reverse(),I}function xnt(t,e,i,n,s){if(e.lengthN.maxRange===f),{indexData:x,valueData:S,negativeIndexData:D,negativeValueData:A}=Fc(e,n,i??n,a,o,f,{split:!0,xNeedsValueOf:l,yNeedsValueOf:c,reuseIndexData:y?.positiveIndexData,reuseValueData:y?.positiveValueData,reuseNegativeIndexData:y?.negativeIndexData,reuseNegativeValueData:y?.negativeValueData});if(!D||!A)throw new Error("Negative aggregation data missing in split mode");const I={maxRange:f,positiveIndices:ul(f,x,y?.positiveIndices),positiveIndexData:x,positiveValueData:S,negativeIndices:ul(f,D,y?.negativeIndices),negativeIndexData:D,negativeValueData:A};function w(){return VL([a,o],e,i,n,{smallestKeyInterval:r,xNeedsValueOf:l,yNeedsValueOf:c,existingFilters:d})?.filter(O=>O.maxRange!==f)??[]}return{immediate:[I],computeRemaining:w}}function vnt(t,e,i,n,s,a,o,r){const[l,c]=gn(t,s);return VL([l,c],e,i,n,{smallestKeyInterval:a,xNeedsValueOf:o,yNeedsValueOf:r})}var Snt=Pu(vnt);function Mnt(t,e,i,n,s){const a=e.resolveKeysById(n,"xValue",i),o=e.hasColumnById(n,"yValue-start"),r=o?e.resolveColumnById(n,"yValue-start",i):void 0,l=o?e.resolveColumnById(n,"yValue-end",i):e.resolveColumnById(n,"yValue-raw",i),c=e.getDomain(n,"xValue","key",i),u=e.resolveColumnNeedsValueOf(n,"xValue",i),d=e.resolveColumnNeedsValueOf(n,o?"yValue-end":"yValue-raw",i);if(s){const[g,f]=gn(t,c);return VL([g,f],a,r,l,{smallestKeyInterval:i.reduced?.smallestKeyInterval,xNeedsValueOf:u,yNeedsValueOf:d,existingFilters:s})}return Snt(t,a,r,l,c,i.reduced?.smallestKeyInterval,u,d)}function Dnt(t,e,i,n,s,a){const o=e.resolveKeysById(n,"xValue",i),r=e.hasColumnById(n,"yValue-start"),l=r?e.resolveColumnById(n,"yValue-start",i):void 0,c=r?e.resolveColumnById(n,"yValue-end",i):e.resolveColumnById(n,"yValue-raw",i),u=e.getDomain(n,"xValue","key",i),d=e.resolveColumnNeedsValueOf(n,"xValue",i),g=e.resolveColumnNeedsValueOf(n,r?"yValue-end":"yValue-raw",i),[f,y]=gn(t,u);return xnt([f,y],o,l,c,{smallestKeyInterval:i.reduced?.smallestKeyInterval,xNeedsValueOf:d,yNeedsValueOf:g,targetRange:s,existingFilters:a})}var _L=class extends Do{constructor(){super(...arguments),this.placement="inside-center",this.spacing=0}};T([b],_L.prototype,"placement",2);T([b],_L.prototype,"spacing",2);var Vi=class extends Jx{constructor(){super(...arguments),this.fill="#c16068",this.fillOpacity=1,this.stroke="#874349",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.crisp=void 0,this.shadow=new zl,this.label=new _L,this.tooltip=zp(),this.sparklineMode=!1}};T([b],Vi.prototype,"xKey",2);T([b],Vi.prototype,"xName",2);T([b],Vi.prototype,"yKey",2);T([b],Vi.prototype,"yName",2);T([b],Vi.prototype,"yFilterKey",2);T([b],Vi.prototype,"stackGroup",2);T([b],Vi.prototype,"normalizedTo",2);T([b],Vi.prototype,"fill",2);T([b],Vi.prototype,"fillOpacity",2);T([b],Vi.prototype,"stroke",2);T([b],Vi.prototype,"strokeWidth",2);T([b],Vi.prototype,"strokeOpacity",2);T([b],Vi.prototype,"lineDash",2);T([b],Vi.prototype,"lineDashOffset",2);T([b],Vi.prototype,"cornerRadius",2);T([b],Vi.prototype,"crisp",2);T([b],Vi.prototype,"styler",2);T([b],Vi.prototype,"itemStyler",2);T([b],Vi.prototype,"simpleItemStyler",2);T([b],Vi.prototype,"shadow",2);T([b],Vi.prototype,"label",2);T([b],Vi.prototype,"tooltip",2);T([b],Vi.prototype,"sparklineMode",2);var FL=class extends oW{constructor(t){super({moduleCtx:t,propertyKeys:hm,propertyNames:um,categoryKey:"xValue",pickModes:[2,1,0],pathsPerSeries:[],datumSelectionGarbageCollection:!1,animationAlwaysUpdateSelections:!0,animationResetFns:{datum:ex,label:Pp}}),this.properties=new Vi,this.connectsToYAxis=!0,this.aggregationManager=new dA,this.phantomGroup=this.contentGroup.appendChild(new ee({name:"phantom",zIndex:-1})),this.phantomSelection=pn.select(this.phantomGroup,()=>this.nodeFactory(),!1),this.phantomHighlightGroup=this.highlightGroup.appendChild(new ee({name:`${this.internalId}-highlight-node`})),this.phantomHighlightSelection=pn.select(this.phantomHighlightGroup,()=>this.nodeFactory(),!1),this.phantomGroup.opacity=.2,this.phantomHighlightGroup.opacity=.2}get pickModeAxis(){return this.properties.sparklineMode?"main":void 0}async processData(t){if(!this.data)return;const{xKey:e,yKey:i,yFilterKey:n,normalizedTo:s}=this.properties,{seriesGrouping:{groupIndex:a=this.id}={},data:o}=this,l=(this.seriesGrouping?.stackCount??0)>1||s!=null,c=l,u=!this.ctx.animationManager.isSkipped(),d=this.getCategoryAxis()?.scale,g=this.getValueAxis()?.scale,{isContinuousX:f,xScaleType:y,yScaleType:x}=this.getScaleInformation({xScale:d,yScale:g}),S=this.visible?{}:{forceValue:0},D=this.properties.allowNullKeys??!1,A=[uu(e,y,{id:"xValue",allowNullKey:D}),Ci(i,x,{id:"yValue-raw",invalidValue:null,...S})],I=[];if(l){const O=`bar-stack-${a}-yValues`,L=`${O}-trailing`;I.push(O,L),A.push(...Wd(i,"normal",{id:"yValue-end",rangeId:"yValue-range",invalidValue:null,missingValue:0,groupId:O,separateNegative:!0,...S},x),...Wd(i,"trailing",{id:"yValue-start",invalidValue:null,missingValue:0,groupId:L,separateNegative:!0,...S},x))}if(n!=null&&(A.push(Ci(n,x,{id:"yFilterValue-raw",invalidValue:null,...S})),l)){const O=`bar-stack-${a}-yFilterValues`,L=`${O}-trailing`;I.push(O,L),A.push(...Wd(n,"normal",{id:"yFilterValue-end",rangeId:"yFilterValue-range",invalidValue:null,missingValue:0,groupId:O,separateNegative:!0,...S},x),...Wd(n,"trailing",{id:"yFilterValue-start",invalidValue:null,missingValue:0,groupId:L,separateNegative:!0,...S},x),T7(this.id,"yValue-raw","yFilterValue-raw"))}f&&A.push(KG,YG),Ae(s)&&A.push(jD(I,Math.abs(s))),this.needsDataModelDiff()&&this.processedData&&A.push(GD(this.id,this.processedData)),(u||!c)&&A.push(Hx());const{dataModel:w,processedData:N}=await this.requestDataModel(t,o,{props:A,groupByKeys:c,groupByData:!c});this.aggregateData(w,N),this.smallestDataInterval=N.reduced?.smallestKeyInterval,this.largestDataInterval=N.reduced?.largestKeyInterval,this.animationState.transition("updateData")}yCumulativeKey(t){return t.hasColumnById(this,"yValue-end")?"yValue-end":"yValue-raw"}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(i==null||e==null)return{domain:[]};if(t===this.getCategoryDirection()){const a=i.resolveProcessedDataDefById(this,"xValue"),o=i.getDomain(this,"xValue","key",e);return a?.def.type==="key"&&a.def.valueType==="category"?o:{domain:this.padBandExtent(o.domain)}}let n;if(e.reduced?.filteredValueExceedUnfiltered===!0)n=this.domainForClippedRange(t,["yFilterValue-end"],"xValue");else{const a=this.yCumulativeKey(i);n=this.domainForClippedRange(t,[a],"xValue");const o=i.hasColumnById(this,"yFilterValue-raw")?i.getDomain(this,"yFilterValue-raw","value",e).domain:void 0;o!=null&&(n=[Math.min(n[0],o[0]),Math.max(n[1],o[1])])}const s=this.getValueAxis();if(s instanceof Ao&&!(s instanceof fm)){const a=Number.isFinite(n[1]-n[0])?[Math.min(0,n[0]),Math.max(0,n[1])]:[];return{domain:_a(a)}}else return{domain:_a(n)}}getSeriesRange(t,e){if((this.properties.direction==="horizontal"?z.X:z.Y)!==t)return[];const n=this.yCumulativeKey(this.dataModel),[s,a]=this.domainForVisibleRange(z.Y,[n],"xValue",e);return[Math.min(s,0),Math.max(a,0)]}getZoomRangeFittingItems(t,e,i){const n=this.yCumulativeKey(this.dataModel);return this.zoomFittingVisibleItems("xValue",[n],t,e,i)}getVisibleItems(t,e,i){const n=this.yCumulativeKey(this.dataModel);return this.countVisibleItems("xValue",[n],t,e,i)}aggregateData(t,e){if(this.aggregationManager.markStale(e.input.count),rr(e))return;const i=this.axes[z.X];if(i==null)return;const n=this.estimateTargetRange();this.aggregationManager.aggregate({computePartial:a=>Dnt(i.scale.type,t,e,this,n,a),computeFull:a=>Mnt(i.scale.type,t,e,this,a),targetRange:n});const s=this.aggregationManager.filters;s&&s.length>0&&Vr.record(`${this.type}:aggregation`,s.map(a=>a.maxRange))}estimateTargetRange(){const t=this.axes[z.X];if(t?.scale?.range){const[e,i]=t.scale.range;return Math.abs(i-e)}return this.ctx.scene?.canvas?.width??800}createNodeDatumContext(t,e){const{dataModel:i,processedData:n}=this;if(!i||!n)return;const s=n.dataSources?.get(this.id);if(s==null)return;const a=t.scale,o=e.scale,r=Math.abs(a.range[1]-a.range[0]);this.aggregationManager.ensureLevelForRange(r);const l=this.aggregationManager.getFilterForRange(r),c=n.reduced?.filteredValueExceedUnfiltered??!1,u=i.hasColumnById(this,"yValue-start"),{label:d}=this.properties,g=this.canIncrementallyUpdateNodes(l!=null),{groupOffset:f,barOffset:y,barWidth:x}=this.getBarDimensions();let S,D,A;if(c)S=i.resolveColumnById(this,"yFilterValue-start",n),D=i.resolveColumnById(this,"yFilterValue-end",n),A=void 0;else{const I=i.hasColumnById(this,"yFilterValue-raw");S=u?i.resolveColumnById(this,"yValue-start",n):void 0,D=u?i.resolveColumnById(this,"yValue-end",n):void 0,A=I?i.resolveColumnById(this,"yFilterValue-raw",n):void 0}return{dataSource:s,rawData:s.data,xValues:i.resolveKeysById(this,"xValue",n),yRawValues:i.resolveColumnById(this,"yValue-raw",n),yStartValues:S,yEndValues:D,yFilterValues:A,xScale:a,yScale:o,xAxis:t,yAxis:e,groupOffset:f,barOffset:y,barWidth:x,range:r,yReversed:e.isReversed(),bboxBottom:o.convert(0),labelSpacing:d.spacing+(typeof d.padding=="number"?d.padding:0),crisp:l==null&&(this.properties.crisp??yW(t?.scale,t?.visibleRange,this.smallestDataInterval,this.largestDataInterval)),isStacked:u,filteredValueExceedUnfiltered:c,animationEnabled:!this.ctx.animationManager.isSkipped(),dataAggregationFilter:l,canIncrementallyUpdate:g,phantomNodes:g?this.contextNodeData.phantomNodeData??[]:[],nodes:g?this.contextNodeData.nodeData:[],labels:g?this.contextNodeData.labelData:[],nodeIndex:0,phantomIndex:0,barAlongX:this.getBarDirection()===z.X,shouldFlipXY:this.shouldFlipXY(),xKey:this.properties.xKey,yKey:this.properties.yKey,xName:this.properties.xName,yName:this.properties.yName,legendItemName:this.properties.legendItemName,label:d,yDomain:this.getSeriesDomain(z.Y).domain}}computeXPosition(t,e){const i=t.xScale.convert(t.xValues[e]);return Number.isFinite(i)?i+t.groupOffset+t.barOffset+this.getDatumOffset(e):Number.NaN}prepareNodeDatumState(t,e,i,n,s){if(!Number.isFinite(s))return;const a=t.xValues[i];if(a===void 0&&!this.properties.allowNullKeys)return;const o=t.dataSource?.data[i],r=t.yRawValues[i],l=t.yFilterValues==null?void 0:Number(t.yFilterValues[i]);if(l!=null&&!Number.isFinite(l))return;const c=t.label.enabled&&r!=null?this.getLabelText(l??r,o,t.yKey,"y",t.yDomain,t.label,{datum:o,value:l??r,xKey:t.xKey,yKey:t.yKey,xName:t.xName,yName:t.yName,legendItemName:t.legendItemName}):void 0,u=r>=0&&!Object.is(r,-0);return e.datum=o,e.xValue=a,e.yRawValue=r,e.yFilterValue=l,e.labelText=c,e.inset=l!=null&&l>r,e.isPositive=u,e.precomputedBottomY=l==null?void 0:t.yScale.convert(n),e.precomputedIsUpward=l==null?void 0:u!==t.yReversed,e}createSkeletonNodeDatum(t,e,i){const n=e.nodeDatumScratch;return{series:this,datum:n.datum,datumIndex:e.datumIndex,cumulativeValue:0,phantom:i,xValue:n.xValue??"",yValue:0,yKey:t.yKey,xKey:t.xKey,capDefaults:{lengthRatioMultiplier:0,lengthMax:0},x:0,y:0,width:0,height:0,midPoint:{x:0,y:0},opacity:e.opacity,featherRatio:e.featherRatio,topLeftCornerRadius:!1,topRightCornerRadius:!1,bottomRightCornerRadius:!1,bottomLeftCornerRadius:!1,clipBBox:void 0,crisp:t.crisp,label:void 0,missing:!1,focusable:!i}}createNodeDatum(t,e){const i=this.prepareNodeDatumState(t,e.nodeDatumScratch,e.datumIndex,e.yStart,e.yEnd);if(!i)return{nodeData:void 0,phantomNodeData:void 0};const n=this.createSkeletonNodeDatum(t,e,!1);this.updateNodeDatum(t,n,e,i);let s;return i.yFilterValue!=null&&(s=this.createSkeletonNodeDatum(t,e,!0),this.updateNodeDatum(t,s,e)),{nodeData:n,phantomNodeData:s}}updateNodeDatum(t,e,i,n){if(n??(n=this.prepareNodeDatumState(t,i.nodeDatumScratch,i.datumIndex,i.yStart,i.yEnd)),!n)return;const s=e,a=e.phantom,o=i.yStart,r=a?n.yFilterValue:n.yFilterValue??n.yRawValue,l=a?n.yFilterValue:n.yFilterValue??i.yEnd,c=a?void 0:n.labelText;let u;a||n.yFilterValue==null?u=i.yEnd:u=i.yStart+n.yFilterValue;let d;a?d=i.yRange:d=Math.max(i.yStart+(n.yFilterValue??-1/0),i.yRange);let g;a?g=void 0:n.inset?g=.6:g=void 0;const f=n.precomputedIsUpward??n.isPositive!==t.yReversed,y=t.yScale.convert(u),x=n.precomputedBottomY??t.yScale.convert(o),S=t.yScale.convert(d),D=i.width*.5*(1-(g??1)),A=t.barAlongX?Math.min(y,x):i.x+D,I=t.barAlongX?i.x+D:Math.min(y,x),w=t.barAlongX?Math.abs(x-y):i.width*(g??1),N=t.barAlongX?i.width*(g??1):Math.abs(x-y),O=t.barAlongX?Math.min(t.bboxBottom,S):i.x+D,L=t.barAlongX?i.x+D:Math.min(t.bboxBottom,S),R=t.barAlongX?Math.abs(t.bboxBottom-S):i.width*(g??1),P=t.barAlongX?i.width*(g??1):Math.abs(t.bboxBottom-S);s.datum=n.datum,s.datumIndex=i.datumIndex,s.cumulativeValue=l,s.xValue=n.xValue,s.yValue=r,s.x=O,s.y=L,s.width=R,s.height=P;const B=s.midPoint;B.x=A+w/2,B.y=I+N/2;const F=t.shouldFlipXY?N:w;s.capDefaults.lengthRatioMultiplier=F,s.capDefaults.lengthMax=F,s.opacity=i.opacity,s.featherRatio=i.featherRatio,s.topLeftCornerRadius=t.barAlongX!==f,s.topRightCornerRadius=f,s.bottomRightCornerRadius=t.barAlongX===f,s.bottomLeftCornerRadius=!f;const H=s.clipBBox;if(H?(H.x=A,H.y=I,H.width=w,H.height=N):s.clipBBox=new Tt(A,I,w,N),s.crisp=t.crisp,c==null)s.label=void 0;else{const $=QU({isUpward:f,isVertical:!t.barAlongX,placement:t.label.placement,spacing:t.labelSpacing,rect:{x:A,y:I,width:w,height:N}}),Y=s.label;Y?(Y.text=c,Y.x=$.x,Y.y=$.y,Y.textAlign=$.textAlign,Y.textBaseline=$.textBaseline):s.label={text:c,...$}}s.missing=dp(r)}createNodeDataWithAggregation(t,e,i){const n=t.yReversed?-1:1;for(let s=0;s<2;s+=1){const a=s===0,o=a?t.dataAggregationFilter.positiveIndices:t.dataAggregationFilter.negativeIndices,r=a?t.dataAggregationFilter.positiveIndexData:t.dataAggregationFilter.negativeIndexData,l=a?Na:Ta,c=a?Ta:Na,u=this.visibleRangeIndices("xValue",t.xAxis.range,o),d=u[0],g=u[1];for(let f=d;ft.range)continue;const N=Math.abs(S-x)+1,O=Rr.is(t.xScale)?Math.min(t.xScale.bandwidth*Math.max(N-1,1)/(t.xScale.step*N),1):1;if(i.datumIndex=A,i.x=I,i.width=w,i.opacity=O,t.isStacked)i.yStart=Number(t.yStartValues[D]),i.yEnd=Number(t.yEndValues[A]),i.featherRatio=0;else{const L=Number(t.yRawValues[A]),R=Number(t.yRawValues[D]);i.yStart=0,i.yEnd=L,i.featherRatio=(a?1:-1)*n*(1-R/L)}i.yRange=i.yEnd,this.upsertNodeDatum(t,i)}}}createNodeDataGrouped(t,e,i){const n=this.processedData,s=n.invalidData?.get(this.id),a=t.barWidth;let o;t.filteredValueExceedUnfiltered?o=this.dataModel.resolveProcessedDataIndexById(this,"yFilterValue-range"):t.isStacked?o=this.dataModel.resolveProcessedDataIndexById(this,"yValue-range"):o=-1;const r=n.columnScopes.findIndex(g=>g.has(this.id)),l=n.groups,c=Qb(1,l.length,t.xAxis.range,g=>{const y=l[g].keys[0];return this.xCoordinateRange(y)}),u=c[0],d=c[1];for(let g=u;g=0&&!Object.is(I,-0),N=t.isStacked?Number(t.yStartValues?.[D]):0,O=t.isStacked?Number(t.yEndValues?.[D]):I;let L=O;t.isStacked&&(L=y[o][w?1:0]),i.datumIndex=D,i.x=A,i.width=a,i.yStart=N,i.yEnd=O,i.yRange=L,i.featherRatio=0,i.opacity=1,this.upsertNodeDatum(t,i)}}}createNodeDataSimple(t,e,i){const n=this.processedData.invalidData?.get(this.id),s=t.barWidth,a=this.visibleRangeIndices("xValue",t.xAxis.range);let o=a[0],r=a[1];this.processedData.input.count<1e3&&(o=0,r=this.processedData.input.count);for(let l=o;l=t.labels.length&&t.labels.push(a);else{const r=this.createNodeDatum(t,e);r.nodeData&&(t.nodes.push(r.nodeData),t.labels.push(r.nodeData)),o=r.phantomNodeData}if(t.nodeIndex++,!n)return{nodeData:t.nodes[t.nodeIndex]};if(s)o=t.phantomNodes[t.phantomIndex],this.updateNodeDatum(t,o,e);else if(o)t.phantomNodes.push(o);else{const r=this.createNodeDatum(t,e);r.phantomNodeData&&t.phantomNodes.push(r.phantomNodeData)}return t.phantomIndex++,{nodeData:a,phantomNodeData:o}}populateNodeData(t){const e=n=>this.computeXPosition(t,n),i={nodeDatumScratch:{datum:void 0,xValue:void 0,yRawValue:0,yFilterValue:void 0,labelText:void 0,inset:!1,isPositive:!1,precomputedBottomY:void 0,precomputedIsUpward:void 0},datumIndex:0,x:0,width:0,yStart:0,yEnd:0,yRange:0,featherRatio:0,opacity:1};t.dataAggregationFilter!=null?this.createNodeDataWithAggregation(t,e,i):this.processedData.type==="grouped"?this.createNodeDataGrouped(t,e,i):this.createNodeDataSimple(t,e,i)}initializeResult(t){return{itemId:this.properties.yKey,nodeData:t.nodes,phantomNodeData:t.phantomNodes,labelData:t.labels,scales:this.calculateScaling(),visible:this.visible||t.animationEnabled,groupScale:this.getScaling(this.ctx.seriesStateManager.getGroupScale(this)),styles:YT(this.getItemStyle.bind(this)),segments:void 0}}finalizeNodeData(t){t.canIncrementallyUpdate&&(this.trimIncrementalNodeArray(t.nodes,t.nodeIndex),this.trimIncrementalNodeArray(t.phantomNodes,t.phantomIndex),this.trimIncrementalNodeArray(t.labels,t.nodes.length))}assembleResult(t,e){return e.segments=nA(this.properties.segmentation,t.xAxis,t.yAxis,this.chart.seriesRect,this.ctx.scene),e}nodeFactory(){return new BL}updateSeriesSelections(){super.updateSeriesSelections(),this.phantomSelection=this.updateDatumSelection({nodeData:this.contextNodeData?.phantomNodeData??[],datumSelection:this.phantomSelection})}updateHighlightSelectionItem(t){const e=super.updateHighlightSelectionItem(t),i=this.ctx.highlightManager?.getActiveHighlight(),s=this.isSeriesHighlighted(i)&&i?.datum?i:void 0;return this.phantomHighlightSelection=this.updateDatumSelection({nodeData:s?this.getHighlightData(this.contextNodeData?.phantomNodeData??[],s)??[]:[],datumSelection:this.phantomHighlightSelection}),e}updateNodes(t,e){super.updateNodes(t,e),this.updateDatumNodes({datumSelection:this.phantomSelection,isHighlight:!1,drawingMode:"overlay"}),this.updateDatumNodes({datumSelection:this.phantomHighlightSelection,isHighlight:!0,drawingMode:"overlay"})}getHighlightData(t,e){const i=t.find(n=>n.datum===e.datum);return i==null?void 0:[{...i}]}updateDatumSelection(t){return rr(this.processedData)?t.datumSelection.update(t.nodeData,void 0,this.getDatumId.bind(this)):t.datumSelection.update(t.nodeData)}makeStylerParams(t){const{id:e}=this,{cornerRadius:i,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,stackGroup:r,stroke:l,strokeOpacity:c,strokeWidth:u,xKey:d,yKey:g}=this.properties,f=em(t??0);return{cornerRadius:i,fill:n,fillOpacity:s,highlightState:f,lineDash:a,lineDashOffset:o,seriesId:e,stackGroup:r,stroke:l,strokeOpacity:c,strokeWidth:u,xKey:d,yKey:g}}makeItemStylerParams(t,e,i,n,s,a){const{id:o}=this,{xKey:r,yKey:l,stackGroup:c}=this.properties,u=e.dataSources.get(o)?.data?.[i],d=t.resolveColumnById(this,"yValue-raw",e)[i],g=t.getDomain(this,"xValue","key",e).domain,f=t.getDomain(this,this.yCumulativeKey(t),"value",e).domain,y=this.ctx.highlightManager?.getActiveHighlight(),x=this.getHighlightStateString(y,s,i),S=this.filterItemStylerFillParams(a.fill)??a.fill;return{seriesId:o,...WT(n,d,r,l,g,f),datum:u,xValue:n,yValue:d,stackGroup:c,highlightState:x,...a,fill:S}}getStyle(t,e){const{cornerRadius:i,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,stroke:r,strokeOpacity:l,strokeWidth:c,styler:u}=this.properties;let d={};if(!t&&u){const g=this.makeStylerParams(e);d=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.cachedCallWithContext(u,g)??{},{pick:!1})??{}}return{cornerRadius:d.cornerRadius??i,fill:d.fill??n,fillOpacity:d.fillOpacity??s,lineDash:d.lineDash??a,lineDashOffset:d.lineDashOffset??o,opacity:1,stroke:d.stroke??r,strokeOpacity:d.strokeOpacity??l,strokeWidth:d.strokeWidth??c}}getItemStyle(t,e,i){const{properties:n,dataModel:s,processedData:a}=this,{itemStyler:o,simpleItemStyler:r}=n,l=this.getHighlightStyle(e,t,i);if(r&&a!=null&&t!=null){const u=a.dataSources.get(this.id)?.data?.[t],d=r(u);return Et(d,l,this.getStyle(!1,i))}let c=Et(l,this.getStyle(t===void 0,i));if(o&&s!=null&&a!=null&&t!=null){const u=s.resolveKeysById(this,"xValue",a)[t],d=this.cachedDatumCallback(As(this.getDatumId({xValue:u,phantom:!1}),e?"highlight":"node"),()=>{const g=this.makeItemStylerParams(s,a,t,u,e,c);return this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.callWithContext(o,g))});d&&(c=Et(d,c))}return c}updateDatumStyles(t){const e=this.ctx.highlightManager.getActiveHighlight(),i=this;function n(s,a){if(!t.datumSelection.isGarbage(s)){const o=i.getHighlightState(e,t.isHighlight,a.datumIndex);a.style=i.getItemStyle(a.datumIndex,t.isHighlight,o)}}t.datumSelection.each(n)}updateDatumNodes(t){const{contextNodeData:e}=this;if(!e)return;const i=this.ctx.highlightManager.getActiveHighlight(),{shadow:n}=this.properties,s=this.getCategoryDirection()===z.X,a=this.getShapeFillBBox(),o=this.getBarDirection(),{drawingMode:r,isHighlight:l}=t,c=this,u=e.styles;function d(g,f){const y=f.style??u[c.getHighlightState(i,l,f.datumIndex)];g.setStyleProperties(y,a);const x=y.cornerRadius??0,S=s?(f.clipBBox?.width??f.width)>0:(f.clipBBox?.height??f.height)>0;g.setStaticProperties(r,f.topLeftCornerRadius?x:0,f.topRightCornerRadius?x:0,f.bottomRightCornerRadius?x:0,f.bottomLeftCornerRadius?x:0,S,f.crisp,n,o,f.featherRatio)}t.datumSelection.each(d)}updateLabelSelection(t){const e=this.isLabelEnabled()?t.labelData:[];return t.labelSelection.update(e,i=>{i.pointerEvents=1})}updateLabelNodes(t){const{isHighlight:e=!1}=t,i={xKey:this.properties.xKey,xName:this.properties.xName??this.properties.xKey,yKey:this.properties.yKey,yName:this.properties.yName??this.properties.yKey,legendItemName:this.properties.legendItemName??this.properties.xName??this.properties.xKey},n=this.ctx.highlightManager?.getActiveHighlight();t.labelSelection.each((s,a)=>{s.fillOpacity=this.getHighlightStyle(e,a?.datumIndex).opacity??1,qU(this,s,i,this.properties.label,a.label,e,n)})}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s}=this,{xKey:a,xName:o,yKey:r,yName:l,legendItemName:c,stackGroup:u,tooltip:d}=s,g=s.allowNullKeys??!1,f=this.getCategoryAxis(),y=this.getValueAxis();if(!i||!n||!f||!y)return;const x=n.dataSources.get(this.id)?.data?.[t],S=i.resolveKeysById(this,"xValue",n)[t],D=i.resolveColumnById(this,"yValue-raw",n)[t];if(S===void 0&&!g)return;const A=this.getItemStyle(t,!1);return this.formatTooltipWithContext(d,{heading:this.getAxisValueText(f,"tooltip",S,x,a,c,g),symbol:this.legendItemSymbol(),data:[{label:l,fallbackLabel:r,value:this.getAxisValueText(y,"tooltip",D,x,r,c),missing:dp(D)}]},{seriesId:e,datum:x,title:l,xKey:a,xName:o,yKey:r,yName:l,legendItemName:c,stackGroup:u,...A,...this.getModuleTooltipParams()})}legendItemSymbol(){const{fill:t,stroke:e,strokeWidth:i,fillOpacity:n,strokeOpacity:s,lineDash:a,lineDashOffset:o}=this.getStyle(!1,0);return{marker:{fill:t??"rgba(0, 0, 0, 0)",stroke:e??"rgba(0, 0, 0, 0)",fillOpacity:n,strokeOpacity:s,strokeWidth:i,lineDash:a,lineDashOffset:o}}}getLegendData(t){const{showInLegend:e}=this.properties;if(t!=="category")return[];const{id:i,ctx:{legendManager:n},visible:s}=this,{yKey:a,yName:o,legendItemName:r}=this.properties;return[{legendType:"category",id:i,itemId:a,seriesId:i,enabled:s&&n.getItemEnabled({seriesId:i,itemId:a}),label:{text:r??o??a},symbol:this.legendItemSymbol(),legendItemName:r,hideInLegend:!e}]}resetDatumAnimation(t){LM([t.datumSelection,this.phantomSelection])}animateReadyHighlight(t){LM([t,this.phantomHighlightSelection])}animateEmptyUpdateReady({datumSelection:t,labelSelection:e,annotationSelections:i}){const{phantomSelection:n}=this,s=tx(Jb(this.isVertical(),this.axes,"normal"),"unknown");dn(this.id,"nodes",this.ctx.animationManager,[t,n],s),Wi(this,"labels",this.ctx.animationManager,e),Wi(this,"annotations",this.ctx.animationManager,...i)}animateWaitingUpdateReady(t){const{phantomSelection:e}=this,{datumSelection:i,labelSelection:n,annotationSelections:s,contextData:a,previousContextData:o}=t;this.ctx.animationManager.stopByAnimationGroupId(this.id);const r=vW(this.id,i,this.getDatumId.bind(this),t.contextData,o,this.processedData,this.processedDataUpdated),l=o==null?"fade":"normal",c=tx(Jb(this.isVertical(),this.axes,l),"added");dn(this.id,"nodes",this.ctx.animationManager,[i,e],c,(u,d)=>this.getDatumId(d),r),(!r||r?.changed||!yl(a.groupScale,o?.groupScale))&&(Wi(this,"labels",this.ctx.animationManager,n),Wi(this,"annotations",this.ctx.animationManager,...s))}getDatumId(t){return As(t.xValue,t.phantom)}isLabelEnabled(){return this.properties.label.enabled}computeFocusBounds({datumIndex:t}){const e=this.contextNodeData?.nodeData[t].clipBBox;return SL(this,e)}hasItemStylers(){return this.properties.styler!=null||this.properties.itemStyler!=null||this.properties.simpleItemStyler!=null||this.properties.label.itemStyler!=null}};FL.className="BarSeries";FL.type="bar";var Ant={series:{direction:"vertical",fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Tl],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"},fillOpacity:1,strokeWidth:{$isUserOption:["./stroke",2,0]},lineDash:[0],lineDashOffset:0,label:{...Oe,padding:{$isUserOption:["./spacing",0,8]},enabled:!1,fontWeight:{$ref:"fontWeight"},fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},color:{$if:[{$or:[{$eq:[{$path:"./placement"},"outside-start"]},{$eq:[{$path:"./placement"},"outside-end"]}]},{$ref:"textColor"},{$ref:"chartBackgroundColor"}]},placement:"inside-center"},shadow:{enabled:!1,color:Dp,xOffset:3,yOffset:3,blur:5},highlight:Bc,segmentation:mD}},WW={type:"series",name:"bar",chartType:"cartesian",stackable:!0,groupable:!0,version:oi,dependencies:[hr],options:om,predictAxis:Zx,defaultAxes:Y4,axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},axisKeysFlipped:{[z.X]:"yKeyAxis",[z.Y]:"xKeyAxis"},themeTemplate:Ant,create:t=>new FL(t)},Z0=3,Int=5,NV=.05;function knt(t,e,i){const{xValues:n,yValues:s,xDomain:a,yDomain:o,xNeedsValueOf:r,yNeedsValueOf:l}=t,{x0:c,y0:u,x1:d,y1:g}=i;let f=0,y=1/0;const x=(c+d)/2,S=(u+g)/2;for(const D of e){const A=n[D],I=s[D];if(A==null||I==null)continue;const w=ar(A,a.min,a.max,r),N=ar(I,o.min,o.max,l),O=(w-x)**2+(N-S)**2;O=c&&D<=d&&A>=u&&A<=g&&(f+=1)}return f}function wnt(t,e,i){const{xValues:n,yValues:s,xDomain:a,yDomain:o,xNeedsValueOf:r,yNeedsValueOf:l}=t,{x0:c,y0:u,x1:d,y1:g}=i,f=[{x0:1,y0:1,x1:0,y1:0,indices:[]},{x0:1,y0:1,x1:0,y1:0,indices:[]},{x0:1,y0:1,x1:0,y1:0,indices:[]},{x0:1,y0:1,x1:0,y1:0,indices:[]}],y=(c+d)/2,x=(u+g)/2;for(const D of e){const A=n[D],I=s[D];if(A==null||I==null)continue;const w=ar(A,a.min,a.max,r),N=ar(I,o.min,o.max,l),O=(w>y?1:0)+(N>x?2:0),L=f[O];L.indices.push(D),L.x0=Math.min(L.x0,w),L.y0=Math.min(L.y0,N),L.x1=Math.max(L.x1,w),L.y1=Math.max(L.y1,N)}const S=[];for(const D of f){const{indices:A,x0:I,x1:w,y0:N,y1:O}=D;if(A.length===0)continue;const L=XN(t,A,{x0:I,y0:N,x1:w,y1:O});S.push(L)}return S}function XN(t,e,i){const{x0:n,y0:s,x1:a,y1:o}=i;let l=e.lengthd){const D=Array.from({length:Z0},()=>[]);for(let A=0;A=0&&Nw),A=XN(x,D,{x0:0,y0:0,x1:1,y1:1});A!=null&&S.push({sizeRatio:0,node:A})}return S.length>0?{xValues:i,yValues:n,xd0:r,xd1:l,yd0:c,yd1:u,filters:S,xNeedsValueOf:f,yNeedsValueOf:y}:void 0}function Tnt(t,e,i,n,s,a,o,r,l,c){const[u,d]=gn(t,a),[g,f]=gn(e,o);return Nnt([u,d],[g,f],i,n,s,[r[0],r[1]],{xNeedsValueOf:l,yNeedsValueOf:c})}function Lnt(t,e,i,n,s,a,o){const r=i.resolveColumnById(o,"xValue",n),l=i.resolveColumnById(o,"yValue",n),c=a?i.resolveColumnById(o,"sizeValue",n):void 0,u=i.getDomain(o,"xValue","value",n),d=i.getDomain(o,"yValue","value",n),g=a?s.domain:[0,0],f=i.resolveColumnNeedsValueOf(o,"xValue",n),y=i.resolveColumnNeedsValueOf(o,"yValue",n);return Tnt(t,e,r,l,c,u,d,g,f,y)}function KW(t,e,i,n,s,a){const{xRange:o,yRange:r,xVisibleRange:[l,c],yVisibleRange:[u,d],minSize:g,maxSize:f}=i,{xValues:y,yValues:x,xd0:S,xd1:D,yd0:A,yd1:I,xNeedsValueOf:w,yNeedsValueOf:N}=e,O=1/Math.min(o/(c-l),r/(d-u)),L={xValues:y,yValues:x,xDomain:{min:S,max:D},yDomain:{min:A,max:I},xNeedsValueOf:w,yNeedsValueOf:N};for(const{sizeRatio:R,node:P}of e.filters){const B=.5*(g+R*(f-g)),F=B*O,H=t*F,$=l-B/o,Y=c+B/o,U=u-B/r,V=d+B/r,Z=[P];for(;Z.length>0;){const W=Z.pop();if(!(W.x1<$||W.x0>Y||W.y1V))if(t!==1&&W.scale<=H)n!=null&&(n.count+=1),s?.push({datumIndex:W.primaryDatumIndex,count:W.indices.length,area:(W.x1-W.x0)*(W.y1-W.y0),dilation:Nt(1,W.scale/F,t)});else if(W.children==null){const{indices:q}=W;if(n!=null){const G=W.x0>=l&&W.x1<=c&&W.y0>=u&&W.y1<=d?q.length:Cnt(L,q,{x0:l,y0:u,x1:c,y1:d});n.count+=G}a?.push(...q)}else Z.push(...W.children)}}}function qS(t,e,i){const n={count:0};return KW(t,e,i,n,void 0,void 0),n.count}var Ont=100,Ent=12;function Rnt(t,e,i){if(qS(1,t,e)<=i)return 1;let n=1,s=2;for(;qS(s,t,e)>i&&si?n=o:s=o}return(n+s)/2}function Pnt(t,e,i){const n=[],s=[];return KW(t,e,i,void 0,n,s),{groupedAggregation:n,singleDatumIndices:s}}var HL=class extends la{constructor(){super(...arguments),this.maxSize=30}};T([b,ut()],HL.prototype,"maxSize",2);T([b,Vx()],HL.prototype,"domain",2);var YW=class extends Do{constructor(){super(...arguments),this.placement="top"}};T([b],YW.prototype,"placement",2);var gi=class extends jr{constructor(){super(...arguments),this.label=new YW,this.tooltip=zp(),this.maxRenderedItems=1/0,this.marker=new HL}};T([b],gi.prototype,"xKey",2);T([b],gi.prototype,"yKey",2);T([b],gi.prototype,"sizeKey",2);T([b],gi.prototype,"labelKey",2);T([b],gi.prototype,"selectedKey",2);T([b],gi.prototype,"xName",2);T([b],gi.prototype,"yName",2);T([b],gi.prototype,"sizeName",2);T([b],gi.prototype,"labelName",2);T([b],gi.prototype,"title",2);T([qi("marker.shape")],gi.prototype,"shape",2);T([qi("marker.size")],gi.prototype,"size",2);T([qi("marker.maxSize")],gi.prototype,"maxSize",2);T([qi("marker.domain")],gi.prototype,"domain",2);T([qi("marker.fill")],gi.prototype,"fill",2);T([qi("marker.fillOpacity")],gi.prototype,"fillOpacity",2);T([qi("marker.stroke")],gi.prototype,"stroke",2);T([qi("marker.strokeWidth")],gi.prototype,"strokeWidth",2);T([qi("marker.strokeOpacity")],gi.prototype,"strokeOpacity",2);T([qi("marker.lineDash")],gi.prototype,"lineDash",2);T([qi("marker.lineDashOffset")],gi.prototype,"lineDashOffset",2);T([qi("marker.itemStyler")],gi.prototype,"itemStyler",2);T([b],gi.prototype,"styler",2);T([b],gi.prototype,"label",2);T([b],gi.prototype,"tooltip",2);T([b],gi.prototype,"maxRenderedItems",2);var znt=class extends mL{constructor(t,e,i,n){super(t,e,i,n),this.sizeKey=n.properties.sizeKey}},gA=class extends Wu{constructor(t){super({moduleCtx:t,propertyKeys:{...hm,label:["labelKey"],size:["sizeKey"]},propertyNames:{...um,label:["labelName"],size:["sizeName"]},categoryKey:void 0,pickModes:[2,1,0],pathsPerSeries:[],datumSelectionGarbageCollection:!1,animationResetFns:{label:Pp,datum:rA},usesPlacedLabels:!0,clipFocusBox:!1}),this.NodeEvent=znt,this.properties=new gi,this.dataAggregation=void 0,this.sizeScale=new np,this.placedLabelData=[]}get pickModeAxis(){return"main-category"}get type(){return super.type}async processData(t){if(this.data==null||!this.visible)return;const e=this.axes[z.X]?.scale,i=this.axes[z.Y]?.scale,{xScaleType:n,yScaleType:s}=this.getScaleInformation({xScale:e,yScale:i}),a=this.sizeScale.type,{xKey:o,yKey:r,sizeKey:l,selectedKey:c,labelKey:u,marker:d}=this.properties,g=this.properties.allowNullKeys??!1,{dataModel:f,processedData:y}=await this.requestDataModel(t,this.data,{props:[Ci(o,n,{id:"xValue",allowNullKey:g}),Ci(r,s,{id:"yValue",allowNullKey:g}),...c==null?[]:[Ci(c,"category",{id:"selectedValue"})],...l?[Ci(l,a,{id:"sizeValue"})]:[],...u?[Ci(u,"category",{id:"labelValue"})]:[]]}),x=l?f.resolveProcessedDataIndexById(this,"sizeValue"):void 0,S=d.domain?[d.domain[0],d.domain[1]]:void 0;this.sizeScale.domain=S??(x==null?void 0:y.domain.values[x])??[],this.dataAggregation=this.aggregateData(f,y),this.animationState.transition("updateData")}xCoordinateRange(t,e,i){const{properties:n,sizeScale:s}=this,{size:a,sizeKey:o}=n,r=this.axes[z.X].scale.convert(t),l=o==null?void 0:this.dataModel.resolveColumnById(this,"sizeValue",this.processedData),u=.5*(l==null?a:s.convert(l[i]))*e;return[r-u,r+u]}yCoordinateRange(t,e,i){const{properties:n,sizeScale:s}=this,{size:a,sizeKey:o}=n,r=this.axes[z.Y].scale.convert(t[0]),l=o==null?void 0:this.dataModel.resolveColumnById(this,"sizeValue",this.processedData),u=.5*(l==null?a:s.convert(l[i]))*e;return[r-u,r+u]}getSeriesDomain(t){const{dataModel:e,processedData:i}=this;if(!i||!e)return{domain:[]};const n={[z.X]:"xValue",[z.Y]:"yValue"},s=n[t],a=e.resolveProcessedDataDefById(this,s),o=e.getDomain(this,s,"value",i);if(a?.def.type==="value"&&a?.def.valueType==="category")return{domain:o.domain};const r=t===z.X?z.Y:z.X,l=n[r],c=this.domainForClippedRange(t,[s],l);return{domain:_a(Ll(c))}}getSeriesRange(t,e){return this.domainForVisibleRange(z.Y,["yValue"],"xValue",e)}getVisibleItems(t,e,i){const{dataAggregation:n,axes:s}=this,a=s[z.X],o=s[z.Y];if(n==null||a==null||o==null)return this.countVisibleItems("xValue",["yValue"],t,e,i);const r=this.aggregationOptions(a,o,t,e??[0,1]);return qS(0,n,r)}aggregateData(t,e){if(e.type==="grouped"||e.input.count<=this.properties.maxRenderedItems)return;const i=this.axes[z.X],n=this.axes[z.Y];if(i==null||n==null)return;const s=i.scale,a=n.scale;if(!(!ti.is(s)||!ti.is(a)))return Lnt(s.type,a.type,t,e,this.sizeScale,this.properties.sizeKey!=null,this)}aggregationOptions(t,e,i=t.visibleRange,n=e.visibleRange){const{processedData:s,dataModel:a}=this,{sizeKey:o}=this.properties,[r,l]=this.getSizeRange(),c=Math.abs(t.range[1]-t.range[0]),u=Math.abs(e.range[1]-e.range[0]),d=Math.max(r,1),g=o?Math.max(l,1):d,f=t.scale,y=e.scale;return s!=null&&a!=null&&(ti.is(f)&&(i=pM(i,f.domain.map(Ss),a.getDomain(this,"xValue","value",s).domain.map(Ss))),ti.is(y)&&(n=pM(n,y.domain.map(Ss),a.getDomain(this,"yValue","value",s).domain.map(Ss)))),{xRange:c,yRange:u,minSize:d,maxSize:g,xVisibleRange:i,yVisibleRange:n}}createNodeDatumContext(t,e){const{dataModel:i,processedData:n,sizeScale:s,visible:a}=this;if(!i||!n)return;const o=n.dataSources.get(this.id)?.data;if(o==null)return;const{xKey:r,yKey:l,sizeKey:c,selectedKey:u,labelKey:d,xName:g,yName:f,sizeName:y,labelName:x,label:S,legendItemName:D,marker:A}=this.properties,I=t.scale,w=e.scale,N=n.changeDescription!=null&&this.contextNodeData?.nodeData!=null;let O;d?O=[]:c?O=i.getDomain(this,"sizeValue","value",n).domain:O=[];const L=i.resolveColumnById(this,"xValue",n);return{xAxis:t,yAxis:e,rawData:o,xValues:L,xDataValues:L,yDataValues:i.resolveColumnById(this,"yValue",n),sizeDataValues:c==null?void 0:i.resolveColumnById(this,"sizeValue",n),labelDataValues:d==null?void 0:i.resolveColumnById(this,"labelValue",n),selectedDataValues:u==null?void 0:i.resolveColumnById(this,"selectedValue",n),xScale:I,yScale:w,sizeScale:s,xOffset:(I.bandwidth??0)/2,yOffset:(w.bandwidth??0)/2,xKey:r,yKey:l,sizeKey:c,labelKey:d,xName:g,yName:f,sizeName:y,labelName:x,legendItemName:D,labelsEnabled:S.enabled,labelPlacement:S.placement,labelAnchor:wn.anchor(A.shape),labelTextDomain:O,labelPadding:Lf(S),labelTextMeasurer:Ve(S),label:S,animationEnabled:!this.ctx.animationManager.isSkipped(),visible:a,canIncrementallyUpdate:N,nodes:N?this.contextNodeData.nodeData:[],nodeIndex:0}}populateNodeData(t){this.sizeScale.range=this.getSizeRange();const e={datum:void 0,xDatum:void 0,yDatum:void 0,sizeValue:void 0,x:0,y:0,selected:void 0,nodeLabel:{text:"",width:0,height:0},markerSize:0,count:1,dilation:1,area:0},{dataAggregation:i}=this;i==null?this.createNodeDataSimple(t,e):this.createNodeDataWithAggregation(t,e,t.xAxis,t.yAxis,i)}initializeResult(t){const{marker:e}=this.properties;return{itemId:t.yKey,nodeData:t.nodes,labelData:t.labelsEnabled?t.nodes:[],scales:this.calculateScaling(),visible:this.visible||t.animationEnabled,styles:hA(this,this.properties,e)}}upsertBubbleNodeDatum(t,e,i){this.prepareNodeDatumState(t,e,i)&&ML(t,{scratch:e,datumIndex:i},(n,s)=>{const a=this.createSkeletonNodeDatum(n,s.scratch,s.datumIndex);return this.updateNodeDatum(n,a,s.scratch,s.datumIndex),a},(n,s,a)=>this.updateNodeDatum(n,s,a.scratch,a.datumIndex))}createNodeDataSimple(t,e){const i=t.rawData.length;for(let n=0;nAs(a.xValue,a.yValue,a.sizeValue,ce(a.label.text))),i.update(e,void 0,s)}updateDatumStyles(t){const{datumSelection:e,isHighlight:i}=t,{xKey:n,yKey:s,sizeKey:a,labelKey:o,marker:r}=this.properties,l={xKey:n,yKey:s,sizeKey:a,labelKey:o},c=this.ctx.highlightManager.getActiveHighlight();e.each((u,d)=>{if(!e.isGarbage(u)){const g=this.getHighlightState(c,t.isHighlight,d.datumIndex),f=this.getStyle(g);d.style=this.getMarkerStyle(r,d,l,{isHighlight:i,highlightState:g,resolveMarkerSubPath:[]},f)}})}updateDatumNodes(t){const{contextNodeData:e}=this;if(!e)return;const{datumSelection:i,isHighlight:n,drawingMode:s}=t;this.sizeScale.range=this.getSizeRange();const a=this.getShapeFillBBox(),o=this.dataAggregation!=null,r=this.ctx.highlightManager.getActiveHighlight();i.each((l,c,u)=>{const{point:{size:d},count:g,area:f,dilation:y}=c,x=this.getHighlightState(r,n,c.datumIndex),S={...c.style??e.styles[x]};if(S.size=d,y>1){const D=S.fillOpacity??0,A=.269669+683e-6*g+-37.534348*f+.004449*g*f+-0*g**2+44.428603*f**2;S.fillOpacity=Nt(D/y,D/.1*A,1)}this.applyMarkerStyle(S,l,c.point,a,{selected:c.selected}),l.drawingMode=this.resolveMarkerDrawingModeForState(s,S),l.zIndex=o?[-g,u]:0}),n||this.properties.marker.markClean()}updatePlacedLabelData(t){this.placedLabelData=t,this.labelSelection.update(t.map(e=>({...e.datum,point:{x:e.x,y:e.y,size:e.datum.point.size}})),e=>{e.pointerEvents=1}),this.updateLabelNodes({labelSelection:this.labelSelection}),this.updateHighlightLabelSelection()}updateHighlightLabelSelection(){const t=this.ctx.highlightManager?.getActiveHighlight(),e=this.isSeriesHighlighted(t)&&t?.datum?t:void 0,i=e==null?[]:this.placedLabelData.filter(n=>n.datum.datumIndex===e.datumIndex).map(n=>({...n.datum,point:{x:n.x,y:n.y,size:n.datum.point.size}}));this.highlightLabelSelection=this.updateLabelSelection({labelData:i,labelSelection:this.highlightLabelSelection})??this.highlightLabelSelection,this.highlightLabelGroup.visible=i.length>0,this.highlightLabelGroup.batchedUpdate(()=>{this.updateLabelNodes({labelSelection:this.highlightLabelSelection,isHighlight:!0})})}updateLabelNodes(t){const{isHighlight:e=!1}=t,i=this.ctx.highlightManager?.getActiveHighlight(),n=this.makeLabelFormatterParams();t.labelSelection.each((s,a)=>{const o=Rp(this,a,n,this.properties.label,e,i);s.text=a.label.text,s.fill=o.color,s.x=a.point?.x??0,s.y=a.point?.y??0,s.fontStyle=o.fontStyle,s.fontWeight=o.fontWeight,s.fontSize=o.fontSize,s.fontFamily=o.fontFamily,s.textBaseline="top",s.fillOpacity=this.getHighlightStyle(e,a.datumIndex).opacity??1,s.setBoxing(o)})}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t;return i.update(e,n=>{n.pointerEvents=1})}makeStylerParams(t){const{id:e,properties:{size:i,maxSize:n,shape:s,fill:a,fillOpacity:o,lineDash:r,lineDashOffset:l,stroke:c,strokeOpacity:u,strokeWidth:d,xKey:g,yKey:f,sizeKey:y,labelKey:x}}=this,S=em(t??0);return this.type==="bubble"?{highlightState:S,size:i,maxSize:n,shape:s,fill:a,fillOpacity:o,lineDash:r,lineDashOffset:l,seriesId:e,sizeKey:y,stroke:c,strokeOpacity:u,strokeWidth:d,xKey:g,yKey:f,labelKey:x}:this.type==="scatter"?{highlightState:S,size:i,shape:s,fill:a,fillOpacity:o,lineDash:r,lineDashOffset:l,seriesId:e,stroke:c,strokeOpacity:u,strokeWidth:d,xKey:g,yKey:f,labelKey:x}:this.type}makeLabelFormatterParams(){const{xKey:t,xName:e,yKey:i,yName:n,sizeKey:s,sizeName:a,labelKey:o,labelName:r,legendItemName:l}=this.properties;return{xKey:t,xName:e,yKey:i,yName:n,sizeKey:s,sizeName:a,labelKey:o,labelName:r,legendItemName:l}}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a,ctx:o}=this,{formatManager:r}=o,{xKey:l,xName:c,yKey:u,yName:d,sizeKey:g,sizeName:f,labelKey:y,labelName:x,title:S,tooltip:D,marker:A,legendItemName:I}=a,w=s[z.X],N=s[z.Y];if(!i||!n||!w||!N)return;const O=n.dataSources.get(this.id)?.data?.[t],L=i.resolveColumnById(this,"xValue",n)[t],R=i.resolveColumnById(this,"yValue",n)[t],P=this.properties.allowNullKeys??!1;if(L===void 0&&!P)return;const B=[];if(this.isLabelEnabled()&&y!=null){const H=i.resolveColumnById(this,"labelValue",n)[t],$=r.format(this.callWithContext.bind(this),{type:"category",value:H,datum:O,seriesId:e,legendItemName:I,key:y,source:"tooltip",property:"label",domain:[],boundSeries:this.getFormatterContext("label")});B.push({label:x,fallbackLabel:y,value:$??Or(H)})}if(B.push({label:c,fallbackLabel:l,value:this.getAxisValueText(w,"tooltip",L,O,l,I,P),missing:dp(L,P)},{label:d,fallbackLabel:u,value:this.getAxisValueText(N,"tooltip",R,O,u,I,P),missing:dp(R,P)}),g!=null){const H=i.resolveColumnById(this,"sizeValue",n)[t];if(H!=null){const $=i.getDomain(this,"sizeValue","value",n).domain,Y=r.format(this.callWithContext.bind(this),{type:"number",value:H,datum:O,seriesId:e,legendItemName:I,key:g,source:"tooltip",property:"size",boundSeries:this.getFormatterContext("size"),domain:$,fractionDigits:void 0,visibleDomain:void 0});B.push({label:f,fallbackLabel:g,value:Y??Or(H)})}}const F=this.getMarkerStyle(A,{datum:O,datumIndex:t},{xKey:l,yKey:u,sizeKey:g,labelKey:y},{resolveMarkerSubPath:[]});return this.formatTooltipWithContext(D,{title:S,symbol:this.legendItemSymbol(),data:B},{seriesId:e,datum:O,title:u,xKey:l,xName:c,yKey:u,yName:d,sizeKey:g,sizeName:f,labelKey:y,labelName:x,legendItemName:I,...F,...this.getModuleTooltipParams()})}legendItemSymbol(){const t=this.getStyle();return{marker:this.getMarkerStyle(this.properties.marker,{},void 0,{isHighlight:!1,checkForHighlight:!1,resolveMarkerSubPath:[]},t)}}getLegendData(){const{id:t,ctx:{legendManager:e},visible:i}=this,{yKey:n,yName:s,legendItemName:a,title:o,showInLegend:r}=this.properties;return[{legendType:"category",id:t,itemId:n,seriesId:t,enabled:i&&e.getItemEnabled({seriesId:t,itemId:n}),label:{text:a??o??s??n},symbol:this.legendItemSymbol(),legendItemName:a,hideInLegend:!r}]}animateEmptyUpdateReady({datumSelection:t,labelSelection:e}){Ait(this,this.ctx.animationManager,t),Wi(this,"labels",this.ctx.animationManager,e)}resetDatumAnimation(t){lA([t.datumSelection])}isLabelEnabled(){return this.properties.label.enabled}nodeFactory(){return new wn}getStyle(t){const{properties:e}=this;let i={};if(e.styler){const n=this.makeStylerParams(t),s=this.cachedCallWithContext(e.styler,n)??{};i=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],s,{pick:!1})??{}}return{fill:i.fill??e.fill,fillOpacity:i.fillOpacity??e.fillOpacity,lineDash:i.lineDash??e.lineDash,lineDashOffset:i.lineDashOffset??e.lineDashOffset,shape:i.shape??e.shape,size:i.size??e.size,maxSize:i.maxSize??e.maxSize,stroke:i.stroke??e.stroke,strokeOpacity:i.strokeOpacity??e.strokeOpacity,strokeWidth:i.strokeWidth??e.strokeWidth}}getSizeRange(){const{size:t,maxSize:e}=this.getStyle();return[t,e]}getFormattedMarkerStyle(t){const{xKey:e,yKey:i,sizeKey:n,labelKey:s,marker:a}=this.properties;return this.getMarkerStyle(a,t,{xKey:e,yKey:i,sizeKey:n,labelKey:s},{resolveMarkerSubPath:[]})}computeFocusBounds(t){return cA(this,t)}hasItemStylers(){const{styler:t,itemStyler:e,marker:i,label:n}=this.properties;return!!(t??e??i.itemStyler??n.itemStyler)}initQuadTree(t){aA(t,this.datumNodesIter())}pickNodeDataClosestDatum(t){return oA(this,t)}};gA.className="BubbleSeries";gA.type="bubble";var Bnt={series:{shape:"circle",size:7,maxSize:30,fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Sp],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"},fillOpacity:.8,maxRenderedItems:2e3,label:{...Oe,enabled:!1,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"}},tooltip:{range:{$if:[{$eq:[{$path:["/tooltip/range","nearest"]},"area"]},"nearest",{$path:["/tooltip/range","nearest"]}]},position:{anchorTo:{$path:["/tooltip/position/anchorTo","node"]}}},highlight:Bc}},$W={type:"series",name:"bubble",chartType:"cartesian",version:oi,dependencies:[hr],options:$3,predictAxis:dL,defaultAxes:{x:{type:ie.NUMBER,position:he.BOTTOM},y:{type:ie.NUMBER,position:he.LEFT}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},themeTemplate:Bnt,create:t=>new gA(t)},Rn=class extends jr{constructor(){super(...arguments),this.fillOpacity=1,this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.areaPlot=!1,this.aggregation="sum",this.shadow=new zl,this.label=new Do,this.tooltip=zp()}getStyle(){const{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,cornerRadius:r}=this;return{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,cornerRadius:r,opacity:1}}};T([b],Rn.prototype,"xKey",2);T([b],Rn.prototype,"yKey",2);T([b],Rn.prototype,"xName",2);T([b],Rn.prototype,"yName",2);T([b],Rn.prototype,"fill",2);T([b],Rn.prototype,"fillOpacity",2);T([b],Rn.prototype,"stroke",2);T([b],Rn.prototype,"strokeWidth",2);T([b],Rn.prototype,"strokeOpacity",2);T([b],Rn.prototype,"lineDash",2);T([b],Rn.prototype,"lineDashOffset",2);T([b],Rn.prototype,"cornerRadius",2);T([b],Rn.prototype,"areaPlot",2);T([b],Rn.prototype,"bins",2);T([b],Rn.prototype,"aggregation",2);T([b],Rn.prototype,"binCount",2);T([b],Rn.prototype,"shadow",2);T([b],Rn.prototype,"label",2);T([b],Rn.prototype,"tooltip",2);var TV=10,jL=class extends Wu{constructor(t){super({moduleCtx:t,propertyKeys:hm,propertyNames:um,categoryKey:void 0,pickModes:[1,0],datumSelectionGarbageCollection:!0,animationAlwaysPopulateNodeData:!0,alwaysClip:!0,animationResetFns:{datum:ex,label:Pp}}),this.properties=new Rn,this.calculatedBins=[]}get hasData(){return this.calculatedBins.length>0}deriveBins(t){const e=Xf(t[0],t[1],TV).ticks,i=Mf(t[0],t[1],TV),[n]=e,s=a=>[a,a+i];return[[n-i,n],...e.map(s)]}calculateNiceBins(t,e){const i=Math.floor(t[0]),n=t[1],s=e||1,{start:a,binSize:o}=this.calculateNiceStart(i,n,s);return this.getBins(a,n,o,s)}getBins(t,e,i,n){const s=[],a=this.calculatePrecision(i);for(let o=0;o0)for(;t<1;)e*=10,t*=10;return e}calculateNiceStart(t,e,i){const n=Math.abs(e-t)/i,s=Math.floor(Math.log10(n)),a=Math.pow(10,s);return{start:Math.floor(t/a)*a,binSize:n}}async processData(t){const{visible:e}=this,{xKey:i,yKey:n,areaPlot:s,aggregation:a}=this.properties,o=this.axes[z.X]?.scale,r=this.axes[z.Y]?.scale,{xScaleType:l,yScaleType:c}=this.getScaleInformation({yScale:r,xScale:o}),u=e?{}:{forceValue:0},d=[uu(i,l),I7];if(n){let A=eB("groupAgg",{visible:e});a==="count"||(a==="sum"?A=jq("groupAgg",{visible:e}):a==="mean"&&(A=Uq("groupAgg",{visible:e}))),s&&(A=iB("groupAgg",A)),d.push(Ci(n,c,{invalidValue:void 0,...u}),A)}else{d.push(S7("count"));let A=eB("groupAgg",{visible:e});s&&(A=iB("groupAgg",A)),d.push(A)}let g=[];const f=A=>{const I=_a(A.domain.keys[0]);if(I.length===0)return A.domain.groups=[],()=>[];const w=Je(this.properties.binCount)?this.calculateNiceBins(I,this.properties.binCount):this.properties.bins??this.deriveBins(I),N=w.length;return g=[...w],O=>{let L=O[0];if(aa(L)&&(L=L.getTime()),!Je(L))return[];for(let R=0;R=P[0]&&L{const I=D.get(As(...A));if(I){const{group:w,groupIndex:N}=I,[[O,L]=[0,0]]=w.aggregation,R=[...y.forEachDatum(this,S,w,N)],P=this.frequency(w),B=O+L;return{domain:A,datum:R,groupIndex:N,frequency:P,total:B}}else return{domain:A,datum:[],groupIndex:-1,frequency:0,total:0}}),this.animationState.transition("updateData")}xCoordinateRange(){return[Number.NaN,Number.NaN]}yCoordinateRange(){return[Number.NaN,Number.NaN]}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(!e||!i||!this.calculatedBins.length)return{domain:[]};const n=i.getDomain(this,"groupAgg","aggregate",e).domain,s=this.calculatedBins[0].domain[0],a=this.calculatedBins[(this.calculatedBins?.length??0)-1].domain[1];return t===z.X?{domain:_a([s,a])}:{domain:_a(n)}}getSeriesRange(t,[e,i]){const{dataModel:n,processedData:s}=this;if(!n||s?.type!=="grouped")return[Number.NaN,Number.NaN];const a=this.axes[z.X].scale,o=0;let r=-1/0;for(const{keys:l,aggregation:c}of s.groups){const[[u,d]=[0,0]]=c,[g,f]=l,[y,x]=xi([a.convert(g),a.convert(f)]);if(x>=e&&y<=i){const S=u+d;r=Math.max(r,S)}}return o>r?[Number.NaN,Number.NaN]:[o,r]}frequency(t){return t.datumIndices.reduce((e,i)=>e+i.length,0)}createNodeDatumContext(t,e){const{xKey:i,yKey:n,xName:s,yName:a,label:o}=this.properties,{contextNodeData:r,processedData:l}=this,c=r?.nodeData!=null&&l?.changeDescription!=null;return{xAxis:t,yAxis:e,xScale:t.scale,yScale:e.scale,yAxisReversed:e.isReversed(),rawData:[],xValues:[],xKey:i,yKey:n,xName:s,yName:a,label:o,animationEnabled:!this.ctx.animationManager.isSkipped(),canIncrementallyUpdate:c,nodes:c?r.nodeData:[],nodeIndex:0}}createLabelData(t,e,i,n,s,a){const{label:o,yKey:r,xKey:l,xName:c,yName:u}=t,{total:d,datum:g}=e;if(!(!o.enabled||d===0))return{x:i+s/2,y:n+a/2,text:this.getLabelText(d,g,r,"y",[],o,{value:d,datum:g,xKey:l,yKey:r,xName:c,yName:u})}}createSkeletonNodeDatum(t,e){const{xKey:i,yKey:n}=t,{domain:s,datum:a,groupIndex:o,frequency:r,total:l}=e;return{series:this,datumIndex:o,datum:a,aggregatedValue:l,frequency:r,domain:s,yKey:n,xKey:i,x:0,y:0,xValue:0,yValue:0,width:0,height:0,midPoint:{x:0,y:0},topLeftCornerRadius:!1,topRightCornerRadius:!1,bottomRightCornerRadius:!1,bottomLeftCornerRadius:!1,label:void 0,crisp:!0}}updateNodeDatum(t,e,i){const{xScale:n,yScale:s,yAxisReversed:a}=t,{domain:o,datum:r,groupIndex:l,frequency:c,total:u}=i,d=e,[g,f]=o,y=n.convert(g),x=n.convert(f),S=s.convert(0),D=s.convert(u),A=Math.abs(x-y),I=Math.abs(D-S),w=Math.min(y,x),N=Math.min(S,D);d.datumIndex=l,d.datum=r,d.aggregatedValue=u,d.frequency=c,d.domain=o,d.x=w,d.y=N,d.xValue=y,d.yValue=D,d.width=A,d.height=I,d.midPoint?(d.midPoint.x=w+A/2,d.midPoint.y=N+I/2):d.midPoint={x:w+A/2,y:N+I/2},d.topLeftCornerRadius=!a,d.topRightCornerRadius=!a,d.bottomRightCornerRadius=a,d.bottomLeftCornerRadius=a,d.label=this.createLabelData(t,i,w,N,A,I)}createNodeDatum(t,e){const i=this.createSkeletonNodeDatum(t,e);return this.updateNodeDatum(t,i,e),i}populateNodeData(t){const{processedData:e}=this;if(e?.type==="grouped")for(const i of this.calculatedBins)ML(t,i,(n,s)=>this.createNodeDatum(n,s),(n,s,a)=>this.updateNodeDatum(n,s,a))}initializeResult(t){return{itemId:this.properties.yKey??this.id,nodeData:t.nodes,labelData:t.nodes,scales:this.calculateScaling(),animationValid:!0,visible:this.visible||t.animationEnabled,styles:YT(this.getItemStyle.bind(this))}}finalizeNodeData(t){super.finalizeNodeData(t),t.nodes.sort((e,i)=>e.x-i.x)}nodeFactory(){return new On}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t;return rr(this.processedData)?i.update(e,void 0,n=>As(...n.domain)):i.update(e)}getItemStyle(t,e,i){const{properties:n}=this,s=this.getHighlightStyle(e,t,i);return Et(s,n.getStyle())}updateDatumStyles(t){const{datumSelection:e,isHighlight:i}=t;e.each((n,s)=>{e.isGarbage(n)||(s.style=this.getItemStyle(s.datumIndex,i))})}updateDatumNodes(t){const{contextNodeData:e}=this;if(!e)return;const i=this.ctx.highlightManager.getActiveHighlight(),{shadow:n}=this.properties,s=this.getShapeFillBBox();t.datumSelection.each((a,o)=>{const r=o.style??e.styles[this.getHighlightState(i,t.isHighlight,o.datumIndex)],{cornerRadius:l=0}=r,{topLeftCornerRadius:c,topRightCornerRadius:u,bottomRightCornerRadius:d,bottomLeftCornerRadius:g}=o;a.setStyleProperties(r,s),a.topLeftCornerRadius=c?l:0,a.topRightCornerRadius=u?l:0,a.bottomRightCornerRadius=d?l:0,a.bottomLeftCornerRadius=g?l:0,a.crisp=o.crisp,a.fillShadow=n})}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t;return i.update(e,n=>{n.pointerEvents=1,n.textAlign="center",n.textBaseline="middle"})}updateLabelNodes(t){const e=this.isLabelEnabled(),{isHighlight:i=!1}=t,n=this.ctx.highlightManager?.getActiveHighlight();t.labelSelection.each((s,a)=>{const o=Rp(this,a,this.properties,this.properties.label,i,n),{enabled:r,fontStyle:l,fontWeight:c,fontSize:u,fontFamily:d,color:g}=o;r&&e&&a?.label?(s.text=a.label.text,s.x=a.label.x,s.y=a.label.y,s.fontStyle=l,s.fontWeight=c,s.fontFamily=d,s.fontSize=u,s.fill=g,s.visible=!0,s.fillOpacity=this.getHighlightStyle(i,a.datumIndex).opacity??1,s.setBoxing(o)):s.visible=!1})}initQuadTree(t){const{value:e}=this.contentGroup.children().next();e instanceof ee&&aA(t,e.children())}pickNodeClosestDatum(t){return oA(this,t)}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a,ctx:{localeManager:o}}=this,{xKey:r,xName:l,yKey:c,yName:u,tooltip:d,legendItemName:g}=a,f=s[z.X],y=s[z.Y];if(!i||n?.type!=="grouped"||!f||!y)return;const x=n.groups[t],{aggregation:S,keys:D}=x,[[A,I]=[0,0]]=S,w=this.frequency(x),N=D,[O,L]=N,R=A+I,P={data:[...i.forEachDatum(this,n,x,t)],aggregatedValue:R,frequency:w,domain:N},B=[{label:l,fallbackLabel:r,value:`${this.getAxisValueText(f,"tooltip",O,P,r,g)} - ${this.getAxisValueText(f,"tooltip",L,P,r,g)}`},{label:o.t("seriesHistogramTooltipFrequency"),value:this.getAxisValueText(y,"tooltip",w,P,c,g)}];if(c!=null){let F;switch(a.aggregation){case"sum":F=o.t("seriesHistogramTooltipSum",{yName:u??c});break;case"mean":F=o.t("seriesHistogramTooltipMean",{yName:u??c});break;case"count":F=o.t("seriesHistogramTooltipCount",{yName:u??c});break}B.push({label:F,value:this.getAxisValueText(y,"tooltip",R,P,c,g)})}return this.formatTooltipWithContext(d,{symbol:this.legendItemSymbol(),data:B},{seriesId:e,datum:P,title:u,xKey:r,xName:l,yKey:c,yName:u,xRange:[O,L],frequency:w,...this.getItemStyle(t,!1)})}legendItemSymbol(){const{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o}=this.properties;return{marker:{fill:le(t)??"rgba(0, 0, 0, 0)",stroke:i??"rgba(0, 0, 0, 0)",fillOpacity:e,strokeOpacity:s,strokeWidth:n,lineDash:a,lineDashOffset:o}}}getLegendData(t){if(t!=="category")return[];const{id:e,ctx:{legendManager:i},visible:n}=this,{xKey:s,yName:a,showInLegend:o}=this.properties;return[{legendType:"category",id:e,itemId:s,seriesId:e,enabled:n&&i.getItemEnabled({seriesId:e,itemId:s}),label:{text:a??s??"Frequency"},symbol:this.legendItemSymbol(),hideInLegend:!o}]}resetDatumAnimation(t){LM([t.datumSelection])}animateEmptyUpdateReady({datumSelection:t,labelSelection:e}){const i=tx(Jb(!0,this.axes,"normal"),"unknown");dn(this.id,"datums",this.ctx.animationManager,[t],i),Wi(this,"labels",this.ctx.animationManager,e)}animateWaitingUpdateReady(t){const e=tx(Jb(!0,this.axes,"normal"),"added"),i={changed:!0,added:new Set,removed:new Set};dn(this.id,"datums",this.ctx.animationManager,[t.datumSelection],e,(n,s)=>As(...s.domain),i),i?.changed&&Wi(this,"labels",this.ctx.animationManager,t.labelSelection)}isLabelEnabled(){return this.properties.label.enabled}computeFocusBounds({datumIndex:t}){return SL(this,this.contextNodeData?.nodeData[t])}hasItemStylers(){return this.properties.label.itemStyler!=null}};jL.className="HistogramSeries";jL.type="histogram";var Vnt={series:{fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Tl],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"},strokeWidth:1,fillOpacity:1,strokeOpacity:1,lineDash:[0],lineDashOffset:0,label:{...Oe,enabled:!1,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"chartBackgroundColor"}},shadow:{enabled:!1,color:Dp,xOffset:3,yOffset:3,blur:5},highlight:Bc}},XW={type:"series",name:"histogram",chartType:"cartesian",version:oi,dependencies:[hr],options:ftt,predictAxis:Zx,defaultAxes:{x:{type:ie.NUMBER,position:he.BOTTOM},y:{type:ie.NUMBER,position:he.LEFT}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},themeTemplate:Vnt,create:t=>new jL(t)},_nt=10;function zM(t,e,i,n,s,a,o,r){const l=t[a];if(l===void 0)return!1;const c=Number.isFinite(e)?ar(l,e,i,o):xf(a,r),u=yD(c,s);return a===n[u+Ca]||a===n[u+wa]||a===n[u+Na]||a===n[u+Ta]}function ZW(t,e,i,n,s,a,o,r){let l=0;for(let d=0;dS.maxRange===u);let{indexData:g,valueData:f}=Fc(e,i,i,a,o,u,{xNeedsValueOf:r,yNeedsValueOf:l,reuseIndexData:d?.indexData,reuseValueData:d?.valueData}),y=ZW(e,a,o,g,u,r,s,d?.indices);const x=[{maxRange:u,indices:y,indexData:g,valueData:f}];for(;y.length>_nt&&u>64;){const S=u,D=Math.trunc(S/2),A=c?.find(w=>w.maxRange===D),I=ap(g,f,S,{reuseIndexData:A?.indexData,reuseValueData:A?.valueData});u=I.maxRange,g=I.indexData,f=I.valueData,y=Fnt(y,e,a,o,g,u,r,s,A?.indices),x.push({maxRange:u,indices:y,indexData:g,valueData:f})}return x.reverse(),x}function Hnt(t,e,i,n){const s=e.length;if(sI.maxRange===g),{indexData:y,valueData:x}=Fc(e,i,i,a,o,g,{xNeedsValueOf:r,yNeedsValueOf:l,reuseIndexData:f?.indexData,reuseValueData:f?.valueData}),S=ZW(e,a,o,y,g,r,s,f?.indices),D={maxRange:g,indices:S,indexData:y,valueData:x};function A(){return GL([a,o],e,i,{xNeedsValueOf:r,yNeedsValueOf:l,existingFilters:u})?.filter(w=>w.maxRange!==g)??[]}return{immediate:[D],computeRemaining:A}}function jnt(t,e,i,n,s,a){const[o,r]=gn(t,n);return GL([o,r],e,i,{xNeedsValueOf:s,yNeedsValueOf:a})}var Gnt=Pu(jnt);function Unt(t,e,i,n,s,a){const o=e.resolveColumnById(s,"xValue",i),r=e.resolveColumnById(s,n,i),l=e.getDomain(s,"xValue","value",i),c=e.resolveColumnNeedsValueOf(s,"xValue",i),u=e.resolveColumnNeedsValueOf(s,n,i);if(a){const[d,g]=gn(t,l);return GL([d,g],o,r,{xNeedsValueOf:c,yNeedsValueOf:u,existingFilters:a})}return Gnt(t,o,r,l,c,u)}function Wnt(t,e,i,n,s,a,o){const r=e.resolveColumnById(s,"xValue",i),l=e.resolveColumnById(s,n,i),c=e.getDomain(s,"xValue","value",i),u=e.resolveColumnNeedsValueOf(s,"xValue",i),d=e.resolveColumnNeedsValueOf(s,n,i),[g,f]=gn(t,c);return Hnt([g,f],r,l,{xNeedsValueOf:u,yNeedsValueOf:d,targetRange:a,existingFilters:o})}var mn=class extends jr{constructor(){super(...arguments),this.stroke="#874349",this.strokeWidth=2,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.interpolation=new Mp,this.marker=new la,this.label=new Do,this.tooltip=zp(),this.connectMissingData=!1,this.sparklineMode=!1}};T([b],mn.prototype,"xKey",2);T([b],mn.prototype,"yKey",2);T([b],mn.prototype,"xName",2);T([b],mn.prototype,"yName",2);T([b],mn.prototype,"selectedKey",2);T([b],mn.prototype,"stackGroup",2);T([b],mn.prototype,"normalizedTo",2);T([b],mn.prototype,"title",2);T([b],mn.prototype,"stroke",2);T([b],mn.prototype,"strokeWidth",2);T([b],mn.prototype,"strokeOpacity",2);T([b],mn.prototype,"lineDash",2);T([b],mn.prototype,"lineDashOffset",2);T([b],mn.prototype,"interpolation",2);T([b],mn.prototype,"styler",2);T([b],mn.prototype,"marker",2);T([b],mn.prototype,"label",2);T([b],mn.prototype,"tooltip",2);T([b],mn.prototype,"connectMissingData",2);T([b],mn.prototype,"sparklineMode",2);var UL=class extends Wu{constructor(t){super({moduleCtx:t,propertyKeys:hm,propertyNames:um,categoryKey:"xValue",pickModes:[2,1,0],datumSelectionGarbageCollection:!1,segmentedDataNodes:!1,animationResetFns:{path:kL({getVisible:()=>this.visible,getOpacity:()=>this.getOpacity()}),label:Pp,datum:(e,i)=>({...rA(),...nx(e,i)})},clipFocusBox:!1}),this.properties=new mn,this.aggregationManager=new dA}get pickModeAxis(){return this.properties.sparklineMode?"main":"main-category"}isNormalized(){return this.properties.normalizedTo!=null}renderToOffscreenCanvas(){return(this.contextNodeData?.nodeData?.length??0)>0&&this.getDrawingMode(!1)==="cutout"||super.renderToOffscreenCanvas()}async processData(t){if(this.data==null)return;const{data:e,visible:i,seriesGrouping:{groupIndex:n=this.id,stackCount:s=0}={}}=this,{xKey:a,yKey:o,selectedKey:r,connectMissingData:l,normalizedTo:c}=this.properties,u=this.axes[z.X]?.scale,d=this.axes[z.Y]?.scale,{isContinuousX:g,xScaleType:f,yScaleType:y}=this.getScaleInformation({xScale:u,yScale:d}),x=s>1||c!=null,S={invalidValue:null};l&&x&&(S.invalidValue=0),x&&!i&&(S.forceValue=0);const D={value:`area-stack-${n}-yValue`,marker:`area-stack-${n}-yValues-marker`},A=[],I=this.properties.allowNullKeys??!1;(!g||x)&&A.push(uu(a,f,{id:"xKey",allowNullKey:I})),A.push(Ci(a,f,{id:"xValue",allowNullKey:I}),Ci(o,y,{id:"yValueRaw",...S,invalidValue:void 0})),r!=null&&A.push(Ci(r,"category",{id:"selectedRaw"})),x&&A.push(...Wd(o,"normal",{id:"yValueCumulative",...S,groupId:D.marker},y)),go(c)&&A.push(Ci(o,y,{id:"yValue",...S,groupId:D.value}),jD(Object.values(D),c)),this.needsDataModelDiff()&&(A.push(Hx(g?["xValue"]:void 0)),this.processedData&&A.push(GD(this.id,this.processedData)));const{dataModel:w,processedData:N}=await this.requestDataModel(t,e,{props:A,groupByKeys:x,groupByData:!x});this.aggregateData(w,N),this.animationState.transition("updateData")}yValueKey(){return this.isNormalized()?"yValue":"yValueRaw"}yCumulativeKey(t){return t.type==="grouped"?"yValueCumulative":this.yValueKey()}xCoordinateRange(t,e){const{marker:i}=this.properties,n=this.axes[z.X].scale.convert(t),s=i.enabled?.5*i.size*e:0;return[n-s,n+s]}yCoordinateRange(t,e){const{marker:i}=this.properties,n=this.axes[z.Y].scale.convert(t[0]),s=i.enabled?.5*i.size*e:0;return[n-s,n+s]}getSeriesDomain(t){const{dataModel:e,processedData:i,axes:n}=this;if(!e||!i)return{domain:[]};const s=n[z.Y];if(t===z.X){const o=e.resolveProcessedDataDefById(this,"xValue"),r=e.getDomain(this,"xValue","value",i);if(o?.def.type==="value"&&o.def.valueType==="category"){const l=e.getKeySortMetadata(this,"xValue",i);return{domain:r.domain,sortMetadata:l}}return{domain:_a(Ll(r.domain))}}const a=this.domainForClippedRange(z.Y,[this.yCumulativeKey(i)],"xValue");if(this.isNormalized()&&s instanceof Ao&&!(s instanceof fm)){const o=Number.isFinite(a[1]-a[0])?[Math.min(a[0],0),Math.max(a[1],0)]:[];return{domain:_a(o)}}else return{domain:_a(a)}}getSeriesRange(t,e){return this.domainForVisibleRange(z.Y,[this.yCumulativeKey(this.processedData)],"xValue",e)}getZoomRangeFittingItems(t,e,i){return this.zoomFittingVisibleItems("xValue",[this.yCumulativeKey(this.processedData)],t,e,i)}getVisibleItems(t,e,i){return this.countVisibleItems("xValue",[this.yCumulativeKey(this.processedData)],t,e,i)}aggregateData(t,e){if(this.aggregationManager.markStale(e.input.count),e.type!=="ungrouped"||rr(e))return;const i=this.axes[z.X];if(i==null)return;const n=this.estimateTargetRange();this.aggregationManager.aggregate({computePartial:a=>Wnt(i.scale.type,t,e,this.yCumulativeKey(e),this,n,a),computeFull:a=>Unt(i.scale.type,t,e,this.yCumulativeKey(e),this,a),targetRange:n});const s=this.aggregationManager.filters;s&&s.length>0&&Vr.record(`${this.type}:aggregation`,s.map(a=>a.maxRange))}estimateTargetRange(){const t=this.axes[z.X];if(t?.scale?.range){const[e,i]=t.scale.range;return Math.abs(i-e)}return this.ctx.scene?.canvas?.width??800}createNodeDatumContext(t,e){const{dataModel:i,processedData:n}=this;if(!i||!n)return;const s=t.scale,a=e.scale,o=n.dataSources.get(this.id)?.data??[],[r,l]=s.range,c=Math.abs(l-r);this.aggregationManager.ensureLevelForRange(c);const u=this.aggregationManager.getFilterForRange(c),d=this.canIncrementallyUpdateNodes(u!=null);return{xAxis:t,yAxis:e,rawData:o,xValues:i.resolveColumnById(this,"xValue",n),yRawValues:i.resolveColumnById(this,"yValueRaw",n),yCumulativeValues:i.resolveColumnById(this,this.yCumulativeKey(n),n),selectionValues:this.properties.selectedKey?i.resolveColumnById(this,"selectedRaw",n):void 0,xScale:s,yScale:a,xOffset:(s.bandwidth??0)/2,yOffset:(a.bandwidth??0)/2,size:this.properties.marker.enabled?this.properties.marker.size:0,yDomain:this.getSeriesDomain(z.Y).domain,labelsEnabled:this.properties.label.enabled,animationEnabled:!this.ctx.animationManager.isSkipped(),canIncrementallyUpdate:d,dataAggregationFilter:u,range:c,xKey:this.properties.xKey,yKey:this.properties.yKey,xName:this.properties.xName,yName:this.properties.yName,legendItemName:this.properties.legendItemName,connectMissingData:this.properties.connectMissingData,capDefaults:{lengthRatioMultiplier:this.properties.marker.getDiameter(),lengthMax:1/0},nodes:d?this.contextNodeData.nodeData:[],spanPoints:[],nodeIndex:0}}handleDatum(t,e,i){if(e.datum=t.rawData[i],e.xDatum=t.xValues[i],e.yDatum=t.yRawValues[i],e.yCumulative=t.yCumulativeValues[i],e.selected=t.selectionValues?.[i],e.x=t.xScale.convert(e.xDatum)+t.xOffset,e.y=t.yScale.convert(e.yCumulative)+t.yOffset,!!Number.isFinite(e.x)){if(e.yDatum!=null){const n=t.labelsEnabled?this.getLabelText(e.yDatum,e.datum,t.yKey,"y",t.yDomain,this.properties.label,{value:e.yDatum,datum:e.datum,xKey:t.xKey,yKey:t.yKey,xName:t.xName,yName:t.yName,legendItemName:t.legendItemName}):void 0;if(t.canIncrementallyUpdate&&t.nodeIndexArray.isArray(n)?Cb(n,this.properties.interpolation):[]);return e.strokeData={itemId:t.yKey,spans:i},e.crossFiltering=this.properties.selectedKey!=null,e.segments=nA(this.properties.segmentation,t.xAxis,t.yAxis,this.chart.seriesRect,this.ctx.scene,!1),e}isPathOrSelectionDirty(){return this.properties.marker.isDirty()}updatePathNodes(t){const{paths:[e],visible:i,animationEnabled:n}=t,s=Et(this.getHighlightStyle(),this.getStyle()),{strokeWidth:a,stroke:o,strokeOpacity:r,lineDash:l,lineDashOffset:c,opacity:u}=s,d=this.contextNodeData?.segments;e.setProperties({segments:d,fill:void 0,lineJoin:"round",pointerEvents:1,opacity:u,stroke:o,strokeWidth:a,strokeOpacity:r,lineDash:l,lineDashOffset:c}),e.datum=d,n||(e.visible=i),OM(this,e)}updateDatumSelection(t){let{nodeData:e}=t;const{datumSelection:i}=t,{contextNodeData:n,processedData:s,axes:a,properties:o}=this,{marker:r}=o;return e=n?.crossFiltering===!0||AL(s.input.count,a[z.X].scale,r)?e:[],r.isDirty()&&(i.clear(),i.cleanup()),rr(this.processedData)?i.update(e,void 0,c=>As(c.xValue)):i.update(e)}updateDatumStyles(t){const{datumSelection:e,isHighlight:i}=t,{marker:n}=this.properties,s=this.ctx.highlightManager.getActiveHighlight();e.each((a,o)=>{if(!e.isGarbage(a)){const r=this.getHighlightState(s,t.isHighlight,o.datumIndex),l=this.getStyle(r),{stroke:c,strokeWidth:u,strokeOpacity:d}=l,g=this.makeItemStylerParams(this.dataModel,this.processedData,o.datumIndex,l.marker);o.style=this.getMarkerStyle(n,o,g,{isHighlight:i,highlightState:r},l.marker,{stroke:c,strokeWidth:u,strokeOpacity:d})}})}updateDatumNodes(t){const{contextNodeData:e}=this;if(!e)return;const{datumSelection:i,isHighlight:n}=t,s=this.ctx.animationManager.isSkipped(),a=this.getShapeFillBBox(),o=this.ctx.highlightManager.getActiveHighlight(),r=this.getDrawingMode(n,t.drawingMode);i.each((l,c)=>{const u=this.getHighlightState(o,n,c.datumIndex),d=c.style??e.styles[u];this.applyMarkerStyle(d,l,c.point,a,{applyTranslation:s,selected:c.selected}),l.drawingMode=this.resolveMarkerDrawingModeForState(r,d)}),n||this.properties.marker.markClean()}updateLabelSelection(t){return t.labelSelection.update(this.isLabelEnabled()?t.labelData:[])}updateLabelNodes(t){const{isHighlight:e=!1}=t,i=this.ctx.highlightManager?.getActiveHighlight(),n=this.makeLabelFormatterParams();t.labelSelection.each((s,a)=>{const o=Rp(this,a,n,this.properties.label,e,i),{enabled:r,fontStyle:l,fontWeight:c,fontSize:u,fontFamily:d,color:g}=o;r&&a?.labelText?(s.fontStyle=l,s.fontWeight=c,s.fontSize=u,s.fontFamily=d,s.textAlign="center",s.textBaseline="bottom",s.text=a.labelText,s.x=a.point.x,s.y=a.point.y-10,s.fill=g,s.visible=!0,s.fillOpacity=this.getHighlightStyle(e,a.datumIndex).opacity??1,s.setBoxing(o)):s.visible=!1})}makeStylerParams(t){const{id:e}=this,{marker:i,lineDash:n,lineDashOffset:s,stroke:a,strokeOpacity:o,strokeWidth:r,xKey:l,yKey:c}=this.properties,u=em(t??0);return{marker:{fill:i.fill,fillOpacity:i.fillOpacity,size:i.size,shape:i.shape,stroke:i.stroke,strokeOpacity:i.strokeOpacity,strokeWidth:i.strokeWidth,lineDash:i.lineDash,lineDashOffset:i.lineDashOffset},highlightState:u,lineDash:n,lineDashOffset:s,seriesId:e,stroke:a,strokeOpacity:o,strokeWidth:r,xKey:l,yKey:c}}makeItemStylerParams(t,e,i,n){const{xKey:s,yKey:a}=this.properties,o=t.resolveColumnById(this,"xValue",e)[i],r=t.resolveColumnById(this,"yValueRaw",e)[i],l=t.getDomain(this,"xValue","key",e).domain,c=t.getDomain(this,this.yCumulativeKey(e),"value",e).domain,u=this.filterItemStylerFillParams(n.fill)??n.fill;return{...WT(o,r,s,a,l,c),xValue:o,yValue:r,...n,fill:u}}makeLabelFormatterParams(){const{xKey:t,xName:e,yKey:i,yName:n,legendItemName:s}=this.properties;return{xKey:t,xName:e,yKey:i,yName:n,legendItemName:s}}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a}=this,{xKey:o,xName:r,yKey:l,yName:c,tooltip:u,legendItemName:d}=a,g=a.allowNullKeys??!1,f=s[z.X],y=s[z.Y];if(!i||!n||!f||!y)return;const x=n.dataSources.get(this.id)?.data?.[t],S=i.resolveColumnById(this,"xValue",n)[t],D=i.resolveColumnById(this,"yValueRaw",n)[t];if(S===void 0&&!g)return;const A=this.getStyle(),I=this.makeItemStylerParams(i,n,t,A.marker),w=this.getMarkerStyle(this.properties.marker,{datumIndex:t,datum:x},I,{isHighlight:!1},A.marker);return this.formatTooltipWithContext(u,{heading:this.getAxisValueText(f,"tooltip",S,x,o,d,g),symbol:this.legendItemSymbol(),data:[{label:c,fallbackLabel:l,value:this.getAxisValueText(y,"tooltip",D,x,l,d),missing:dp(D)}]},{seriesId:e,datum:x,title:c,xKey:o,xName:r,yKey:l,yName:c,...w,...this.getModuleTooltipParams()})}legendItemSymbol(){const{stroke:t,strokeOpacity:e,strokeWidth:i,lineDash:n,marker:s}=this.getStyle();return{marker:{...this.getMarkerStyle(this.properties.marker,{},void 0,{isHighlight:!1,checkForHighlight:!1},{size:s.size,shape:s.shape,fill:s.fill,fillOpacity:s.fillOpacity,stroke:s.stroke,strokeOpacity:s.strokeOpacity,strokeWidth:s.strokeWidth,lineDash:s.lineDash,lineDashOffset:s.lineDashOffset}),enabled:this.properties.marker.enabled},line:{enabled:!0,stroke:t,strokeOpacity:e,strokeWidth:i,lineDash:n}}}getLegendData(t){if(t!=="category")return[];const{id:e,ctx:{legendManager:i},visible:n}=this,{yKey:s,yName:a,title:o,legendItemName:r,showInLegend:l}=this.properties;return[{legendType:t,id:e,itemId:s,legendItemName:r,seriesId:e,enabled:n&&i.getItemEnabled({seriesId:e,itemId:s}),label:{text:r??o??a??s},symbol:this.legendItemSymbol(),hideInLegend:!l}]}updatePaths(t){this.updateLinePaths(t.paths,t.contextData)}updateLinePaths(t,e){const i=e.strokeData.spans,[n]=t;n.path.clear(),xL(n,i),n.markDirty("LineSeries")}resetDatumAnimation(t){lA([t.datumSelection])}animateEmptyUpdateReady(t){const{datumSelection:e,labelSelection:i,annotationSelections:n,contextData:s,paths:a}=t,{animationManager:o}=this.ctx;this.updateLinePaths(a,s),IL(this,o,...a),Qn([e],nx),DL(this,o,{...this.getAnimationDrawingModes(),phase:"initial"},e),Wi(this,"labels",o,i),Wi(this,"annotations",o,...n)}animateReadyResize(t){const{contextData:e,paths:i}=t;this.updateLinePaths(i,e),super.animateReadyResize(t)}animateWaitingUpdateReady(t){const{animationManager:e}=this.ctx,{datumSelection:i,labelSelection:n,annotationSelections:s,contextData:a,paths:o,previousContextData:r}=t,[l]=o;if(a.visible===!1&&r?.visible===!1)return;this.resetDatumAnimation(t),this.resetLabelAnimation(t);const c=()=>{this.resetPathAnimation(t),this.updateLinePaths(o,a)},u=()=>{e.skipCurrentBatch(),c()};if(a==null||r==null){c(),ix(this,e,"added",this.getAnimationDrawingModes(),i),Uc(this.id,"path_properties",e,[l],{opacity:0},{opacity:this.getOpacity()},{phase:"add"}),Wi(this,"labels",e,n),Wi(this,"annotations",e,...s);return}if(a.crossFiltering!==r.crossFiltering){u();return}const d=xit(a,r,this.processedData?.reduced?.diff?.[this.id],this.getOpacity());if(d===void 0){u();return}else if(d.status==="no-op")return;dn(this.id,"path_properties",e,[l],d.stroke.pathProperties),d.status==="added"?this.updateLinePaths(o,a):d.status==="removed"?this.updateLinePaths(o,r):EM(this.id,"path_update",e,[l],d.stroke.path),d.hasMotion&&(ix(this,e,void 0,this.getAnimationDrawingModes(),i),Wi(this,"labels",e,n),Wi(this,"annotations",e,...s)),this.ctx.animationManager.animate({id:this.id,groupId:"reset_after_animation",phase:"trailing",from:{},to:{},onComplete:()=>this.updateLinePaths(o,a)})}isLabelEnabled(){return this.properties.label.enabled}getBandScalePadding(){return{inner:1,outer:.1}}nodeFactory(){return new wn}getStyle(t){const{styler:e,marker:i,lineDash:n,lineDashOffset:s,stroke:a,strokeOpacity:o,strokeWidth:r}=this.properties,{size:l,shape:c,fill:u="transparent",fillOpacity:d}=i;let g={};if(e){const f=this.makeStylerParams(t),y=this.cachedCallWithContext(e,f)??{};g=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],y,{pick:!1})??{}}return g.marker??(g.marker={}),{lineDash:g.lineDash??n,lineDashOffset:g.lineDashOffset??s,stroke:g.stroke??a,strokeOpacity:g.strokeOpacity??o,strokeWidth:g.strokeWidth??r,marker:{fill:g.marker.fill??u,fillOpacity:g.marker.fillOpacity??d,shape:g.marker.shape??c,size:g.marker.size??l,lineDash:g.marker.lineDash??i.lineDash??n,lineDashOffset:g.marker.lineDashOffset??i.lineDashOffset??s,stroke:g.marker.stroke??i.stroke??a,strokeOpacity:g.marker.strokeOpacity??i.strokeOpacity??o,strokeWidth:g.marker.strokeWidth??i.strokeWidth??r}}}getFormattedMarkerStyle(t){const e=this.getStyle(),i=this.makeItemStylerParams(this.dataModel,this.processedData,t.datumIndex,e.marker);return this.getMarkerStyle(this.properties.marker,t,i,{isHighlight:!0},void 0,e)}computeFocusBounds(t){return cA(this,t)}hasItemStylers(){return this.properties.styler!=null||this.properties.marker.itemStyler!=null||this.properties.label.itemStyler!=null}};UL.className="LineSeries";UL.type="line";var Knt={series:{stroke:bx,strokeWidth:2,strokeOpacity:1,lineDash:[0],lineDashOffset:0,interpolation:{type:"linear"},marker:{shape:"circle",size:7,strokeWidth:{$isUserOption:["./stroke",1,0]},fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Sp],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"}},label:{...Oe,enabled:!1,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"}},tooltip:{range:{$if:[{$eq:[{$path:["/tooltip/range","nearest"]},"area"]},"nearest",{$path:["/tooltip/range","nearest"]}]},position:{anchorTo:{$path:["/tooltip/position/anchorTo","node"]}}},highlight:fD,segmentation:mD}},qW={type:"series",name:"line",chartType:"cartesian",stackable:!0,version:oi,dependencies:[hr],options:$x,predictAxis:Zx,defaultAxes:{y:{type:ie.NUMBER,position:he.LEFT},x:{type:ie.CATEGORY,position:he.BOTTOM}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},themeTemplate:Knt,create:t=>new UL(t)},WL=class extends gA{};WL.className="ScatterSeries";WL.type="scatter";var Ynt={series:{shape:"circle",size:7,fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Sp],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"},fillOpacity:.8,maxRenderedItems:2e3,label:{...Oe,enabled:!1,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"}},tooltip:{range:{$if:[{$eq:[{$path:["/tooltip/range","nearest"]},"area"]},"nearest",{$path:["/tooltip/range","nearest"]}]},position:{anchorTo:{$path:["/tooltip/position/anchorTo","node"]}}},highlight:Bc}},QW={type:"series",name:"scatter",chartType:"cartesian",version:oi,dependencies:[hr],options:Q3,predictAxis:dL,defaultAxes:{x:{type:ie.NUMBER,position:he.BOTTOM},y:{type:ie.NUMBER,position:he.LEFT}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},themeTemplate:Ynt,create:t=>new WL(t)},JW=class extends Ri{constructor(){super(...arguments),this.showInLegend=!1}};T([b],JW.prototype,"showInLegend",2);var KL=class extends Do{constructor(){super(...arguments),this.spacing=2}set(t,e){return super.set(t)}};T([b],KL.prototype,"text",2);T([b],KL.prototype,"spacing",2);var YL=class extends xt{constructor(){super(...arguments),this.fill="transparent",this.fillOpacity=1}};T([b],YL.prototype,"fill",2);T([b],YL.prototype,"fillOpacity",2);var mm=class extends Do{constructor(){super(...arguments),this.offset=3,this.minAngle=0,this.minSpacing=4,this.maxCollisionOffset=50,this.avoidCollisions=!0}};T([b],mm.prototype,"offset",2);T([b],mm.prototype,"minAngle",2);T([b],mm.prototype,"minSpacing",2);T([b],mm.prototype,"maxCollisionOffset",2);T([b],mm.prototype,"avoidCollisions",2);var $L=class extends Do{constructor(){super(...arguments),this.positionOffset=0,this.positionRatio=.5}};T([b],$L.prototype,"positionOffset",2);T([b],$L.prototype,"positionRatio",2);var ev=class extends xt{constructor(){super(...arguments),this.length=10,this.strokeWidth=1}};T([b],ev.prototype,"colors",2);T([b],ev.prototype,"length",2);T([b],ev.prototype,"strokeWidth",2);T([b],ev.prototype,"itemStyler",2);var me=class extends Fr{constructor(){super(...arguments),this.defaultColorRange=[],this.defaultPatternFills=[],this.fills=Object.values(un),this.strokes=Object.values(pc),this.fillOpacity=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.rotation=0,this.outerRadiusOffset=0,this.outerRadiusRatio=1,this.strokeWidth=1,this.sectorSpacing=0,this.hideZeroValueSectorsInLegend=!1,this.innerLabels=new ss(KL),this.title=new JW,this.innerCircle=new YL,this.shadow=new zl,this.calloutLabel=new mm,this.sectorLabel=new $L,this.calloutLine=new ev,this.tooltip=zp()}};T([b],me.prototype,"angleKey",2);T([b],me.prototype,"angleName",2);T([b],me.prototype,"angleFilterKey",2);T([b],me.prototype,"radiusKey",2);T([b],me.prototype,"radiusName",2);T([b],me.prototype,"radiusMin",2);T([b],me.prototype,"radiusMax",2);T([b],me.prototype,"calloutLabelKey",2);T([b],me.prototype,"calloutLabelName",2);T([b],me.prototype,"sectorLabelKey",2);T([b],me.prototype,"sectorLabelName",2);T([b],me.prototype,"legendItemKey",2);T([b],me.prototype,"defaultColorRange",2);T([b],me.prototype,"defaultPatternFills",2);T([b],me.prototype,"fills",2);T([b],me.prototype,"strokes",2);T([b],me.prototype,"fillOpacity",2);T([b],me.prototype,"strokeOpacity",2);T([b],me.prototype,"lineDash",2);T([b],me.prototype,"lineDashOffset",2);T([b],me.prototype,"cornerRadius",2);T([b],me.prototype,"itemStyler",2);T([b],me.prototype,"rotation",2);T([b],me.prototype,"outerRadiusOffset",2);T([b],me.prototype,"outerRadiusRatio",2);T([b],me.prototype,"innerRadiusOffset",2);T([b],me.prototype,"innerRadiusRatio",2);T([b],me.prototype,"strokeWidth",2);T([b],me.prototype,"sectorSpacing",2);T([b],me.prototype,"hideZeroValueSectorsInLegend",2);T([b],me.prototype,"innerLabels",2);T([b],me.prototype,"title",2);T([b],me.prototype,"innerCircle",2);T([b],me.prototype,"shadow",2);T([b],me.prototype,"calloutLabel",2);T([b],me.prototype,"sectorLabel",2);T([b],me.prototype,"calloutLine",2);T([b],me.prototype,"tooltip",2);function JC(t,e,i,n){const s=[i.convert(0),i.convert(1)],a=[n.convert(0),n.convert(1)],o=Math.PI/-2+Ze(e),r=t?"initial":"update",l=({radius:y})=>({innerRadius:s[0],outerRadius:s[0]+(s[1]-s[0])*y}),c=({radius:y})=>({innerRadius:a[0],outerRadius:a[0]+(a[1]-a[0])*y});return{nodes:{toFn:(y,x,S,{prevLive:D})=>{let{startAngle:A,endAngle:I,innerRadius:w,outerRadius:N}=x;const{stroke:O,fill:L}=x.sectorFormat;if(S==="removed"&&D?(A=D.datum?.endAngle,I=D.datum?.endAngle):S==="removed"&&!D&&(A=o,I=o),S==="removed"){const P=l(x);w=P.innerRadius,N=P.outerRadius}return{startAngle:A,endAngle:I,outerRadius:N,innerRadius:w,stroke:O,...typeof L=="string"?{fill:L}:{}}},fromFn:(y,x,S,{prevFromProps:D})=>{let{startAngle:A,endAngle:I,innerRadius:w,outerRadius:N}=y,{fill:O,stroke:L}=x.sectorFormat;if(S==="updated"&&y.previousDatum==null&&(S="added"),S==="unknown"||S==="added"&&!D?(A=o,I=o,w=x.innerRadius,N=x.outerRadius):S==="added"&&D&&(A=D.endAngle??o,I=D.endAngle??o,w=D.innerRadius??x.innerRadius,N=D.outerRadius??x.outerRadius),S==="added"&&!t){const P=c(x);w=P.innerRadius,N=P.outerRadius}return S==="updated"&&(O=y.fill??O,L=(typeof y.stroke=="string"?y.stroke:void 0)??L),{startAngle:A,endAngle:I,innerRadius:w,outerRadius:N,stroke:L,phase:r,...typeof O=="string"?{fill:O}:{}}}},innerCircle:{fromFn:(y,x)=>({size:y.previousDatum?.radius??y.size??0,phase:r}),toFn:(y,x)=>({size:x.radius??0})}}}function $nt(t,e){return{startAngle:e.startAngle,endAngle:e.endAngle,innerRadius:e.innerRadius,outerRadius:e.outerRadius,stroke:e.sectorFormat.stroke}}function Xnt(t,e){const i=e.y-t.centerY,n=e.x-t.centerX,s=Math.atan2(i,n),a=t.getItemNodes();for(const o of a)if(o.datum.missing!==!0&&Ba(s,o.startAngle,o.endAngle)){const r=Math.hypot(n,i);let l=0;return ro.outerRadius&&(l=r-o.outerRadius),{datum:o.datum,distance:l}}}var Znt=class extends qD{constructor(t,e,i,n){super(t,e,i,n),this.angleKey=n.properties.angleKey,this.radiusKey=n.properties.radiusKey,this.calloutLabelKey=n.properties.calloutLabelKey,this.sectorLabelKey=n.properties.sectorLabelKey}},fA=class extends CL{constructor(t){super({moduleCtx:t,categoryKey:void 0,propertyKeys:{...SW,sectorLabel:["sectorLabelKey"],calloutLabel:["calloutLabelKey"]},propertyNames:{...MW,sectorLabel:["sectorLabelName"],calloutLabel:["calloutLabelName"]},pickModes:[1,0],animationResetFns:{item:$nt,label:Pp}}),this.properties=new me,this.phantomNodeData=void 0,this.backgroundGroup=new Ds({name:`${this.id}-background`,zIndex:gl.BACKGROUND}),this.noVisibleData=!1,this.previousRadiusScale=new np,this.radiusScale=new np,this.phantomGroup=this.contentGroup.appendChild(new ee({name:"phantom",zIndex:-1})),this.phantomSelection=pn.select(this.phantomGroup,()=>this.nodeFactory(),!1),this.phantomHighlightGroup=this.highlightGroup.appendChild(new ee({name:"phantom",zIndex:-1})),this.phantomHighlightSelection=pn.select(this.phantomHighlightGroup,()=>this.nodeFactory(),!1),this.calloutLabelGroup=this.contentGroup.appendChild(new ee({name:"pieCalloutLabels"})),this.calloutLabelSelection=new pn(this.calloutLabelGroup,ee),this.zerosumRingsGroup=this.backgroundGroup.appendChild(new ee({name:`${this.id}-zerosumRings`})),this.zerosumOuterRing=this.zerosumRingsGroup.appendChild(new wn({shape:"circle"})),this.zerosumInnerRing=this.zerosumRingsGroup.appendChild(new wn({shape:"circle"})),this.innerLabelsGroup=this.contentGroup.appendChild(new ee({name:"innerLabels"})),this.innerCircleGroup=this.backgroundGroup.appendChild(new ee({name:`${this.id}-innerCircle`})),this.innerLabelsSelection=pn.select(this.innerLabelsGroup,Pa),this.innerCircleSelection=pn.select(this.innerCircleGroup,()=>new wn({shape:"circle"})),this.surroundingRadius=void 0,this.NodeEvent=Znt,this.angleScale=new np,this.angleScale.domain=[0,1],this.angleScale.range=[-Math.PI,Math.PI].map(e=>e+Math.PI/2),this.phantomGroup.opacity=.2,this.phantomHighlightGroup.opacity=.2,this.innerLabelsGroup.pointerEvents=1}get calloutNodeData(){return this.phantomNodeData??this.nodeData}attachSeries(t,e,i){super.attachSeries(t,e,i),t?.appendChild(this.backgroundGroup)}detachSeries(t,e,i){super.detachSeries(t,e,i),this.backgroundGroup.remove()}setZIndex(t){super.setZIndex(t),this.backgroundGroup.zIndex=[gl.BACKGROUND,t]}nodeFactory(){const t=new Ts;return t.miterLimit=1e9,t}getSeriesDomain(t){return t===z.Angle?{domain:this.angleScale.domain}:{domain:this.radiusScale.domain}}async processData(t){if(this.data==null)return;const{visible:e,id:i,ctx:{legendManager:n}}=this,{angleKey:s,angleFilterKey:a,radiusKey:o,calloutLabelKey:r,sectorLabelKey:l,legendItemKey:c}=this.properties,u=()=>(D,A)=>e&&n.getItemEnabled({seriesId:i,itemId:A})?D:0,d=!this.ctx.animationManager.isSkipped(),g=this.properties.allowNullKeys??!1,f=[],y=[];c?f.push(uu(c,"category",{id:"legendItemKey",allowNullKey:g})):r?f.push(uu(r,"category",{id:"calloutLabelKey",allowNullKey:g})):l&&f.push(uu(l,"category",{id:"sectorLabelKey",allowNullKey:g}));const x=this.radiusScale.type,S=this.angleScale.type;o&&y.push(D7(o,{id:"radiusValue",min:this.properties.radiusMin??0,max:this.properties.radiusMax,missingValue:this.properties.radiusMax??1,processor:u}),Ci(o,x,{id:"radiusRaw",processor:u}),wC("radiusValue",[0,1],1,this.properties.radiusMin??0,this.properties.radiusMax)),r&&y.push(Ci(r,"category",{id:"calloutLabelValue",allowNullKey:g})),l&&y.push(Ci(l,"category",{id:"sectorLabelValue",allowNullKey:g})),c&&y.push(Ci(c,"category",{id:"legendItemValue",allowNullKey:g})),a&&y.push(kN(a,S,{id:"angleFilterValue",onlyPositive:!0,invalidValue:0,processor:u}),Ci(a,S,{id:"angleFilterRaw"}),wC("angleFilterValue",[0,1],0,0)),d&&this.processedData?.reduced?.animationValidation?.uniqueKeys&&f.length>0&&y.push(GD(this.id,this.processedData)),y.push(Hx()),await this.requestDataModel(t,this.data,{props:[...f,kN(s,S,{id:"angleValue",onlyPositive:!0,invalidValue:0,processor:u}),Ci(s,S,{id:"angleRaw"}),wC("angleValue",[0,1],0,0),...y]});for(const D of this.processedData?.defs?.values??[]){const{id:A,missing:I,property:w}=D,N=VG(this,I);A!=="angleRaw"&&N>0&&pt.warnOnce(`no value was found for the key '${String(w)}' on ${N} data element${N>1?"s":""}`)}this.animationState.transition("updateData")}maybeRefreshNodeData(){if(!this.nodeDataRefresh)return;const{nodeData:t=[],phantomNodeData:e}=this.createNodeData()??{};this.nodeData=t,this.phantomNodeData=e,t.length>0&&Vr.record(`${this.type}:nodeData`,t.length),this.nodeDataRefresh=!1}getProcessedDataValues(t,e){const i=t.resolveColumnById(this,"angleValue",e),n=t.resolveColumnById(this,"angleRaw",e),s=this.properties.angleFilterKey==null?void 0:t.resolveColumnById(this,"angleFilterValue",e),a=this.properties.angleFilterKey==null?void 0:t.resolveColumnById(this,"angleFilterRaw",e),o=this.properties.radiusKey?t.resolveColumnById(this,"radiusValue",e):void 0,r=this.properties.radiusKey?t.resolveColumnById(this,"radiusRaw",e):void 0,l=this.properties.calloutLabelKey?t.resolveColumnById(this,"calloutLabelValue",e):void 0,c=this.properties.sectorLabelKey?t.resolveColumnById(this,"sectorLabelValue",e):void 0,u=this.properties.legendItemKey?t.resolveColumnById(this,"legendItemValue",e):void 0;return{angleValues:i,angleRawValues:n,angleFilterValues:s,angleFilterRawValues:a,radiusValues:o,radiusRawValues:r,calloutLabelValues:l,sectorLabelValues:c,legendItemValues:u}}createNodeData(){const{id:t,processedData:e,dataModel:i,angleScale:n,ctx:{legendManager:s},visible:a}=this,{rotation:o,innerRadiusRatio:r}=this.properties;if(!i||e?.type!=="ungrouped")return;const l=this.getProcessedDataValues(i,e),{angleValues:c,angleRawValues:u,angleFilterValues:d,angleFilterRawValues:g,radiusValues:f,radiusRawValues:y,legendItemValues:x}=l,S=g?.some((L,R)=>L>u[R])??!1;let D=0,A=0;const I=[],w=g==null?void 0:[],N=e.dataSources.get(this.id)?.data??[],O=e.invalidData?.get(this.id);for(const[L,R]of N.entries()){if(O?.[L]===!0)continue;const P=S?d[L]:c[L],B=g!=null&&!S?Math.sqrt(g[L]/u[L]):1,F=n.convert(D)+Ze(o);D=P,A+=P;const H=n.convert(D)+Ze(o),$=Math.abs(H-F),Y=F+$/2,U=u[L],Z=(f?.[L]??1)*B,W=y?.[L],q=x?.[L],nt=this.getLabels(L,R,Y,$,l),G=this.getItemStyle({datum:R,datumIndex:L},!1),et={series:this,datum:R,datumIndex:L,angleValue:U,midAngle:Y,midCos:Math.cos(Y),midSin:Math.sin(Y),startAngle:F,endAngle:H,radius:Z,innerRadius:Math.max(this.radiusScale.convert(0),0),outerRadius:Math.max(this.radiusScale.convert(Z),0),sectorFormat:G,radiusValue:W,legendItemValue:q,enabled:a&&s.getItemEnabled({seriesId:t,itemId:L}),focusable:!0,...nt};I.push(et),w?.push({...et,radius:1,innerRadius:Math.max(this.radiusScale.convert(0),0),outerRadius:Math.max(this.radiusScale.convert(1),0),focusable:!1})}return this.zerosumOuterRing.visible=A===0,this.zerosumInnerRing.visible=A===0&&r!=null&&r!==1&&r>0,{itemId:t,nodeData:I,labelData:I,phantomNodeData:w}}getLabelContent(t,e,i){const{id:n,ctx:s,properties:a}=this,{formatManager:o}=s,{calloutLabel:r,sectorLabel:l,calloutLabelKey:c,sectorLabelKey:u,legendItemKey:d}=a,g=a.allowNullKeys??!1,f=i.calloutLabelValues?.[t],y=i.sectorLabelValues?.[t],x=i.legendItemValues?.[t],S={datum:e,angleKey:this.properties.angleKey,angleName:this.properties.angleName,radiusKey:this.properties.radiusKey,radiusName:this.properties.radiusName,calloutLabelKey:this.properties.calloutLabelKey,calloutLabelName:this.properties.calloutLabelName,sectorLabelKey:this.properties.sectorLabelKey,sectorLabelName:this.properties.sectorLabelName,legendItemKey:this.properties.legendItemKey},D={callout:void 0,sector:void 0,legendItem:void 0};if(c&&(D.callout=this.getLabelText(f,e,c,"calloutLabel",[],r,{...S,value:f},g)),u&&(D.sector=this.getLabelText(y,e,u,"sectorLabel",[],l,{...S,value:y},g)),d!=null&&(x!=null||g)){const A=x??"";D.legendItem=o.format(this.callWithContext.bind(this),{type:"category",value:g?x:A,datum:e,seriesId:n,legendItemName:void 0,key:d,source:"legend-label",property:"legendItem",domain:[],boundSeries:this.getFormatterContext("legendItem")})??A}return D}getLabels(t,e,i,n,s){const{properties:a}=this,{calloutLabel:o,sectorLabel:r,legendItemKey:l}=a,c=this.getLabelContent(t,e,s),u={};return o.enabled&&c.callout&&n>=Ze(o.minAngle)&&(u.calloutLabel={...this.getTextAlignment(i),text:c.callout,hidden:!1,collisionTextAlign:void 0,collisionOffsetY:0,box:void 0}),r.enabled&&c.sector&&(u.sectorLabel={text:c.sector}),l&&c.legendItem&&(u.legendItem={key:l,text:c.legendItem}),u}getTextAlignment(t){const e=[{textAlign:"center",textBaseline:"bottom"},{textAlign:"left",textBaseline:"middle"},{textAlign:"center",textBaseline:"top"},{textAlign:"right",textBaseline:"middle"}],i=uM(t),n=-.75*Math.PI,s=i-n,a=Math.floor(s/(Math.PI/2)),o=D4(a,e.length);return e[o]}getFillParams(t,e,i){if(!(!an(t)||t.bounds==="item"))return{centerX:0,centerY:0,innerRadius:e,outerRadius:i}}getItemStyle({datum:t,datumIndex:e},i,n,s){const{fills:a,strokes:o,itemStyler:r}=this.properties,l=o[e],c=a[e],{fill:u,fillOpacity:d,stroke:g,strokeWidth:f,strokeOpacity:y,lineDash:x,lineDashOffset:S,cornerRadius:D,opacity:A}=Et(this.getHighlightStyle(i,e,n,s),{fill:c,stroke:l},this.properties);let I;return r&&(I=this.cachedDatumCallback(this.getDatumId(e)+(i?"-highlight":"-hide"),()=>{const w=this.makeItemStylerParams(t,e,i,{fill:u,fillOpacity:d,stroke:g,strokeWidth:f,strokeOpacity:y,lineDash:x,lineDashOffset:S,cornerRadius:D});return this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.callWithContext(r,w),{proxyPaths:{fill:["fills",`${e}`],stroke:["strokes",`${e}`]}})})),{fill:I?.fill??u,fillOpacity:I?.fillOpacity??d,stroke:I?.stroke??g,strokeWidth:I?.strokeWidth??f,strokeOpacity:I?.strokeOpacity??y,lineDash:I?.lineDash??x,lineDashOffset:I?.lineDashOffset??S,cornerRadius:I?.cornerRadius??D,opacity:A}}makeItemStylerParams(t,e,i,n){const{angleKey:s,radiusKey:a,calloutLabelKey:o,sectorLabelKey:r,legendItemKey:l}=this.properties,c=this.filterItemStylerFillParams(n.fill)??n.fill;return{datum:t,angleKey:s,radiusKey:a,calloutLabelKey:o,sectorLabelKey:r,legendItemKey:l,...n,fill:c,highlightState:this.getHighlightStateString(this.ctx.highlightManager?.getActiveHighlight(),i,e),seriesId:this.id}}getCalloutLineStyle(t,e){const{properties:i}=this;let n={};if(i.calloutLine.itemStyler){const s=this.getHighlightStateString(this.ctx.highlightManager?.getActiveHighlight(),e,t.datumIndex),a={angleKey:i.angleKey,angleName:i.angleName??i.angleKey,calloutLabelKey:i.calloutLabelKey,calloutLabelName:i.calloutLabelName??i.calloutLabelKey,datum:t.datum,highlightState:s,legendItemKey:i.legendItemKey,radiusKey:i.radiusKey,radiusName:i.radiusName??i.radiusKey,sectorLabelKey:i.sectorLabelKey,sectorLabelName:i.sectorLabelName??i.sectorLabelKey,seriesId:this.id};n=this.cachedCallWithContext(i.calloutLine.itemStyler,a)??{}}return{length:n.length??i.calloutLine.length,strokeWidth:n.strokeWidth??i.calloutLine.strokeWidth,color:n.color,colors:i.calloutLine.colors}}getInnerRadius(){const{radius:t}=this,{innerRadiusRatio:e=1,innerRadiusOffset:i=0}=this.properties,n=t*e+i;return n===t||n<0?0:n}getOuterRadius(){const{outerRadiusRatio:t,outerRadiusOffset:e}=this.properties;return Math.max(this.radius*t+e,0)}updateRadiusScale(t){const e=[this.getInnerRadius(),this.getOuterRadius()];this.radiusScale.range=e,t&&(this.previousRadiusScale.range=e);const i=n=>({...n,innerRadius:Math.max(this.radiusScale.convert(0),0),outerRadius:Math.max(this.radiusScale.convert(n.radius),0)});this.nodeData=this.nodeData.map(i),this.phantomNodeData=this.phantomNodeData?.map(i)}getTitleTranslationY(){const t=Math.max(0,this.radiusScale.range[1]);if(t===0)return Number.NaN;const i=2+(this.properties.title?.spacing??0),n=Math.max(0,-t);return-t-i-n}update({seriesRect:t}){const{title:e}=this.properties,i={seriesRectWidth:t?.width,seriesRectHeight:t?.height},n=or(this.nodeDataDependencies,i)!=null;if(n&&(this._nodeDataDependencies=i),this.maybeRefreshNodeData(),this.updateTitleNodes(),this.updateRadiusScale(n),this.contentGroup.translationX=this.centerX,this.contentGroup.translationY=this.centerY,this.highlightGroup.translationX=this.centerX,this.highlightGroup.translationY=this.centerY,this.backgroundGroup.translationX=this.centerX,this.backgroundGroup.translationY=this.centerY,this.labelGroup&&(this.labelGroup.translationX=this.centerX,this.labelGroup.translationY=this.centerY),e){const s=this.getTitleTranslationY();e.node.y=Number.isFinite(s)?s:0;const a=e.node.getBBox();e.node.visible=e.enabled&&Number.isFinite(s)&&!this.bboxIntersectsSurroundingSeries(a)}for(const s of[this.zerosumInnerRing,this.zerosumOuterRing])s.fillOpacity=0,s.stroke=this.properties.calloutLabel.color,s.strokeWidth=1,s.strokeOpacity=1;this.updateNodeMidPoint(),this.updateSelections(),this.updateNodes(t)}updateTitleNodes(){const{oldTitle:t}=this,{title:e}=this.properties;t!==e&&(t&&t.node.remove(),e&&(e.node.textBaseline="bottom",this.labelGroup?.appendChild(e.node)),this.oldTitle=e)}updateNodeMidPoint(){const t=e=>{const i=e.innerRadius+(e.outerRadius-e.innerRadius)/2;e.midPoint={x:e.midCos*Math.max(0,i),y:e.midSin*Math.max(0,i)}};for(const e of this.nodeData)t(e);if(this.phantomNodeData)for(const e of this.phantomNodeData)t(e)}updateSelections(){this.updateGroupSelection(),this.updateInnerCircleSelection()}updateGroupSelection(){const{itemSelection:t,highlightSelection:e,phantomSelection:i,phantomHighlightSelection:n,calloutLabelSelection:s,labelSelection:a,highlightLabelSelection:o,innerLabelsSelection:r}=this,l=this.nodeData.map(d=>({...d,sectorFormat:{...d.sectorFormat}})),c=this.phantomNodeData?.map(d=>({...d,sectorFormat:{...d.sectorFormat}})),u=(d,g)=>{d.update(g,void 0,f=>this.getDatumId(f.datumIndex)),this.ctx.animationManager.isSkipped()&&d.cleanup()};u(t,this.nodeData),u(e,l),u(i,this.phantomNodeData??[]),u(n,c??[]),s.update(this.calloutNodeData,d=>{const g=new mo;g.tag=0,g.pointerEvents=1,d.appendChild(g);const f=new Pa;f.tag=1,f.pointerEvents=1,d.appendChild(f)}),a.update(this.nodeData),o.update(l),r.update(this.properties.innerLabels,d=>{d.pointerEvents=1})}updateInnerCircleSelection(){const{innerCircle:t}=this.properties;let e=0;const i=this.getInnerRadius();if(i>0){const s=Math.min(i,this.getOuterRadius());e=Math.ceil(s*2+1)}const n=t?[{radius:e}]:[];this.innerCircleSelection.update(n)}updateNodes(t){const e=this.ctx.highlightManager.getActiveHighlight(),{visible:i,dataModel:n,processedData:s}=this;if(this.backgroundGroup.visible=i,this.contentGroup.visible=i,!n||!s)return;const{legendItemValues:a}=this.getProcessedDataValues(n,s),o=this.isSeriesHighlighted(e,a),r=this.ctx.chartService.highlight?.drawingMode??"overlay";this.highlightGroup.visible=i&&o,this.labelGroup.visible=i,this.innerCircleSelection.each((f,{radius:y})=>{f.setProperties({fill:this.properties.innerCircle?.fill,opacity:this.properties.innerCircle?.fillOpacity,size:y})});const l=this.radiusScale.range[0],c=this.radiusScale.range[1],u=this.getShapeFillBBox(),d=this.ctx.animationManager.isSkipped(),g=(f,y,x,S,D)=>{const A=this.getItemStyle(y,S,void 0,a);y.sectorFormat.fill=A.fill,y.sectorFormat.stroke=A.stroke,d&&(f.startAngle=y.startAngle,f.endAngle=y.endAngle,f.innerRadius=y.innerRadius,f.outerRadius=y.outerRadius),(S||d)&&(f.fill=A.fill,f.stroke=A.stroke);const I=this.getFillParams(A.fill,l,c);f.setStyleProperties(A,u,I),f.drawingMode=D,f.cornerRadius=A.cornerRadius,f.fillShadow=this.properties.shadow;const w=Math.max((this.properties.sectorSpacing+(A.stroke==null?0:A.strokeWidth))/2,0);f.inset=w,f.lineJoin=this.properties.sectorSpacing>=0||w>0?"miter":"round"};this.itemSelection.each((f,y,x)=>g(f,y,x,!1,"overlay")),this.phantomSelection.each((f,y,x)=>g(f,y,x,!1,"overlay")),this.highlightSelection.each((f,y,x)=>{g(f,y,x,!0,r),f.visible=y.datumIndex===e?.datumIndex}),this.phantomHighlightSelection.each((f,y,x)=>{g(f,y,x,!0,r),f.visible=y.datumIndex===e?.datumIndex}),this.updateCalloutLineNodes(),this.updateCalloutLabelNodes(t),this.updateSectorLabelNodes(),this.updateInnerLabelNodes(),this.updateZerosumRings(),this.animationState.transition("update")}updateCalloutLineNodes(){const{strokes:t}=this.properties,{offset:e}=this.properties.calloutLabel,i=this.ctx.highlightManager?.getActiveHighlight(),n=this.isSeriesHighlighted(i);for(const s of this.calloutLabelSelection.selectByTag(0)){const a=s.closestDatum(),o=n&&this.isItemHighlighted(i,a.datumIndex)===!0,{length:r,strokeWidth:l,color:c,colors:u}=this.getCalloutLineStyle(a,!1),d=l,g=jj(u)?u:t,{calloutLabel:f,outerRadius:y,datumIndex:x}=a;if(f?.text&&!f.hidden&&y!==0){s.visible=!0,s.strokeWidth=d,s.stroke=c??g[x%g.length],s.strokeOpacity=this.getHighlightStyle(o,a.datumIndex).opacity??1,s.fill=void 0;const S=a.midCos*y,D=a.midSin*y;let A=a.midCos*(y+r),I=a.midSin*(y+r);if((f.collisionTextAlign??f.collisionOffsetY!==0)&&f.box!=null){const N=f.box;let O=A,L=I;AN.x+N.width&&(O=N.x+N.width),IN.y+N.height&&(L=N.y+N.height);const R=O-A,P=L-I,B=Math.sqrt(Math.pow(R,2)+Math.pow(P,2)),F=B-e;F>0&&(A=A+R*F/B,I=I+P*F/B)}s.x1=S,s.y1=D,s.x2=A,s.y2=I}else s.visible=!1}}getLabelOverflow(t,e){const i=-this.centerX,n=i+e.width,s=-this.centerY,a=s+e.height,o=1;let r=t.width;t.x+on&&(r=(n-t.x)/t.width);const l=t.y+oa,c=this.bboxIntersectsSurroundingSeries(t);return{maxWidth:r,hasVerticalOverflow:l,hasSurroundingSeriesOverflow:c}}bboxIntersectsSurroundingSeries(t){const{surroundingRadius:e}=this;if(e==null)return!1;const i=[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}],n=e**2;return i.some(s=>s.x**2+s.y**2>n)}computeCalloutLabelCollisionOffsets(){const{radiusScale:t}=this,{calloutLabel:e}=this.properties,{offset:i,minSpacing:n}=e,s=t.convert(0),a=S=>!S.calloutLabel||S.outerRadius===0,o=this.calloutNodeData,r=o.filter(S=>!a(S));for(const S of r){const D=S.calloutLabel;D!=null&&(D.hidden=!1,D.collisionTextAlign=void 0,D.collisionOffsetY=0)}if(r.length<=1)return;const l=r.filter(S=>S.midCos<0).sort((S,D)=>S.midSin-D.midSin),c=r.filter(S=>S.midCos>=0).sort((S,D)=>S.midSin-D.midSin),u=r.filter(S=>S.midSin<0&&S.calloutLabel?.textAlign==="center").sort((S,D)=>S.midCos-D.midCos),d=r.filter(S=>S.midSin>=0&&S.calloutLabel?.textAlign==="center").sort((S,D)=>S.midCos-D.midCos),g=S=>{const D=S.calloutLabel;if(D==null)return Tt.zero.clone();const A=this.getLabelStyle(S,e,"calloutLabel"),I=Lf(A),w=this.getCalloutLineStyle(S,!1).length,N=S.outerRadius+w+i,O=S.midCos*N,L=S.midSin*N+D.collisionOffsetY,R=D.collisionTextAlign??D.textAlign,P=D.textBaseline;return Pa.measureBBox(D.text,O,L,{font:this.properties.calloutLabel,textAlign:R,textBaseline:P}).grow(I)},f=(S,D,A)=>{const I=g(S).grow(n/2),w=g(D).grow(n/2);I.xw.x&&(A==="to-top"?I.yw.y)&&(D.calloutLabel.collisionOffsetY=A==="to-top"?I.y-w.y-w.height:I.y+I.height-w.y)},y=S=>{const D=S.slice().sort((I,w)=>Math.abs(I.midSin)-Math.abs(w.midSin))[0],A=S.indexOf(D);for(let I=A-1;I>=0;I--){const w=S[I+1],N=S[I];f(w,N,"to-top")}for(let I=A+1;I{const D=r.some(L=>L.calloutLabel.collisionOffsetY!==0),A=S.map(L=>g(L)),I=A.map(L=>L.clone().grow(n/2));let w=!1;for(let L=0;L{const{startAngle:R,endAngle:P,outerRadius:B}=L;return{startAngle:R,endAngle:P,innerRadius:s,outerRadius:B}}),O=A.some(L=>N.some(R=>Eit(L,R)));if(!(!w&&!D&&!O))for(const L of S){if(L.calloutLabel.textAlign!=="center")continue;const R=L.calloutLabel;L.midCos<0?R.collisionTextAlign="right":L.midCos>0?R.collisionTextAlign="left":R.collisionTextAlign="center"}};y(l),y(c),x(u),x(d)}getLabelStyle(t,e,i,n=!1){const s=this.ctx.highlightManager?.getActiveHighlight();return Rp(this,t,this.properties,e,n,s,["series",`${this.declarationOrder}`,i])}updateCalloutLabelNodes(t){const{radiusScale:e}=this,{calloutLabel:i}=this.properties,n=new Pa,s=this.ctx.highlightManager?.getActiveHighlight(),a=this.isSeriesHighlighted(s);for(const o of this.calloutLabelSelection.selectByTag(1)){const r=o.closestDatum(),l=r.calloutLabel,c=e.convert(r.radius),u=Math.max(0,c);if(!l?.text||u===0||l.hidden){o.visible=!1;continue}const d=a&&this.isItemHighlighted(s,r.datumIndex)===!0,g=this.getLabelStyle(r,i,"calloutLabel",d),f=this.getCalloutLineStyle(r,!1).length,y=u+f+i.offset,x=r.midCos*y,S=r.midSin*y+l.collisionOffsetY,D={textAlign:l.collisionTextAlign??l.textAlign,textBaseline:l.textBaseline};n.text=l.text,n.x=x,n.y=S,n.setFont(g),n.setAlign(D),n.setBoxing(g);const A=n.getBBox();let I=l.text,w=!0;if(i.avoidCollisions){const{maxWidth:N,hasVerticalOverflow:O}=this.getLabelOverflow(A,t);if(A.width>N){const L={font:this.properties.calloutLabel,textWrap:"on-space",overflow:"hide",maxWidth:N};I=Lx(l.text,L)}w=!O}o.text=I,o.x=x,o.y=S,o.setFont(g),o.setAlign(D),o.setBoxing(g),o.fill=g.color,o.fillOpacity=this.getHighlightStyle(d,r.datumIndex).opacity??1,o.visible=w}}computeLabelsBBox(t,e){const{calloutLabel:i}=this.properties,{offset:n,maxCollisionOffset:s,minSpacing:a}=i;if(!i.avoidCollisions)return null;this.maybeRefreshNodeData(),this.updateRadiusScale(!1),this.computeCalloutLabelCollisionOffsets();const o=[],r=new Pa;let l;const{title:c}=this.properties;if(c?.text&&c.enabled){const u=this.getTitleTranslationY();Number.isFinite(u)&&(r.text=c.text,r.x=0,r.y=u,r.setFont(c),r.setAlign({textBaseline:"bottom",textAlign:"center"}),l=r.getBBox(),o.push(l))}for(const u of this.calloutNodeData){const d=u.calloutLabel;if(!d||u.outerRadius===0)continue;const g=this.getLabelStyle(u,i,"calloutLabel"),f=this.getCalloutLineStyle(u,!1).length,y=u.outerRadius+f+n,x=u.midCos*y,S=u.midSin*y+d.collisionOffsetY;r.text=d.text,r.x=x,r.y=S,r.setFont(g),r.setAlign({textAlign:d.collisionTextAlign??d.textAlign,textBaseline:d.textBaseline}),r.setBoxing(g);const D=r.getBBox();if(d.box=D,Math.abs(d.collisionOffsetY)>s){d.hidden=!0;continue}if(l){const A=-this.centerY,I=new Tt(l.x-a,A,l.width+2*a,l.y+l.height+a-A);if(D.collidesBBox(I)){d.hidden=!0;continue}}if(t.hideWhenNecessary){const{maxWidth:A,hasVerticalOverflow:I,hasSurroundingSeriesOverflow:w}=this.getLabelOverflow(D,e),N=D.width>A;if(I||N||w){d.hidden=!0;continue}}d.hidden=!1,o.push(D)}return o.length===0?null:Tt.merge(o)}updateSectorLabelNodes(){const{properties:t}=this,{positionOffset:e,positionRatio:i}=this.properties.sectorLabel,n=this.ctx.highlightManager?.getActiveHighlight(),s=this.isSeriesHighlighted(n),a=this.radiusScale.convert(0),o=a<=0&&this.ctx.legendManager.getData(this.id)?.filter(c=>c.enabled).length===1,r={textAlign:"center",textBaseline:"middle"},l=c=>c.each((u,d)=>{const{outerRadius:g,startAngle:f,endAngle:y}=d,x=s&&this.isItemHighlighted(n,d.datumIndex)===!0;let S=!1;if(d.sectorLabel&&g!==0){const D=this.getLabelStyle(d,t.sectorLabel,"sectorLabel",x),A=a*(1-i)+g*i+e;u.fill=D.color,u.fillOpacity=this.getHighlightStyle(x,d.datumIndex).opacity??1,u.text=d.sectorLabel.text,o?(u.x=0,u.y=0):(u.x=d.midCos*A,u.y=d.midSin*A),u.setFont(D),u.setAlign(r),u.setBoxing(D);const I=u.getBBox(),w=[[I.x,I.y],[I.x+I.width,I.y],[I.x+I.width,I.y+I.height],[I.x,I.y+I.height]],N={startAngle:f,endAngle:y,innerRadius:a,outerRadius:g};w.every(([O,L])=>YN(O,L,N))&&(S=!0)}u.visible=S});l(this.labelSelection),l(this.highlightLabelSelection)}updateInnerLabelNodes(){const t=[],e=[];this.innerLabelsSelection.each((u,d)=>{const{fontStyle:g,fontWeight:f,fontSize:y,fontFamily:x,color:S}=d;u.fontStyle=g,u.fontWeight=f,u.fontSize=y,u.fontFamily=x,u.text=d.text,u.x=0,u.y=0,u.fill=S,u.textAlign="center",t.push(u.getBBox()),e.push(d.spacing)});const i=u=>u===0?0:e[u],n=u=>u===e.length-1?0:e[u],s=t.reduce((u,d)=>Math.max(u,d.width),0),a=t.reduce((u,d,g)=>u+d.height+i(g)+n(g),0),o=this.getInnerRadius(),l=Math.sqrt(Math.pow(s/2,2)+Math.pow(a/2,2))<=(o>0?o:this.getOuterRadius()),c=[];for(let u=0,d=-a/2;u{u.visible=l,Array.isArray(u.text)?u.y=c[g]-t[g].height:u.y=c[g]})}updateZerosumRings(){this.zerosumOuterRing.size=this.getOuterRadius()*2,this.zerosumInnerRing.size=this.getInnerRadius()*2}pickNodeClosestDatum(t){return Xnt(this,t)}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s,ctx:{formatManager:a}}=this,{legendItemKey:o,calloutLabelKey:r,calloutLabelName:l,sectorLabelKey:c,sectorLabelName:u,angleKey:d,angleName:g,radiusKey:f,radiusName:y,tooltip:x}=s,S=this.properties.title.node.getPlainText();if(!i||!n)return;const D=n.dataSources.get(this.id)?.data?.[t],A=this.getProcessedDataValues(i,n),{angleRawValues:I}=A,w=I[t],N=this.getLabelContent(t,D,A),O=N.legendItem??N.callout??N.sector??g,L=Lb(i.getDomain(this,"angleRaw","value",n)),R=a.format(this.callWithContext.bind(this),{type:"number",value:w,datum:D,seriesId:e,legendItemName:void 0,key:d,source:"tooltip",property:"angle",domain:L,boundSeries:this.getFormatterContext("angle"),fractionDigits:void 0,visibleDomain:void 0})??Or(w,3);return this.formatTooltipWithContext(x,{title:S,symbol:this.legendItemSymbol(t),data:[{label:ce(O),fallbackLabel:d,value:R}]},{seriesId:e,datum:D,title:g,legendItemKey:o,calloutLabelKey:r,calloutLabelName:l,sectorLabelKey:c,sectorLabelName:u,angleKey:d,angleName:g,radiusKey:f,radiusName:y,...this.getItemStyle({datum:D,datumIndex:t},!1)})}legendItemSymbol(t){const e=this.processedData?.dataSources.get(this.id)?.data?.[t],i=this.getItemStyle({datum:e,datumIndex:t},!1),{fillOpacity:n,strokeOpacity:s,strokeWidth:a,lineDash:o,lineDashOffset:r}=this.properties;let{fill:l}=i;const{stroke:c}=i;return an(l)&&(l={...l,gradient:"linear",rotation:0,reverse:!1}),{marker:{fill:l,stroke:c,fillOpacity:n,strokeOpacity:s,strokeWidth:a,lineDash:o,lineDashOffset:r}}}getLegendData(t){const{visible:e,processedData:i,dataModel:n,id:s,ctx:{legendManager:a}}=this;if(!n||!i||t!=="category")return[];const{angleKey:o,calloutLabelKey:r,sectorLabelKey:l,legendItemKey:c,showInLegend:u}=this.properties;if(!c&&(!r||r===o)&&(!l||l===o))return[];const d=this.getProcessedDataValues(n,i),{angleRawValues:g}=d,f=this.properties.title?.showInLegend&&this.properties.title.text,y=[],x=this.properties.hideZeroValueSectorsInLegend,S=i.dataSources.get(this.id)?.data,D=i.invalidData?.get(this.id);for(let A=0;Ace(L)).join(" - ")},symbol:this.legendItemSymbol(A),legendItemName:c==null?void 0:I[c],hideInLegend:!u})}return y}setLegendState(t){const{id:e,ctx:{legendManager:i,eventsHub:n}}=this;for(const[s,a]of t.entries())i.toggleItem(a,e,s);i.update(),n.emit("chart:request-update",{type:Ct.SERIES_UPDATE})}animateEmptyUpdateReady(t){const{animationManager:e}=this.ctx,i=JC(!0,this.properties.rotation,this.radiusScale,this.previousRadiusScale);dn(this.id,"nodes",e,[this.itemSelection,this.highlightSelection,this.phantomSelection,this.phantomHighlightSelection],i.nodes,(n,s)=>this.getDatumId(s.datumIndex)),dn(this.id,"innerCircle",e,[this.innerCircleSelection],i.innerCircle),Wi(this,"callout",e,this.calloutLabelSelection),Wi(this,"sector",e,this.labelSelection,this.highlightLabelSelection),Wi(this,"inner",e,this.innerLabelsSelection),this.previousRadiusScale.range=this.radiusScale.range}animateWaitingUpdateReady(){const{itemSelection:t,highlightSelection:e,phantomSelection:i,phantomHighlightSelection:n,processedData:s,radiusScale:a,previousRadiusScale:o}=this,{animationManager:r}=this.ctx,l=s?.reduced?.diff?.[this.id];this.ctx.animationManager.stopByAnimationGroupId(this.id);const c=(l?.moved.size??0)===0,u=(s?.defs.keys.length??0)>0,d=s?.reduced?.animationValidation?.uniqueKeys??!0;(!c||!u||!d)&&this.ctx.animationManager.skipCurrentBatch();const g=!this.nodeData.some(y=>y.enabled),f=JC(!1,this.properties.rotation,a,o);dn(this.id,"nodes",r,[t,e,i,n],f.nodes,(y,x)=>this.getDatumId(x.datumIndex),l),dn(this.id,"innerCircle",r,[this.innerCircleSelection],f.innerCircle),Wi(this,"callout",this.ctx.animationManager,this.calloutLabelSelection),Wi(this,"sector",this.ctx.animationManager,this.labelSelection,this.highlightLabelSelection),this.noVisibleData!==g&&(this.noVisibleData=g,Wi(this,"inner",this.ctx.animationManager,this.innerLabelsSelection)),this.previousRadiusScale.range=this.radiusScale.range}animateClearingUpdateEmpty(){const{itemSelection:t,highlightSelection:e,phantomSelection:i,phantomHighlightSelection:n,radiusScale:s,previousRadiusScale:a}=this,{animationManager:o}=this.ctx,r=JC(!1,this.properties.rotation,s,a);dn(this.id,"nodes",o,[t,e,i,n],r.nodes,(l,c)=>this.getDatumId(c.datumIndex)),dn(this.id,"innerCircle",o,[this.innerCircleSelection],r.innerCircle),$S(this,"callout",this.ctx.animationManager,this.calloutLabelSelection),$S(this,"sector",this.ctx.animationManager,this.labelSelection,this.highlightLabelSelection),$S(this,"inner",this.ctx.animationManager,this.innerLabelsSelection),this.previousRadiusScale.range=this.radiusScale.range}getDatumId(t){const{dataModel:e,processedData:i}=this;if(!e||!i)return`${t}`;const{calloutLabelKey:n,sectorLabelKey:s,legendItemKey:a}=this.properties;if(!i.reduced?.animationValidation?.uniqueKeys)return`${t}`;if(a){const o=e.resolveKeysById(this,"legendItemKey",i);return As(o[t])}else if(n){const o=e.resolveKeysById(this,"calloutLabelKey",i);return As(o[t])}else if(s){const o=e.resolveKeysById(this,"sectorLabelKey",i);return As(o[t])}return`${t}`}hasItemStylers(){return!(this.properties.itemStyler==null&&this.properties.calloutLabel.itemStyler==null&&this.properties.sectorLabel.itemStyler==null&&this.properties.innerLabels.every(t=>t.itemStyler==null))}};fA.className="DonutSeries";fA.type="donut";var ZN={series:{title:{enabled:!0,fontWeight:{$ref:"fontWeight"},fontSize:{$rem:Cn.LARGE},fontFamily:{$ref:"fontFamily"},color:{$ref:"subtleTextColor"},spacing:5},calloutLabel:{...Oe,enabled:!0,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"},offset:3,minAngle:.001},sectorLabel:{...Oe,enabled:!0,fontWeight:{$ref:"fontWeight"},fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},color:{$ref:"chartBackgroundColor"},positionOffset:0,positionRatio:.5},calloutLine:{length:10,strokeWidth:2,colors:{$map:[{$if:[{$or:[{$isGradient:{$value:"$1"}},{$isPattern:{$value:"$1"}},{$isImage:{$value:"$1"}}]},{$path:["../../strokes/$index",{$ref:"foregroundColor"}]},{$value:"$1"}]},{$if:[{$eq:[{$path:"../strokeWidth"},0]},{$path:"../fills"},{$path:"../strokes"}]}]}},fills:{$applyCycle:[{$cacheMax:{$size:{$path:["./data",{$path:"/data"}]}}},{$palette:"fills"},{$applySwitch:[{$path:["/type",void 0,{$value:"$1"}]},{$value:"$1"},["gradient",X4],["pattern",Cs],["image",$s]]}]},strokes:{$applyCycle:[{$cacheMax:{$size:{$path:["./data",{$path:"/data"}]}}},{$palette:"strokes"}]},fillOpacity:1,strokeOpacity:1,strokeWidth:{$isUserOption:["./strokes/0",2,0]},lineDash:[0],lineDashOffset:0,rotation:0,sectorSpacing:1,shadow:{enabled:!1,color:Dp,xOffset:3,yOffset:3,blur:5},highlight:_1},legend:{enabled:!0}},qnt={...ZN,series:{...ZN.series,innerRadiusRatio:{$if:[{$eq:[{$path:["./innerRadiusOffset",void 0]},void 0]},.7,void 0]},innerLabels:{$apply:{...Oe,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"},spacing:2}},highlight:_1}},Qnt={type:"series",name:"donut",chartType:"polar",version:oi,dependencies:[OL],options:eU,themeTemplate:qnt,create:t=>new fA(t)},XL=class extends fA{};XL.className="PieSeries";XL.type="pie";var Jnt={type:"series",name:"pie",chartType:"polar",version:oi,dependencies:[OL],options:Rl,themeTemplate:ZN,create:t=>new XL(t)},ZL=class extends Ln{constructor(t){super(),this.ctx=t,this.localeText=void 0}};T([Bi(t=>{t.ctx.localeManager.setLocaleText(t.localeText)}),b],ZL.prototype,"localeText",2);T([Bi(t=>{t.ctx.localeManager.setLocaleTextFormatter(t.getLocaleText)}),b],ZL.prototype,"getLocaleText",2);var tK={type:"plugin",name:"locale",version:oi,options:{localeText:Nu,getLocaleText:Is(K)},create:t=>new ZL(t)},tst={type:"axis",name:"number",chartType:"cartesian",version:oi,dependencies:[hr],options:Kg,themeTemplate:{line:{enabled:!1}},create:t=>new Ao(t)},est={type:"axis",name:"log",chartType:"cartesian",version:oi,dependencies:[hr],options:Yg,themeTemplate:{base:10,line:{enabled:!1}},create:t=>new fm(t)},ist={type:"axis",name:"time",chartType:"cartesian",version:oi,dependencies:[hr],options:$g,themeTemplate:{gridLine:{enabled:!1}},create:t=>new Pl(t)},nst={type:"axis",name:"category",chartType:"cartesian",version:oi,dependencies:[hr],options:Ug,themeTemplate:{groupPaddingInner:.1,label:{autoRotate:!0,wrapping:"on-space"},gridLine:{enabled:!1},interval:{placement:"between"}},create:t=>new qx(t)},sst={type:"axis",name:"grouped-category",chartType:"cartesian",version:oi,dependencies:[hr],options:Wg,themeTemplate:{tick:{enabled:!0,stroke:{$ref:"separationLinesColor"}},label:{spacing:10,rotation:270,wrapping:"on-space"},maxThicknessRatio:.5,paddingInner:.4,groupPaddingInner:.2},create:t=>new Qx(t)},$c=class extends IW{constructor(t){super(t,new eu,!1),this.defaultTickMinSpacing=20,this.parentLevel=new cm,this.min=void 0,this.max=void 0,this.preferredMin=void 0,this.preferredMax=void 0,this.unit=void 0,this.defaultUnit=void 0}get primaryLabel(){return this.parentLevel.enabled?this.parentLevel.label:void 0}get primaryTick(){return this.parentLevel.enabled?this.parentLevel.tick:void 0}hasDefinedDomain(){const{min:t,max:e}=this;return t!=null&&e!=null&&tnew $c(t)},ost=[tst,est,ist,nst,sst,ast],rst=[UW,WW,$W,XW,qW,QW],lst=[ost,rst,jW,tK].flat(),cst=[OL,Qnt,Jnt,jW,tK],hst=[lst,cst,Qit].flat(),ust={};Ap(ust,{Arc:()=>Bl,BBox:()=>Tt,Caption:()=>Ri,CategoryScale:()=>Of,Group:()=>ee,Line:()=>mo,LinearScale:()=>np,Marker:()=>wn,Path:()=>Tn,RadialColumnShape:()=>Gr,Rect:()=>On,Scene:()=>HD,Sector:()=>Ts,Shape:()=>Ip,TranslatableGroup:()=>Ds,getRadialColumnWidth:()=>TW,toRadians:()=>Ze});var eK={};Ap(eK,{ChartTheme:()=>Pr,getChartTheme:()=>NM,resolveOperation:()=>gst,themeNames:()=>pst,themeSymbols:()=>dst,themes:()=>cL});G9(eK,_9);var dst={DEFAULT_ANNOTATION_HANDLE_FILL:vx,DEFAULT_ANNOTATION_STATISTICS_COLOR:Dx,DEFAULT_ANNOTATION_STATISTICS_DIVIDER_STROKE:Ax,DEFAULT_ANNOTATION_STATISTICS_DOWN_FILL:Gb,DEFAULT_ANNOTATION_STATISTICS_DOWN_STROKE:Ub,DEFAULT_ANNOTATION_STATISTICS_FILL:Sx,DEFAULT_ANNOTATION_STATISTICS_STROKE:Mx,DEFAULT_CAPTION_ALIGNMENT:Qh,DEFAULT_CAPTION_LAYOUT_STYLE:qh,DEFAULT_FIBONACCI_STROKES:jb,DEFAULT_FINANCIAL_CHARTS_ANNOTATION_BACKGROUND_FILL:Ws,DEFAULT_FINANCIAL_CHARTS_ANNOTATION_COLOR:ra,DEFAULT_POLAR_SERIES_STROKE:xD,DEFAULT_SHADOW_COLOUR:Dp,DEFAULT_SPARKLINE_CROSSHAIR_STROKE:vD,DEFAULT_TEXTBOX_COLOR:Cx,DEFAULT_TEXTBOX_FILL:Ix,DEFAULT_TEXTBOX_STROKE:kx,DEFAULT_TEXT_ANNOTATION_COLOR:SD,DEFAULT_TOOLBAR_POSITION:wx,IS_DARK_THEME:Qd,PALETTE_ALT_DOWN_FILL:q1,PALETTE_ALT_DOWN_STROKE:X1,PALETTE_ALT_NEUTRAL_FILL:Q1,PALETTE_ALT_NEUTRAL_STROKE:J1,PALETTE_ALT_UP_FILL:Z1,PALETTE_ALT_UP_STROKE:$1,PALETTE_DOWN_FILL:W1,PALETTE_DOWN_STROKE:G1,PALETTE_NEUTRAL_FILL:Y1,PALETTE_NEUTRAL_STROKE:K1,PALETTE_UP_FILL:U1,PALETTE_UP_STROKE:j1},pst=Object.keys(cL);function gst(t){const e=Pr.getDefaultPublicParameters(),i=Pr.getDefaultColors();return new FU({line:{operation:t}},{series:[{type:"line"}]},e,i).resolve().operation}var fst={};Ap(fst,{Color:()=>se,interpolateColor:()=>TG});Jo.create.bind(Jo),Jo.__createSparkline.bind(Jo);function LV(t,e){return{...t,container:e.current}}function mst(t,e){const i=Ei.forwardRef(function(s,a){const{options:o,style:r,className:l}=s,c=Ei.useRef(null),u=Ei.useRef();Ei.useLayoutEffect(()=>{const g=t(LV(o,c));return u.current=g,()=>{g.destroy()}},[]);const d=u.current===void 0;return Ei.useEffect(()=>{d||u.current?.update(LV(o,c)).catch(g=>console.error(g))},[o]),Ei.useImperativeHandle(a,()=>u.current,[]),Ei.useMemo(()=>Ei.createElement("div",{ref:c,style:r,className:l}),[r,l])});return i.displayName=e,i}var yst=mst(t=>Jo.create(t),"AgCharts"),bst=Object.defineProperty,M=(t,e,i,n)=>{for(var s=void 0,a=t.length-1,o;a>=0;a--)(o=t[a])&&(s=o(e,i,s)||s);return s&&bst(e,i,s),s},Vl=class extends xt{constructor(){super(),this.opacity=1,this.loadedSynchronously=!0,this.containerWidth=0,this.containerHeight=0,this.onLoad=void 0,this.onImageLoad=()=>{this.loadedSynchronously||(this.node.visible=!1,this.performLayout(this.containerWidth,this.containerHeight),this.onLoad?.())},this.imageElement=$t("img"),this.imageElement.onload=this.onImageLoad,this.node=new j.Image(this.imageElement)}get complete(){return this.imageElement.width>0&&this.imageElement.height>0}performLayout(t,e){this.containerWidth=t,this.containerHeight=e;const i={width:t,height:e},n=uT(this.imageElement.width,this.imageElement.height,i,this);return this.node.setProperties(this.complete?{visible:!0,opacity:this.opacity,...n}:{visible:!1}),n}};M([b],Vl.prototype,"top");M([b],Vl.prototype,"right");M([b],Vl.prototype,"bottom");M([b],Vl.prototype,"left");M([b],Vl.prototype,"width");M([b],Vl.prototype,"height");M([b],Vl.prototype,"opacity");M([qi("imageElement.src"),Bi(t=>t.loadedSynchronously=t.complete)],Vl.prototype,"url");var iK=class extends j.Background{constructor(){super(...arguments),this.image=new Vl}onLayoutComplete(t){if(super.onLayoutComplete(t),this.image){const{width:e,height:i}=t.chart;this.image.performLayout(e,i)}}onImageLoad(){this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER})}};M([b,Pe({newValue(t){this.node.appendChild(t.node),t.onLoad=()=>this.onImageLoad()},oldValue(t){t.node.remove(),t.onLoad=void 0}})],iK.prototype,"image");var mA=class extends j.Background{constructor(){super(...arguments),this.image=new Vl,this.fill="transparent",this.fillOpacity=void 0}createNode(){return new j.Group({name:"foreground",zIndex:pe.FOREGROUND})}onLayoutComplete(t){super.onLayoutComplete(t);const{width:e,height:i}=t.chart,n=this.image.performLayout(e,i);this.text&&this.updateTextNode(n)}onImageLoad(){this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER})}updateTextNode(t){const{textNode:e}=this;e.fontWeight="bold",e.fontFamily="Impact, sans-serif",e.fontSize=19,e.opacity=.7,e.fill="#9b9b9b",e.textBaseline="top";const{width:i}=e.getBBox(),n=10;e.x=t.x+t.width/2-i/2,e.y=t.y+t.height+n}};M([b,Pe({newValue(t){this.node.appendChild(t.node),t.onLoad=()=>this.onImageLoad()},oldValue(t){t.node.remove(),t.onLoad=void 0}})],mA.prototype,"image");M([b,pi("rectNode","fill")],mA.prototype,"fill");M([b,pi("rectNode","fillOpacity")],mA.prototype,"fillOpacity");var xst=class{constructor(){this.ieCompatibility=!1}init(){this.ieCompatibility=this.md5("hello")!="5d41402abc4b2a76b9719d911017c592"}md5cycle(t,e){let i=t[0],n=t[1],s=t[2],a=t[3];i=this.ff(i,n,s,a,e[0],7,-680876936),a=this.ff(a,i,n,s,e[1],12,-389564586),s=this.ff(s,a,i,n,e[2],17,606105819),n=this.ff(n,s,a,i,e[3],22,-1044525330),i=this.ff(i,n,s,a,e[4],7,-176418897),a=this.ff(a,i,n,s,e[5],12,1200080426),s=this.ff(s,a,i,n,e[6],17,-1473231341),n=this.ff(n,s,a,i,e[7],22,-45705983),i=this.ff(i,n,s,a,e[8],7,1770035416),a=this.ff(a,i,n,s,e[9],12,-1958414417),s=this.ff(s,a,i,n,e[10],17,-42063),n=this.ff(n,s,a,i,e[11],22,-1990404162),i=this.ff(i,n,s,a,e[12],7,1804603682),a=this.ff(a,i,n,s,e[13],12,-40341101),s=this.ff(s,a,i,n,e[14],17,-1502002290),n=this.ff(n,s,a,i,e[15],22,1236535329),i=this.gg(i,n,s,a,e[1],5,-165796510),a=this.gg(a,i,n,s,e[6],9,-1069501632),s=this.gg(s,a,i,n,e[11],14,643717713),n=this.gg(n,s,a,i,e[0],20,-373897302),i=this.gg(i,n,s,a,e[5],5,-701558691),a=this.gg(a,i,n,s,e[10],9,38016083),s=this.gg(s,a,i,n,e[15],14,-660478335),n=this.gg(n,s,a,i,e[4],20,-405537848),i=this.gg(i,n,s,a,e[9],5,568446438),a=this.gg(a,i,n,s,e[14],9,-1019803690),s=this.gg(s,a,i,n,e[3],14,-187363961),n=this.gg(n,s,a,i,e[8],20,1163531501),i=this.gg(i,n,s,a,e[13],5,-1444681467),a=this.gg(a,i,n,s,e[2],9,-51403784),s=this.gg(s,a,i,n,e[7],14,1735328473),n=this.gg(n,s,a,i,e[12],20,-1926607734),i=this.hh(i,n,s,a,e[5],4,-378558),a=this.hh(a,i,n,s,e[8],11,-2022574463),s=this.hh(s,a,i,n,e[11],16,1839030562),n=this.hh(n,s,a,i,e[14],23,-35309556),i=this.hh(i,n,s,a,e[1],4,-1530992060),a=this.hh(a,i,n,s,e[4],11,1272893353),s=this.hh(s,a,i,n,e[7],16,-155497632),n=this.hh(n,s,a,i,e[10],23,-1094730640),i=this.hh(i,n,s,a,e[13],4,681279174),a=this.hh(a,i,n,s,e[0],11,-358537222),s=this.hh(s,a,i,n,e[3],16,-722521979),n=this.hh(n,s,a,i,e[6],23,76029189),i=this.hh(i,n,s,a,e[9],4,-640364487),a=this.hh(a,i,n,s,e[12],11,-421815835),s=this.hh(s,a,i,n,e[15],16,530742520),n=this.hh(n,s,a,i,e[2],23,-995338651),i=this.ii(i,n,s,a,e[0],6,-198630844),a=this.ii(a,i,n,s,e[7],10,1126891415),s=this.ii(s,a,i,n,e[14],15,-1416354905),n=this.ii(n,s,a,i,e[5],21,-57434055),i=this.ii(i,n,s,a,e[12],6,1700485571),a=this.ii(a,i,n,s,e[3],10,-1894986606),s=this.ii(s,a,i,n,e[10],15,-1051523),n=this.ii(n,s,a,i,e[1],21,-2054922799),i=this.ii(i,n,s,a,e[8],6,1873313359),a=this.ii(a,i,n,s,e[15],10,-30611744),s=this.ii(s,a,i,n,e[6],15,-1560198380),n=this.ii(n,s,a,i,e[13],21,1309151649),i=this.ii(i,n,s,a,e[4],6,-145523070),a=this.ii(a,i,n,s,e[11],10,-1120210379),s=this.ii(s,a,i,n,e[2],15,718787259),n=this.ii(n,s,a,i,e[9],21,-343485551),t[0]=this.add32(i,t[0]),t[1]=this.add32(n,t[1]),t[2]=this.add32(s,t[2]),t[3]=this.add32(a,t[3])}cmn(t,e,i,n,s,a){return e=this.add32(this.add32(e,t),this.add32(n,a)),this.add32(e<>>32-s,i)}ff(t,e,i,n,s,a,o){return this.cmn(e&i|~e&n,t,e,s,a,o)}gg(t,e,i,n,s,a,o){return this.cmn(e&n|i&~n,t,e,s,a,o)}hh(t,e,i,n,s,a,o){return this.cmn(e^i^n,t,e,s,a,o)}ii(t,e,i,n,s,a,o){return this.cmn(i^(e|~n),t,e,s,a,o)}md51(t){const e=t.length,i=[1732584193,-271733879,-1732584194,271733878];let n;for(n=64;n<=t.length;n+=64)this.md5cycle(i,this.md5blk(t.substring(n-64,n)));t=t.substring(n-64);const s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(n=0;n>2]|=t.charCodeAt(n)<<(n%4<<3);if(s[n>>2]|=128<<(n%4<<3),n>55)for(this.md5cycle(i,s),n=0;n<16;n++)s[n]=0;return s[14]=e*8,this.md5cycle(i,s),i}md5blk(t){const e=[];for(let i=0;i<64;i+=4)e[i>>2]=t.charCodeAt(i)+(t.charCodeAt(i+1)<<8)+(t.charCodeAt(i+2)<<16)+(t.charCodeAt(i+3)<<24);return e}rhex(t){const e="0123456789abcdef".split("");let i="",n=0;for(;n<4;n++)i+=e[t>>n*8+4&15]+e[t>>n*8&15];return i}hex(t){for(let e=0;e>16)+(e>>16)+(i>>16)<<16|i&65535}};function tw(t){return t==null||t.length===0}var vst="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU4IiBoZWlnaHQ9IjQwIiB2aWV3Qm94PSIwIDAgMjU4IDQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMjUuNzc5IDI4LjY1N0gxMy4zNTlMMTEuMTczIDM0LjAxMkg1LjY3Mjk3TDE3LjE4MiA3LjA1OTk5SDIxLjk1M0wzMy40NjIgMzQuMDEySDI3Ljk2MkwyNS43NzYgMjguNjU3SDI1Ljc3OVpNMjQuMDY4IDI0LjM5N0wxOS41ODggMTMuNDM0TDE1LjEwNyAyNC4zOTdIMjQuMDY4Wk02Mi4wOTIgMTguODIzSDQ5LjgxN1YyMy4wODZINTYuNzc1QzU2LjU1NSAyNS4yMjIgNTUuNzU1IDI2LjkyNyA1NC4zNzIgMjguMjAyQzUyLjk4OSAyOS40NzYgNTEuMTY2IDMwLjExNSA0OC45MDkgMzAuMTE1QzQ3LjYyMiAzMC4xMTUgNDYuNDUgMjkuODg1IDQ1LjM5MyAyOS40MjNDNDQuMzU4MyAyOC45NzgxIDQzLjQzMjYgMjguMzEzOCA0Mi42OCAyNy40NzZDNDEuOTI3IDI2LjYzOSA0MS4zNDQgMjUuNjMxIDQwLjkzMSAyNC40NTNDNDAuNTE5IDIzLjI3NSA0MC4zMTEgMjEuOTcgNDAuMzExIDIwLjUzN0M0MC4zMTEgMTkuMTA1IDQwLjUxNiAxNy44IDQwLjkzMSAxNi42MjFDNDEuMzQ0IDE1LjQ0MyA0MS45MjcgMTQuNDM2IDQyLjY4IDEzLjU5OEM0My40Mzc2IDEyLjc1NzcgNDQuMzY5NiAxMi4wOTMyIDQ1LjQxMSAxMS42NTFDNDYuNDc4IDExLjE4OSA0Ny42NTYgMTAuOTYgNDguOTQ2IDEwLjk2QzUxLjYxMiAxMC45NiA1My42MzcgMTEuNjAyIDU1LjAyIDEyLjg4NUw1OC4zIDkuNjA0OTlDNTUuODE3IDcuNjY5OTkgNTIuNjc2IDYuNjk5OTkgNDguODcyIDYuNjk5OTlDNDYuNzYgNi42OTk5OSA0NC44NTMgNy4wMzQ5OSA0My4xNTQgNy43MDA5OUM0MS40NTUgOC4zNjc5OSAzOS45OTggOS4zMDM5OSAzOC43ODMgMTAuNTA0QzM3LjU2NyAxMS43MDcgMzYuNjM0IDEzLjE1OCAzNS45NzcgMTQuODU3QzM1LjMxOSAxNi41NTYgMzQuOTk0IDE4LjQ1MSAzNC45OTQgMjAuNTRDMzQuOTk0IDIyLjYzIDM1LjMyOSAyNC40OTQgMzUuOTk1IDI2LjIwNUMzNi42NjIgMjcuOTE2IDM3LjYwNSAyOS4zNzQgMzguODE3IDMwLjU3N0M0MC4wMzIgMzEuNzggNDEuNDg2IDMyLjcxMyA0My4xODggMzMuMzgzQzQ0Ljg4OCAzNC4wNDkgNDYuNzgyIDM0LjM4NCA0OC44NzIgMzQuMzg0QzUwLjk2MSAzNC4zODQgNTIuNzUgMzQuMDQ5IDU0LjM5IDMzLjM4M0M1Ni4wMzEgMzIuNzE2IDU3LjQyNiAzMS43OCA1OC41NzkgMzAuNTc3QzU5LjczMyAyOS4zNzQgNjAuNjE5IDI3LjkxNiA2MS4yMzkgMjYuMjA1QzYxLjg2IDI0LjQ5NCA2Mi4xNyAyMi42MDUgNjIuMTcgMjAuNTRDNjIuMTY5NiAxOS45Njg4IDYyLjE0NDUgMTkuMzk4IDYyLjA5NSAxOC44MjlMNjIuMDkyIDE4LjgyM1pNMTUxLjgxIDE2Ljk4MUMxNTMuNDEgMTQuNjA5IDE1Ny40MTkgMTQuMzU4IDE1OS4wMjIgMTQuMzU4VjE4LjkxQzE1Ni45NTcgMTguOTEgMTU0Ljk4NSAxOC45OTYgMTUzLjc1NyAxOS44OTJDMTUyLjUyOSAyMC43OTIgMTUxLjkxOSAyMS45ODIgMTUxLjkxOSAyMy40NjRWMzMuOTlIMTQ2Ljk2NFYxNC4zNThIMTUxLjczNkwxNTEuODEgMTYuOTgxWk0xNDMuMDExIDE0LjM2MVYzNC4wMzFIMTM4LjI0TDEzOC4xMzEgMzEuMDQ1QzEzNy40NjYgMzIuMDc2IDEzNi41NTEgMzIuOTIxOSAxMzUuNDcxIDMzLjUwNEMxMzQuMzc2IDM0LjA5OSAxMzMuMDY4IDM0LjM5NiAxMzEuNTM2IDM0LjM5NkMxMzAuMiAzNC4zOTYgMTI4Ljk2MyAzNC4xNTIgMTI3LjgyMiAzMy42NjhDMTI2LjcgMzMuMTk2NCAxMjUuNjg5IDMyLjQ5NSAxMjQuODU1IDMxLjYwOUMxMjQuMDE4IDMwLjcyMiAxMjMuMzU0IDI5LjY2MiAxMjIuODcxIDI4LjQyMkMxMjIuMzg0IDI3LjE4NSAxMjIuMTQyIDI1LjgxMSAxMjIuMTQyIDI0LjMwNEMxMjIuMTQyIDIyLjc5OCAxMjIuMzg0IDIxLjM3OCAxMjIuODcxIDIwLjExNkMxMjMuMzU3IDE4Ljg1NCAxMjQuMDE4IDE3Ljc3MiAxMjQuODU1IDE2Ljg3M0MxMjUuNjg4IDE1Ljk3NjQgMTI2LjY5OCAxNS4yNjM2IDEyNy44MjIgMTQuNzhDMTI4Ljk2MyAxNC4yODEgMTMwLjIwMyAxNC4wMzMgMTMxLjUzNiAxNC4wMzNDMTMzLjA0MyAxNC4wMzMgMTM0LjMzIDE0LjMxOCAxMzUuMzk3IDE0Ljg4OEMxMzYuNDYyIDE1LjQ1ODkgMTM3LjM3NSAxNi4yNzggMTM4LjA1NyAxNy4yNzZWMTQuMzYxSDE0My4wMTFaTTEzMi42MzEgMzAuMTMzQzEzNC4yNTYgMzAuMTMzIDEzNS41NjcgMjkuNTk0IDEzNi41NjUgMjguNTEyQzEzNy41NjEgMjcuNDMgMTM4LjA2IDI1Ljk5MSAxMzguMDYgMjQuMTk2QzEzOC4wNiAyMi40MDEgMTM3LjU2MSAyMC45OSAxMzYuNTY1IDE5Ljg5OUMxMzUuNTcgMTguODA3IDEzNC4yNTkgMTguMjU4IDEzMi42MzEgMTguMjU4QzEzMS4wMDMgMTguMjU4IDEyOS43MjkgMTguODA0IDEyOC43MzQgMTkuODk5QzEyNy43MzggMjAuOTkzIDEyNy4yMzkgMjIuNDM4IDEyNy4yMzkgMjQuMjMzQzEyNy4yMzkgMjYuMDI4IDEyNy43MzUgMjcuNDMzIDEyOC43MzQgMjguNTE1QzEyOS43MjkgMjkuNTk0IDEzMS4wMjggMzAuMTM2IDEzMi42MzEgMzAuMTM2VjMwLjEzM1pNOTMuNjk4IDI3Ljg3NkM5My41Nzk1IDI4LjAwMjUgOTMuNDU2NCAyOC4xMjQ2IDkzLjMyOSAyOC4yNDJDOTEuOTQ3IDI5LjUxNiA5MC4xMjMgMzAuMTU1IDg3Ljg2NiAzMC4xNTVDODYuNTggMzAuMTU1IDg1LjQwOCAyOS45MjYgODQuMzUgMjkuNDY0QzgzLjMxNTUgMjkuMDE4OSA4Mi4zODk4IDI4LjM1NDYgODEuNjM3IDI3LjUxN0M4MC44ODQgMjYuNjc5IDgwLjMwMSAyNS42NzIgNzkuODg5IDI0LjQ5NEM3OS40NzYgMjMuMzE1IDc5LjI2OSAyMi4wMSA3OS4yNjkgMjAuNTc4Qzc5LjI2OSAxOS4xNDUgNzkuNDczIDE3Ljg0IDc5Ljg4OSAxNi42NjJDODAuMzAxIDE1LjQ4NCA4MC44ODQgMTQuNDc2IDgxLjYzNyAxMy42MzlDODIuMzk0OSAxMi43OTg3IDgzLjMyNzMgMTIuMTM0MiA4NC4zNjkgMTEuNjkyQzg1LjQzNiAxMS4yMyA4Ni42MTQgMTEgODcuOTAzIDExQzkwLjU3IDExIDkyLjU5NSAxMS42NDIgOTMuOTc3IDEyLjkyNkw5Ny4yNTggOS42NDQ5OUM5NC43NzQgNy43MTA5OSA5MS42MzMgNi43Mzk5OSA4Ny44MjkgNi43Mzk5OUM4NS43MTggNi43Mzk5OSA4My44MTEgNy4wNzQ5OSA4Mi4xMTIgNy43NDE5OUM4MC40MTMgOC40MDc5OSA3OC45NTYgOS4zNDQ5OSA3Ny43NCAxMC41NDVDNzYuNTI1IDExLjc0NyA3NS41OTIgMTMuMTk5IDc0LjkzNCAxNC44OThDNzQuMjc3IDE2LjU5NyA3My45NTEgMTguNDkxIDczLjk1MSAyMC41ODFDNzMuOTUxIDIyLjY3IDc0LjI4NiAyNC41MzQgNzQuOTUzIDI2LjI0NUM3NS42MTkgMjcuOTU3IDc2LjU2MiAyOS40MTQgNzcuNzc0IDMwLjYxN0M3OC45OSAzMS44MiA4MC40NDQgMzIuNzUzIDgyLjE0NiAzMy40MjNDODMuODQ1IDM0LjA5IDg1LjczOSAzNC40MjQgODcuODI5IDM0LjQyNEM4OS45MTkgMzQuNDI0IDkxLjcwOCAzNC4wOSA5My4zNDggMzMuNDIzQzk0LjcxOCAzMi44NjUgOTUuOTE4IDMyLjEyMSA5Ni45NDggMzEuMTkxQzk3LjE0OSAzMS4wMDggOTcuMzQ4IDMwLjgxNSA5Ny41MzcgMzAuNjJMOTMuNzAxIDI3Ljg4NUw5My42OTggMjcuODc2Wk0xMTAuODAyIDE0LjAxNUMxMDkuMTk5IDE0LjAxNSAxMDYuODM2IDE0LjQ3MSAxMDUuNjExIDE2LjE1OEwxMDUuNTM3IDYuMDE1OTlIMTAwLjc2NVYzMy45MzlIMTA1LjcyVjIyLjY0MUMxMDUuNzcxIDIxLjQ2MDcgMTA2LjI4OCAyMC4zNDg4IDEwNy4xNTcgMTkuNTQ4OUMxMDguMDI3IDE4Ljc0OTEgMTA5LjE3OCAxOC4zMjY2IDExMC4zNTggMTguMzc0QzExMy4zOTcgMTguMzc0IDExNC4yNjggMjEuMTU5IDExNC4yNjggMjIuNjQxVjMzLjkzOUgxMTkuMjIzVjIxLjA1OUMxMTkuMjIzIDIxLjA1OSAxMTkuMTQyIDE0LjAxNSAxMTAuODAyIDE0LjAxNVpNMTczLjc2MyAxNC4zNThIMTY5Ljk5OVY4LjcxNDk5SDE2NS4wNDhWMTQuMzU4SDE2MS4yODRWMTguOTE2SDE2NS4wNDhWMzQuMDAzSDE2OS45OTlWMTguOTE2SDE3My43NjNWMTQuMzU4Wk0xOTAuNzg3IDI1LjI2MkMxOTAuMTI5IDI0LjUwMTQgMTg5LjMwNyAyMy44OTk0IDE4OC4zODQgMjMuNTAxQzE4Ny40ODggMjMuMTE3IDE4Ni4zMzEgMjIuNzMyIDE4NC45NDggMjIuMzY0QzE4NC4xNjUgMjIuMTQzOSAxODMuMzkgMjEuODk3OCAxODIuNjIzIDIxLjYyNkMxODIuMTYzIDIxLjQ2MjEgMTgxLjc0MSAyMS4yMDY2IDE4MS4zODMgMjAuODc1QzE4MS4yMzUgMjAuNzQyMSAxODEuMTE4IDIwLjU3ODkgMTgxLjAzOSAyMC4zOTY0QzE4MC45NjEgMjAuMjE0IDE4MC45MjIgMjAuMDE2NiAxODAuOTI3IDE5LjgxOEMxODAuOTI3IDE5LjI3MiAxODEuMTU2IDE4Ljg0NCAxODEuNjI1IDE4LjUxQzE4Mi4xMjEgMTguMTU2IDE4Mi44NjIgMTcuOTc2IDE4My44MjYgMTcuOTc2QzE4NC43OSAxNy45NzYgMTg1LjU4NyAxOC4yMDkgMTg2LjE0OCAxOC42NjhDMTg2LjcwNiAxOS4xMjQgMTg3LjAwNyAxOS43MjUgMTg3LjA3MiAyMC41TDE4Ny4wOTQgMjAuNzgySDE5MS42MzNMMTkxLjYxNyAyMC40NkMxOTEuNTIxIDE4LjQ4NSAxOTAuNzcxIDE2LjkgMTg5LjM4NSAxNS43NUMxODguMDEyIDE0LjYxMiAxODYuMTg1IDE0LjAzMyAxODMuOTYyIDE0LjAzM0MxODIuNDc3IDE0LjAzMyAxODEuMTQxIDE0LjI4NyAxNzkuOTk0IDE0Ljc4NkMxNzguODMxIDE1LjI5MSAxNzcuOTI2IDE1Ljk5NSAxNzcuMjk2IDE2Ljg4MkMxNzYuNjczIDE3Ljc0NTUgMTc2LjMzOCAxOC43ODQgMTc2LjM0MSAxOS44NDlDMTc2LjM0MSAyMS4xNjcgMTc2LjY5OCAyMi4yNDkgMTc3LjM5OSAyMy4wNjRDMTc4LjA2IDIzLjg0MzIgMTc4Ljg5OCAyNC40NTM0IDE3OS44NDIgMjQuODQ0QzE4MC43NDQgMjUuMjE2IDE4MS45MjggMjUuNjA3IDE4My4zNjEgMjZDMTg0LjgwNiAyNi40MSAxODUuODcyIDI2Ljc4NSAxODYuNTMgMjcuMTIzQzE4Ny4xIDI3LjQxNCAxODcuMzc5IDI3Ljg0NSAxODcuMzc5IDI4LjQ0NEMxODcuMzc5IDI5LjA0MiAxODcuMTIyIDI5LjQ2NyAxODYuNTk1IDI5LjgzOUMxODYuMDQzIDMwLjIyNiAxODUuMjM3IDMwLjQyNSAxODQuMjAxIDMwLjQyNUMxODMuMTY2IDMwLjQyNSAxODIuMzk0IDMwLjE3NCAxODEuNzQ5IDI5LjY3NEMxODEuMTEzIDI5LjE4MSAxODAuNzcyIDI4LjU4OSAxODAuNzEgMjcuODY0TDE4MC42ODUgMjcuNTgySDE3Ni4wMTNMMTc2LjAyNSAyNy45MDFDMTc2LjA2NyAyOS4wOTU1IDE3Ni40NzIgMzAuMjQ4NyAxNzcuMTg4IDMxLjIwNkMxNzcuOTA3IDMyLjE4IDE3OC44OTMgMzIuOTU4IDE4MC4xMTggMzMuNTE5QzE4MS4zMzYgMzQuMDc3IDE4Mi43MzIgMzQuMzYyIDE4NC4yNjYgMzQuMzYyQzE4NS44MDEgMzQuMzYyIDE4Ny4xMDkgMzQuMTA4IDE4OC4yMzggMzMuNjA5QzE4OS4zNzYgMzMuMTA0IDE5MC4yNzIgMzIuMzk0IDE5MC45MDEgMzEuNDk0QzE5MS41MzQgMzAuNTkyIDE5MS44NTMgMjkuNTU0IDE5MS44NTMgMjguNDAzQzE5MS44MjggMjcuMTEgMTkxLjQ2NiAyNi4wNTMgMTkwLjc3NyAyNS4yNjJIMTkwLjc4N1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTI0MS45ODIgMjUuNjU4MlYxNy43MTE3SDIyOC40NDFMMjIwLjQ5NCAyNS42NTgySDI0MS45ODJaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0yNTcuMjM5IDUuOTUwODFIMjQwLjI2NUwyMzIuMjU1IDEzLjg5NzNIMjU3LjIzOVY1Ljk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjEyLjYxMSAzMy42MDQ4TDIxNi42OCAyOS41MzYxSDIzMC40MTJWMzcuNDgyN0gyMTIuNjExVjMzLjYwNDhaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0yMTUuNTk5IDIxLjc4MDNIMjI0LjM3MkwyMzIuMzgyIDEzLjgzMzdIMjE1LjU5OVYyMS43ODAzWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjA2IDMzLjYwNDdIMjEyLjYxMUwyMjAuNDk0IDI1LjY1ODJIMjA2VjMzLjYwNDdaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0yNDAuMjY1IDUuOTUwODFMMjM2LjE5NyAxMC4wMTk0SDIxMC4yNTlWMi4wNzI4OEgyNDAuMjY1VjUuOTUwODFaIiBmaWxsPSIjOUI5QjlCIi8+Cjwvc3ZnPgo=",q0={"01":"GRID","02":"CHARTS","0102":"BOTH"},OV="https://www.ag-grid.com/charts/licensing/",yA=class Oi{constructor(e){this.watermarkMessage=void 0,this.totalMessageLength=124,this.document=e,this.md5=new xst,this.md5.init()}validateLicense(){const e=this.getLicenseDetails(Oi.licenseKey,Oi.gridContext),i=`AG ${e.currentLicenseType==="BOTH"?"Grid and ":""}Charts Enterprise`;let n="";if(e.suppliedLicenseType==="BOTH"?n="AG Grid and AG Charts Enterprise":e.suppliedLicenseType==="GRID"?n="AG Grid Enterprise":e.suppliedLicenseType!==void 0&&(n="AG Charts Enterprise"),e.missing)(!this.isWebsiteUrl()||this.isForceWatermark())&&this.outputMissingLicenseKey(i);else if(e.expired){const s=Oi.getChartsReleaseDate(),a=Oi.formatDate(s);this.outputExpiredKey(e.expiry,a,n)}else e.valid?e.isTrial&&e.trialExpired&&this.outputExpiredTrialKey(e.expiry,i,n):this.outputInvalidLicenseKey(!!e.incorrectLicenseType,i,n);Oi.licenseOutputLogged=!0}static extractExpiry(e){const i=e.substring(e.lastIndexOf("_")+1,e.length);return new Date(Number.parseInt(Oi.decode(i),10))}static extractLicenseComponents(e){let i=e.replaceAll(/[\u200B-\u200D\uFEFF]/g,"");if(i=i.replaceAll(/\r?\n|\r/g,""),e.length<=32)return{md5:null,license:e,version:null,isTrial:null};const n=i.length-32,s=i.substring(n),a=i.substring(0,n),[o,r,l]=Oi.extractBracketedInformation(i);return{md5:s,license:a,version:o,isTrial:r,type:l}}getLicenseDetails(e,i=!1){const n="CHARTS";if(tw(e))return{licenseKey:e,valid:!1,missing:!0,currentLicenseType:n};const s=Oi.getChartsReleaseDate(),{md5:a,license:o,version:r,isTrial:l,type:c}=Oi.extractLicenseComponents(e);let u=a===this.md5.md5(o)&&!e.includes("For_Trialing_ag-Grid_Only"),d,g,f=null,y=!1,x;function S(){d=ff,r){case"legacy":case"2":{u=!1;break}case"3":tw(c)?u=!1:(x=c,c!==q0["02"]&&c!==q0["0102"]?(u=!1,y=!0):l&&S())}return u?{licenseKey:e,valid:u,expiry:Oi.formatDate(f),expired:g,version:r,isTrial:l,trialExpired:d,invalidLicenseTypeForCombo:i?x!=="BOTH":void 0,incorrectLicenseType:y,currentLicenseType:n,suppliedLicenseType:x}:{licenseKey:e,valid:u,incorrectLicenseType:y,currentLicenseType:n,suppliedLicenseType:x}}isDisplayWatermark(){return this.isForceWatermark()||!this.isLocalhost()&&!this.isE2ETest()&&!this.isWebsiteUrl()&&!tw(this.watermarkMessage)}getWatermarkMessage(){return this.watermarkMessage??""}getWatermarkForegroundConfig(){const e=this.getWatermarkMessage();if(e)return this.buildWatermarkConfig(e)}getWatermarkForegroundConfigForBrowser(){if(!this.isDisplayWatermark())return;const e=this.getWatermarkMessage();if(e)return this.buildWatermarkConfig(e)}buildWatermarkConfig(e){return{text:e,image:{url:vst,width:170,height:25,right:25,bottom:50,opacity:.7}}}getHostname(){if(!this.document)return"localhost";const e=this.document.defaultView??globalThis;if(!e)return"localhost";try{return(e.location?.hostname??"")||"localhost"}catch{return"localhost"}}isForceWatermark(){if(!this.document)return!1;const e=this.document?.defaultView??globalThis.window!=null?globalThis:void 0;if(!e)return!1;const i=e.location?.pathname;return i?i.includes("forceWatermark"):!1}isWebsiteUrl(){const e=this.getHostname();return/^((?:[\w-]+\.)?ag-grid\.com)$/.exec(e)!==null||/^((?:[\w-]+\.)?bryntum\.com)$/.exec(e)!==null}isLocalhost(){const e=this.getHostname();return/^(?:127\.0\.0\.1|localhost)$/.exec(e)!==null}isE2ETest(){const e=this.getHostname();return/^(?:172\.17\.0\.1|host\.docker\.internal)$/.exec(e)!==null}static formatDate(e){const i=["January","February","March","April","May","June","July","August","September","October","November","December"],n=e.getDate(),s=e.getMonth(),a=e.getFullYear();return n+" "+i[s]+" "+a}static getChartsReleaseDate(){return new Date(Number.parseInt(Oi.decode(Oi.RELEASE_INFORMATION),10))}static decode(e){const i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let n="",s,a,o,r,l,c,u,d=0;const g=e.replaceAll(/[^A-Za-z0-9+/=]/g,"");for(;d>4,a=(l&15)<<4|c>>2,o=(c&3)<<6|u,n=n+String.fromCodePoint(s),c!=64&&(n=n+String.fromCodePoint(a)),u!=64&&(n=n+String.fromCodePoint(o));return n=Oi.utf8_decode(n),n}static utf8_decode(e){e=e.replaceAll("rn","n");let i="";for(let n=0;n127&&s<2048?(i+=String.fromCodePoint(s>>6|192),i+=String.fromCodePoint(s&63|128)):(i+=String.fromCodePoint(s>>12|224),i+=String.fromCodePoint(s>>6&63|128),i+=String.fromCodePoint(s&63|128))}return i}static setGridContext(e=!1){Oi.gridContext=e}static setLicenseKey(e){this.licenseKey&&this.licenseKey!==e&&console.warn("License Key being set multiple times with different values. This can result in an incorrect license key being used."),this.licenseKey!==e&&(Oi.licenseOutputLogged=!1),Oi.licenseKey=e}static extractBracketedInformation(e){if(!e.includes("["))return["legacy",!1,void 0];const i=e.match(/\[(.*?)\]/g).map(r=>r.replace("[","").replace("]",""));if(!i||i.length===0)return["legacy",!1,void 0];const n=i.filter(r=>r==="TRIAL").length===1,s=i.find(r=>r.startsWith("v")),a=s?s.replace("v",""):"legacy",o=q0[i.find(r=>q0[r])];return[a,n,o]}centerPadAndOutput(e){if(Oi.licenseOutputLogged)return;const i=this.totalMessageLength-e.length;console.error(e.padStart(i/2+e.length,"*").padEnd(this.totalMessageLength,"*"))}padAndOutput(e,i="*",n=""){Oi.licenseOutputLogged||console.error(e.padEnd(this.totalMessageLength-n.length,i)+n)}outputInvalidLicenseKey(e,i,n){Oi.gridContext||(e?(this.centerPadAndOutput(""),this.centerPadAndOutput(` ${i} License `),this.centerPadAndOutput(" Incompatible License Key "),this.padAndOutput(`* Your license key is for ${n} only and does not cover you for ${i}.`," ","*"),this.padAndOutput(`* To troubleshoot your license key visit ${OV}.`," ","*"),this.centerPadAndOutput(""),this.centerPadAndOutput("")):(this.centerPadAndOutput(""),this.centerPadAndOutput(` ${i} License `),this.centerPadAndOutput(" Invalid License Key "),this.padAndOutput("* Your license key is not valid."," ","*"),this.padAndOutput(`* To troubleshoot your license key visit ${OV}.`," ","*"),this.centerPadAndOutput(""),this.centerPadAndOutput(""))),this.watermarkMessage="Invalid License"}outputExpiredTrialKey(e,i,n){Oi.gridContext||(this.centerPadAndOutput(""),this.centerPadAndOutput(` ${i} License `),this.centerPadAndOutput(" Trial Period Expired. "),this.padAndOutput(`* Your trial only license for ${n} expired on ${e}.`," ","*"),this.padAndOutput("* Please email info@ag-grid.com to purchase a license."," ","*"),this.centerPadAndOutput(""),this.centerPadAndOutput("")),this.watermarkMessage="Trial Period Expired"}outputMissingLicenseKey(e){Oi.gridContext||(this.centerPadAndOutput(""),this.centerPadAndOutput(` ${e} License `),this.centerPadAndOutput(" License Key Not Found "),this.padAndOutput(`* All ${e} features are unlocked for trial.`," ","*"),this.padAndOutput("* If you want to hide the watermark please email info@ag-grid.com for a trial license key."," ","*"),this.centerPadAndOutput(""),this.centerPadAndOutput("")),this.watermarkMessage="For Trial Use Only"}outputExpiredKey(e,i,n){Oi.gridContext||(this.centerPadAndOutput(""),this.centerPadAndOutput(` ${n} License `),this.centerPadAndOutput(" Incompatible Software Version "),this.padAndOutput(`* Your license key works with versions of ${n} released before ${e}.`," ","*"),this.padAndOutput(`* The version you are trying to use was released on ${i}.`," ","*"),this.padAndOutput("* Please contact info@ag-grid.com to renew your license key."," ","*"),this.centerPadAndOutput(""),this.centerPadAndOutput("")),this.watermarkMessage="License Expired"}};yA.RELEASE_INFORMATION="MTc3NTU0ODM5NDIwNA==";yA.gridContext=!1;yA.licenseOutputLogged=!1;var Jg=yA;function Sst(t,e){const i=t.addChild("canvas-overlay","watermark"),n=$t("span");n.innerText=e,i.addEventListener("animationend",()=>{t.removeChild("canvas-overlay","watermark"),t.removeStyles("watermark")}),i.classList.add("ag-watermark"),i.appendChild(n)}var Mst=`.ag-watermark{position:absolute;bottom:20px;right:25px;font-weight:700;font-family:Impact,sans-serif;font-size:19px;opacity:.7;animation:1s ease-out 3s ag-watermark-fadeout;color:#9b9b9b;pointer-events:none;&:before{content:"";display:block;height:40px;width:170px;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU4IiBoZWlnaHQ9IjQwIiB2aWV3Qm94PSIwIDAgMjU4IDQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMjUuNzc5IDI4LjY1N0gxMy4zNTlMMTEuMTczIDM0LjAxMkg1LjY3Mjk3TDE3LjE4MiA3LjA1OTk5SDIxLjk1M0wzMy40NjIgMzQuMDEySDI3Ljk2MkwyNS43NzYgMjguNjU3SDI1Ljc3OVpNMjQuMDY4IDI0LjM5N0wxOS41ODggMTMuNDM0TDE1LjEwNyAyNC4zOTdIMjQuMDY4Wk02Mi4wOTIgMTguODIzSDQ5LjgxN1YyMy4wODZINTYuNzc1QzU2LjU1NSAyNS4yMjIgNTUuNzU1IDI2LjkyNyA1NC4zNzIgMjguMjAyQzUyLjk4OSAyOS40NzYgNTEuMTY2IDMwLjExNSA0OC45MDkgMzAuMTE1QzQ3LjYyMiAzMC4xMTUgNDYuNDUgMjkuODg1IDQ1LjM5MyAyOS40MjNDNDQuMzU4MyAyOC45NzgxIDQzLjQzMjYgMjguMzEzOCA0Mi42OCAyNy40NzZDNDEuOTI3IDI2LjYzOSA0MS4zNDQgMjUuNjMxIDQwLjkzMSAyNC40NTNDNDAuNTE5IDIzLjI3NSA0MC4zMTEgMjEuOTcgNDAuMzExIDIwLjUzN0M0MC4zMTEgMTkuMTA1IDQwLjUxNiAxNy44IDQwLjkzMSAxNi42MjFDNDEuMzQ0IDE1LjQ0MyA0MS45MjcgMTQuNDM2IDQyLjY4IDEzLjU5OEM0My40Mzc2IDEyLjc1NzcgNDQuMzY5NiAxMi4wOTMyIDQ1LjQxMSAxMS42NTFDNDYuNDc4IDExLjE4OSA0Ny42NTYgMTAuOTYgNDguOTQ2IDEwLjk2QzUxLjYxMiAxMC45NiA1My42MzcgMTEuNjAyIDU1LjAyIDEyLjg4NUw1OC4zIDkuNjA0OTlDNTUuODE3IDcuNjY5OTkgNTIuNjc2IDYuNjk5OTkgNDguODcyIDYuNjk5OTlDNDYuNzYgNi42OTk5OSA0NC44NTMgNy4wMzQ5OSA0My4xNTQgNy43MDA5OUM0MS40NTUgOC4zNjc5OSAzOS45OTggOS4zMDM5OSAzOC43ODMgMTAuNTA0QzM3LjU2NyAxMS43MDcgMzYuNjM0IDEzLjE1OCAzNS45NzcgMTQuODU3QzM1LjMxOSAxNi41NTYgMzQuOTk0IDE4LjQ1MSAzNC45OTQgMjAuNTRDMzQuOTk0IDIyLjYzIDM1LjMyOSAyNC40OTQgMzUuOTk1IDI2LjIwNUMzNi42NjIgMjcuOTE2IDM3LjYwNSAyOS4zNzQgMzguODE3IDMwLjU3N0M0MC4wMzIgMzEuNzggNDEuNDg2IDMyLjcxMyA0My4xODggMzMuMzgzQzQ0Ljg4OCAzNC4wNDkgNDYuNzgyIDM0LjM4NCA0OC44NzIgMzQuMzg0QzUwLjk2MSAzNC4zODQgNTIuNzUgMzQuMDQ5IDU0LjM5IDMzLjM4M0M1Ni4wMzEgMzIuNzE2IDU3LjQyNiAzMS43OCA1OC41NzkgMzAuNTc3QzU5LjczMyAyOS4zNzQgNjAuNjE5IDI3LjkxNiA2MS4yMzkgMjYuMjA1QzYxLjg2IDI0LjQ5NCA2Mi4xNyAyMi42MDUgNjIuMTcgMjAuNTRDNjIuMTY5NiAxOS45Njg4IDYyLjE0NDUgMTkuMzk4IDYyLjA5NSAxOC44MjlMNjIuMDkyIDE4LjgyM1pNMTUxLjgxIDE2Ljk4MUMxNTMuNDEgMTQuNjA5IDE1Ny40MTkgMTQuMzU4IDE1OS4wMjIgMTQuMzU4VjE4LjkxQzE1Ni45NTcgMTguOTEgMTU0Ljk4NSAxOC45OTYgMTUzLjc1NyAxOS44OTJDMTUyLjUyOSAyMC43OTIgMTUxLjkxOSAyMS45ODIgMTUxLjkxOSAyMy40NjRWMzMuOTlIMTQ2Ljk2NFYxNC4zNThIMTUxLjczNkwxNTEuODEgMTYuOTgxWk0xNDMuMDExIDE0LjM2MVYzNC4wMzFIMTM4LjI0TDEzOC4xMzEgMzEuMDQ1QzEzNy40NjYgMzIuMDc2IDEzNi41NTEgMzIuOTIxOSAxMzUuNDcxIDMzLjUwNEMxMzQuMzc2IDM0LjA5OSAxMzMuMDY4IDM0LjM5NiAxMzEuNTM2IDM0LjM5NkMxMzAuMiAzNC4zOTYgMTI4Ljk2MyAzNC4xNTIgMTI3LjgyMiAzMy42NjhDMTI2LjcgMzMuMTk2NCAxMjUuNjg5IDMyLjQ5NSAxMjQuODU1IDMxLjYwOUMxMjQuMDE4IDMwLjcyMiAxMjMuMzU0IDI5LjY2MiAxMjIuODcxIDI4LjQyMkMxMjIuMzg0IDI3LjE4NSAxMjIuMTQyIDI1LjgxMSAxMjIuMTQyIDI0LjMwNEMxMjIuMTQyIDIyLjc5OCAxMjIuMzg0IDIxLjM3OCAxMjIuODcxIDIwLjExNkMxMjMuMzU3IDE4Ljg1NCAxMjQuMDE4IDE3Ljc3MiAxMjQuODU1IDE2Ljg3M0MxMjUuNjg4IDE1Ljk3NjQgMTI2LjY5OCAxNS4yNjM2IDEyNy44MjIgMTQuNzhDMTI4Ljk2MyAxNC4yODEgMTMwLjIwMyAxNC4wMzMgMTMxLjUzNiAxNC4wMzNDMTMzLjA0MyAxNC4wMzMgMTM0LjMzIDE0LjMxOCAxMzUuMzk3IDE0Ljg4OEMxMzYuNDYyIDE1LjQ1ODkgMTM3LjM3NSAxNi4yNzggMTM4LjA1NyAxNy4yNzZWMTQuMzYxSDE0My4wMTFaTTEzMi42MzEgMzAuMTMzQzEzNC4yNTYgMzAuMTMzIDEzNS41NjcgMjkuNTk0IDEzNi41NjUgMjguNTEyQzEzNy41NjEgMjcuNDMgMTM4LjA2IDI1Ljk5MSAxMzguMDYgMjQuMTk2QzEzOC4wNiAyMi40MDEgMTM3LjU2MSAyMC45OSAxMzYuNTY1IDE5Ljg5OUMxMzUuNTcgMTguODA3IDEzNC4yNTkgMTguMjU4IDEzMi42MzEgMTguMjU4QzEzMS4wMDMgMTguMjU4IDEyOS43MjkgMTguODA0IDEyOC43MzQgMTkuODk5QzEyNy43MzggMjAuOTkzIDEyNy4yMzkgMjIuNDM4IDEyNy4yMzkgMjQuMjMzQzEyNy4yMzkgMjYuMDI4IDEyNy43MzUgMjcuNDMzIDEyOC43MzQgMjguNTE1QzEyOS43MjkgMjkuNTk0IDEzMS4wMjggMzAuMTM2IDEzMi42MzEgMzAuMTM2VjMwLjEzM1pNOTMuNjk4IDI3Ljg3NkM5My41Nzk1IDI4LjAwMjUgOTMuNDU2NCAyOC4xMjQ2IDkzLjMyOSAyOC4yNDJDOTEuOTQ3IDI5LjUxNiA5MC4xMjMgMzAuMTU1IDg3Ljg2NiAzMC4xNTVDODYuNTggMzAuMTU1IDg1LjQwOCAyOS45MjYgODQuMzUgMjkuNDY0QzgzLjMxNTUgMjkuMDE4OSA4Mi4zODk4IDI4LjM1NDYgODEuNjM3IDI3LjUxN0M4MC44ODQgMjYuNjc5IDgwLjMwMSAyNS42NzIgNzkuODg5IDI0LjQ5NEM3OS40NzYgMjMuMzE1IDc5LjI2OSAyMi4wMSA3OS4yNjkgMjAuNTc4Qzc5LjI2OSAxOS4xNDUgNzkuNDczIDE3Ljg0IDc5Ljg4OSAxNi42NjJDODAuMzAxIDE1LjQ4NCA4MC44ODQgMTQuNDc2IDgxLjYzNyAxMy42MzlDODIuMzk0OSAxMi43OTg3IDgzLjMyNzMgMTIuMTM0MiA4NC4zNjkgMTEuNjkyQzg1LjQzNiAxMS4yMyA4Ni42MTQgMTEgODcuOTAzIDExQzkwLjU3IDExIDkyLjU5NSAxMS42NDIgOTMuOTc3IDEyLjkyNkw5Ny4yNTggOS42NDQ5OUM5NC43NzQgNy43MTA5OSA5MS42MzMgNi43Mzk5OSA4Ny44MjkgNi43Mzk5OUM4NS43MTggNi43Mzk5OSA4My44MTEgNy4wNzQ5OSA4Mi4xMTIgNy43NDE5OUM4MC40MTMgOC40MDc5OSA3OC45NTYgOS4zNDQ5OSA3Ny43NCAxMC41NDVDNzYuNTI1IDExLjc0NyA3NS41OTIgMTMuMTk5IDc0LjkzNCAxNC44OThDNzQuMjc3IDE2LjU5NyA3My45NTEgMTguNDkxIDczLjk1MSAyMC41ODFDNzMuOTUxIDIyLjY3IDc0LjI4NiAyNC41MzQgNzQuOTUzIDI2LjI0NUM3NS42MTkgMjcuOTU3IDc2LjU2MiAyOS40MTQgNzcuNzc0IDMwLjYxN0M3OC45OSAzMS44MiA4MC40NDQgMzIuNzUzIDgyLjE0NiAzMy40MjNDODMuODQ1IDM0LjA5IDg1LjczOSAzNC40MjQgODcuODI5IDM0LjQyNEM4OS45MTkgMzQuNDI0IDkxLjcwOCAzNC4wOSA5My4zNDggMzMuNDIzQzk0LjcxOCAzMi44NjUgOTUuOTE4IDMyLjEyMSA5Ni45NDggMzEuMTkxQzk3LjE0OSAzMS4wMDggOTcuMzQ4IDMwLjgxNSA5Ny41MzcgMzAuNjJMOTMuNzAxIDI3Ljg4NUw5My42OTggMjcuODc2Wk0xMTAuODAyIDE0LjAxNUMxMDkuMTk5IDE0LjAxNSAxMDYuODM2IDE0LjQ3MSAxMDUuNjExIDE2LjE1OEwxMDUuNTM3IDYuMDE1OTlIMTAwLjc2NVYzMy45MzlIMTA1LjcyVjIyLjY0MUMxMDUuNzcxIDIxLjQ2MDcgMTA2LjI4OCAyMC4zNDg4IDEwNy4xNTcgMTkuNTQ4OUMxMDguMDI3IDE4Ljc0OTEgMTA5LjE3OCAxOC4zMjY2IDExMC4zNTggMTguMzc0QzExMy4zOTcgMTguMzc0IDExNC4yNjggMjEuMTU5IDExNC4yNjggMjIuNjQxVjMzLjkzOUgxMTkuMjIzVjIxLjA1OUMxMTkuMjIzIDIxLjA1OSAxMTkuMTQyIDE0LjAxNSAxMTAuODAyIDE0LjAxNVpNMTczLjc2MyAxNC4zNThIMTY5Ljk5OVY4LjcxNDk5SDE2NS4wNDhWMTQuMzU4SDE2MS4yODRWMTguOTE2SDE2NS4wNDhWMzQuMDAzSDE2OS45OTlWMTguOTE2SDE3My43NjNWMTQuMzU4Wk0xOTAuNzg3IDI1LjI2MkMxOTAuMTI5IDI0LjUwMTQgMTg5LjMwNyAyMy44OTk0IDE4OC4zODQgMjMuNTAxQzE4Ny40ODggMjMuMTE3IDE4Ni4zMzEgMjIuNzMyIDE4NC45NDggMjIuMzY0QzE4NC4xNjUgMjIuMTQzOSAxODMuMzkgMjEuODk3OCAxODIuNjIzIDIxLjYyNkMxODIuMTYzIDIxLjQ2MjEgMTgxLjc0MSAyMS4yMDY2IDE4MS4zODMgMjAuODc1QzE4MS4yMzUgMjAuNzQyMSAxODEuMTE4IDIwLjU3ODkgMTgxLjAzOSAyMC4zOTY0QzE4MC45NjEgMjAuMjE0IDE4MC45MjIgMjAuMDE2NiAxODAuOTI3IDE5LjgxOEMxODAuOTI3IDE5LjI3MiAxODEuMTU2IDE4Ljg0NCAxODEuNjI1IDE4LjUxQzE4Mi4xMjEgMTguMTU2IDE4Mi44NjIgMTcuOTc2IDE4My44MjYgMTcuOTc2QzE4NC43OSAxNy45NzYgMTg1LjU4NyAxOC4yMDkgMTg2LjE0OCAxOC42NjhDMTg2LjcwNiAxOS4xMjQgMTg3LjAwNyAxOS43MjUgMTg3LjA3MiAyMC41TDE4Ny4wOTQgMjAuNzgySDE5MS42MzNMMTkxLjYxNyAyMC40NkMxOTEuNTIxIDE4LjQ4NSAxOTAuNzcxIDE2LjkgMTg5LjM4NSAxNS43NUMxODguMDEyIDE0LjYxMiAxODYuMTg1IDE0LjAzMyAxODMuOTYyIDE0LjAzM0MxODIuNDc3IDE0LjAzMyAxODEuMTQxIDE0LjI4NyAxNzkuOTk0IDE0Ljc4NkMxNzguODMxIDE1LjI5MSAxNzcuOTI2IDE1Ljk5NSAxNzcuMjk2IDE2Ljg4MkMxNzYuNjczIDE3Ljc0NTUgMTc2LjMzOCAxOC43ODQgMTc2LjM0MSAxOS44NDlDMTc2LjM0MSAyMS4xNjcgMTc2LjY5OCAyMi4yNDkgMTc3LjM5OSAyMy4wNjRDMTc4LjA2IDIzLjg0MzIgMTc4Ljg5OCAyNC40NTM0IDE3OS44NDIgMjQuODQ0QzE4MC43NDQgMjUuMjE2IDE4MS45MjggMjUuNjA3IDE4My4zNjEgMjZDMTg0LjgwNiAyNi40MSAxODUuODcyIDI2Ljc4NSAxODYuNTMgMjcuMTIzQzE4Ny4xIDI3LjQxNCAxODcuMzc5IDI3Ljg0NSAxODcuMzc5IDI4LjQ0NEMxODcuMzc5IDI5LjA0MiAxODcuMTIyIDI5LjQ2NyAxODYuNTk1IDI5LjgzOUMxODYuMDQzIDMwLjIyNiAxODUuMjM3IDMwLjQyNSAxODQuMjAxIDMwLjQyNUMxODMuMTY2IDMwLjQyNSAxODIuMzk0IDMwLjE3NCAxODEuNzQ5IDI5LjY3NEMxODEuMTEzIDI5LjE4MSAxODAuNzcyIDI4LjU4OSAxODAuNzEgMjcuODY0TDE4MC42ODUgMjcuNTgySDE3Ni4wMTNMMTc2LjAyNSAyNy45MDFDMTc2LjA2NyAyOS4wOTU1IDE3Ni40NzIgMzAuMjQ4NyAxNzcuMTg4IDMxLjIwNkMxNzcuOTA3IDMyLjE4IDE3OC44OTMgMzIuOTU4IDE4MC4xMTggMzMuNTE5QzE4MS4zMzYgMzQuMDc3IDE4Mi43MzIgMzQuMzYyIDE4NC4yNjYgMzQuMzYyQzE4NS44MDEgMzQuMzYyIDE4Ny4xMDkgMzQuMTA4IDE4OC4yMzggMzMuNjA5QzE4OS4zNzYgMzMuMTA0IDE5MC4yNzIgMzIuMzk0IDE5MC45MDEgMzEuNDk0QzE5MS41MzQgMzAuNTkyIDE5MS44NTMgMjkuNTU0IDE5MS44NTMgMjguNDAzQzE5MS44MjggMjcuMTEgMTkxLjQ2NiAyNi4wNTMgMTkwLjc3NyAyNS4yNjJIMTkwLjc4N1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTI0MS45ODIgMjUuNjU4MlYxNy43MTE3SDIyOC40NDFMMjIwLjQ5NCAyNS42NTgySDI0MS45ODJaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0yNTcuMjM5IDUuOTUwODFIMjQwLjI2NUwyMzIuMjU1IDEzLjg5NzNIMjU3LjIzOVY1Ljk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjEyLjYxMSAzMy42MDQ4TDIxNi42OCAyOS41MzYxSDIzMC40MTJWMzcuNDgyN0gyMTIuNjExVjMzLjYwNDhaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0yMTUuNTk5IDIxLjc4MDNIMjI0LjM3MkwyMzIuMzgyIDEzLjgzMzdIMjE1LjU5OVYyMS43ODAzWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjA2IDMzLjYwNDdIMjEyLjYxMUwyMjAuNDk0IDI1LjY1ODJIMjA2VjMzLjYwNDdaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0yNDAuMjY1IDUuOTUwODFMMjM2LjE5NyAxMC4wMTk0SDIxMC4yNTlWMi4wNzI4OEgyNDAuMjY1VjUuOTUwODFaIiBmaWxsPSIjOUI5QjlCIi8+Cjwvc3ZnPgo=);background-repeat:no-repeat;background-size:170px 40px}>span{padding-left:.7rem}}@keyframes ag-watermark-fadeout{0%{opacity:.5}to{opacity:0}}.ag-charts-dialog{display:flex;flex-direction:column;font-size:var(--ag-charts-chrome-font-size-large)}.ag-charts-dialog__tabs{display:flex;flex-direction:column}.ag-charts-dialog__header{border-bottom:1px solid var(--ag-charts-border-color);display:flex}.ag-charts-dialog__tab-list{display:flex;gap:calc(var(--ag-charts-spacing) * 2)}.ag-charts-dialog__drag-handle{align-items:center;color:inherit;cursor:grab;display:flex;padding:1px 6px;text-align:center}.ag-charts-dialog__drag-handle--dragging{cursor:grabbing}.ag-charts-dialog__tab-button{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--ag-charts-panel-subtle-text-color);margin-bottom:-1px;padding:var(--input-padding) calc(var(--input-padding) / 2)}.ag-charts-dialog__tab-button:hover{background:none}.ag-charts-dialog__tab-button--active{border-color:var(--ag-charts-accent-color);color:inherit}.ag-charts-dialog__drag-handle+.ag-charts-dialog__tab-button{margin-inline-start:calc(var(--ag-charts-spacing) * -2)}.ag-charts-button.ag-charts-dialog__close-button{background:none;border:0;margin-inline-start:auto;padding:1px 6px}.ag-charts-dialog__close-button:focus-visible{outline:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow);z-index:calc(var(--ag-charts-layer-ui-overlay) + 1)}.ag-charts-dialog__tab-panel{display:none;flex-direction:column;gap:calc(var(--ag-charts-spacing) * 4);margin:0 calc(var(--ag-charts-spacing) * 4);padding:calc(var(--ag-charts-spacing) * 4) 0}.ag-charts-dialog__tab-panel--active{display:flex}.ag-charts-dialog__input-group-line{display:flex;gap:16px 18px;flex-wrap:wrap}.ag-charts-dialog__input-group{align-items:center;display:flex;font-size:var(--ag-charts-chrome-font-size)}.ag-charts-dialog__input-group-label{color:var(--ag-charts-panel-subtle-text-color);margin-inline-end:5px}.ag-charts-dialog__input-group-label[for]{cursor:pointer}.ag-charts-dialog__button{border-radius:0;margin-inline-end:-1px}.ag-charts-dialog__button.ag-charts-dialog__button--active{background:var(--ag-charts-button-focus-background-color);border-color:var(--ag-charts-input-focus-border-color);color:var(--ag-charts-input-focus-text-color);z-index:var(--input-layer-active)}.ag-charts-dialog__button:first-child,.ag-charts-dialog__input-group-label+.ag-charts-dialog__button{border-start-start-radius:var(--ag-charts-input-border-radius);border-end-start-radius:var(--ag-charts-input-border-radius)}.ag-charts-dialog__button:last-child{border-start-end-radius:var(--ag-charts-input-border-radius);border-end-end-radius:var(--ag-charts-input-border-radius)}.ag-charts-dialog__color-picker-button{--color: #000;background:var(--color);border:none;color:transparent;height:26px;width:26px}.ag-charts-dialog__color-picker-button:hover{background:var(--color)}.ag-charts-dialog__color-picker-button--multi-color,.ag-charts-dialog__color-picker-button--multi-color:hover{background:linear-gradient(135deg,red 0%,#ff0 calc(100% * 1 / 6),#0f0 calc(100% * 2 / 6),#0ff 50%,#00f calc(100% * 4 / 6),#f0f calc(100% * 5 / 6),red 100%)}.ag-charts-color-picker{width:190px;padding:8px;direction:ltr;cursor:default;--h: 0;--s: 0;--v: 0;--a: 0;--color: #000;--color-a: #000;--thumb-size: 18px;--inner-width: 172px;--track-height: 12px;--palette-height: 136px;--checker: url('data:image/svg+xml;utf8,');--multi-color: linear-gradient( 135deg, #f00 0% , #ff0 calc(100% * 1 / 6), #0f0 calc(100% * 2 / 6), #0ff 50% , #00f calc(100% * 4 / 6), #f0f calc(100% * 5 / 6), #f00 100% )}.ag-charts-color-picker__content{display:flex;flex-direction:column}.ag-charts-color-picker__palette{position:relative;width:100%;height:var(--palette-height);margin-bottom:8px;background:linear-gradient(to bottom,#0000,#000),linear-gradient(to right,#fff,#fff0) hsl(var(--h),100%,50%);border-radius:calc(var(--ag-charts-border-radius) * 1.5);box-shadow:inset 0 0 0 1px #0003}.ag-charts-color-picker__palette:after{content:"";position:absolute;display:block;top:calc(var(--thumb-size) * -.5 + (1 - var(--v)) * 100%);left:calc(var(--thumb-size) * -.5 + var(--s) * 100%);background:var(--color);width:var(--thumb-size);height:var(--thumb-size);border-radius:calc(var(--ag-charts-border-radius) * 99);box-shadow:var(--box-shadow);--box-shadow: inset 0 0 0 3px white, inset 0 0 1px 3px #0006, 0 0 5px #00000038}.ag-charts-color-picker__palette:focus-visible:after{outline:var(--ag-charts-focus-border);box-shadow:var(--box-shadow),0 0 0 2px #fff8,var(--ag-charts-focus-border-shadow)}.ag-charts-color-picker__color-row{display:flex;gap:8px;align-items:center;margin-bottom:4px;--inset: calc((var(--thumb-size) - var(--track-height)) / 2)}.ag-charts-color-picker__hue-input,.ag-charts-color-picker__alpha-input{-webkit-appearance:none;display:block;position:relative;padding:0;margin:0 calc(var(--inset) * -1);border:0;height:var(--thumb-size);width:auto;background:transparent;--inset: calc((var(--thumb-size) - var(--track-height)) / 2)}.ag-charts-color-picker__hue-input::-moz-range-thumb,.ag-charts-color-picker__alpha-input::-moz-range-thumb{appearance:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:calc(var(--ag-charts-border-radius) * 99);box-shadow:var(--box-shadow);--box-shadow: inset 0 0 0 3px white, inset 0 0 1px 3px #0006, 0 0 5px #00000038}.ag-charts-color-picker__hue-input::-webkit-slider-thumb,.ag-charts-color-picker__alpha-input::-webkit-slider-thumb{-webkit-appearance:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:calc(var(--ag-charts-border-radius) * 99);box-shadow:var(--box-shadow);--box-shadow: inset 0 0 0 3px white, inset 0 0 1px 3px #0006, 0 0 5px #00000038;transform:translateZ(0)}.ag-charts-color-picker__hue-input::-moz-range-thumb{background:hsl(var(--h),100%,50%)}.ag-charts-color-picker__hue-input::-webkit-slider-thumb{background:hsl(var(--h),100%,50%)}.ag-charts-color-picker__alpha-input::-moz-range-thumb{background:transparent}.ag-charts-color-picker__alpha-input::-webkit-slider-thumb{background:transparent}.ag-charts-color-picker__alpha-input--opaque::-moz-range-thumb{background:var(--color)}.ag-charts-color-picker__alpha-input--opaque::-webkit-slider-thumb{background:var(--color)}.ag-charts-color-picker__hue-input:focus-visible::-moz-range-thumb,.ag-charts-color-picker__alpha-input:focus-visible::-moz-range-thumb{outline:var(--ag-charts-focus-border);box-shadow:var(--box-shadow),var(--ag-charts-focus-border-shadow)}.ag-charts-color-picker__hue-input:focus-visible::-webkit-slider-thumb,.ag-charts-color-picker__alpha-input:focus-visible::-webkit-slider-thumb{outline:var(--ag-charts-focus-border);box-shadow:var(--box-shadow),var(--ag-charts-focus-border-shadow)}.ag-charts-color-picker__hue-input::-moz-range-track,.ag-charts-color-picker__alpha-input::-moz-range-track{position:absolute;content:"";display:block;top:calc(50% - var(--track-height) / 2);left:var(--inset);right:var(--inset);height:var(--track-height);border-radius:calc(var(--ag-charts-border-radius) * 99);box-shadow:inset 0 0 0 1px #0003}.ag-charts-color-picker__hue-input:before,.ag-charts-color-picker__alpha-input:before{position:absolute;content:"";display:block;top:calc(50% - var(--track-height) / 2);left:var(--inset);right:var(--inset);height:var(--track-height);border-radius:calc(var(--ag-charts-border-radius) * 99);box-shadow:inset 0 0 0 1px #0003}.ag-charts-color-picker__multi-color-button{width:36px;margin-left:var(--inset);height:var(--track-height);border-radius:calc(var(--ag-charts-border-radius) * 99);border:0;background:var(--multi-color);box-shadow:inset 0 0 0 1px #0003}.ag-charts-color-picker__multi-color-button--hidden{display:none}.ag-charts-color-picker__multi-color-button--active{box-shadow:inset 0 0 0 1px #0003;outline-offset:1px;outline:2px solid #2196f3}.ag-charts-color-picker__hue-input{flex:1 0 0}.ag-charts-color-picker__hue-input::-moz-range-track{background:linear-gradient(to right,red,red calc((100% - var(--track-height)) * 0 / 6 + var(--track-height) / 2),#ff0 calc((100% - var(--track-height)) * 1 / 6 + var(--track-height) / 2),#0f0 calc((100% - var(--track-height)) * 2 / 6 + var(--track-height) / 2),#0ff calc((100% - var(--track-height)) * 3 / 6 + var(--track-height) / 2),#00f calc((100% - var(--track-height)) * 4 / 6 + var(--track-height) / 2),#f0f calc((100% - var(--track-height)) * 5 / 6 + var(--track-height) / 2),red calc((100% - var(--track-height)) * 6 / 6 + var(--track-height) / 2))}.ag-charts-color-picker__hue-input:before{background:linear-gradient(to right,red,red calc((100% - var(--track-height)) * 0 / 6 + var(--track-height) / 2),#ff0 calc((100% - var(--track-height)) * 1 / 6 + var(--track-height) / 2),#0f0 calc((100% - var(--track-height)) * 2 / 6 + var(--track-height) / 2),#0ff calc((100% - var(--track-height)) * 3 / 6 + var(--track-height) / 2),#00f calc((100% - var(--track-height)) * 4 / 6 + var(--track-height) / 2),#f0f calc((100% - var(--track-height)) * 5 / 6 + var(--track-height) / 2),red calc((100% - var(--track-height)) * 6 / 6 + var(--track-height) / 2))}.ag-charts-color-picker__alpha-input{margin-bottom:7px}.ag-charts-color-picker__alpha-input::-moz-range-track{background:linear-gradient(to right,transparent,var(--color)),var(--checker) top left / 4px 4px}.ag-charts-color-picker__alpha-input:before{background:linear-gradient(to right,transparent,var(--color)),var(--checker) top left / 4px 4px}.ag-charts-color-picker__color-field{display:flex;border:var(--ag-charts-border);background:var(--ag-charts-background-color);border-radius:var(--ag-charts-border-radius);overflow:hidden}.ag-charts-color-picker__color-field:has(:focus-visible){border-color:var(--ag-charts-accent-color);box-shadow:var(--ag-charts-focus-border-shadow)}.ag-charts-color-picker__color-label{width:16px;height:16px;margin:7px 0;margin-inline-start:7px;color:transparent;background:linear-gradient(to right,var(--color-a),var(--color-a)),var(--checker) top left / 4px 4px;border-radius:calc(var(--ag-charts-border-radius) / 2);box-shadow:inset 0 0 0 1px #0003}.ag-charts-color-picker__color-label--multi-color{background:var(--multi-color)}.ag-charts-color-picker__color-input{flex:1;min-width:0;padding:7px 7px 7px 8px;border:0;margin:0;color:inherit;background:transparent;font-variant:tabular-nums}.ag-charts-color-picker__color-input:focus-visible{border:none;outline:none}.ag-charts-annotations__line-stroke-width-menu,.ag-charts-annotations__line-style-type-menu,.ag-charts-annotations__text-size-menu{border-top-left-radius:0;border-top-right-radius:0;.ag-charts-menu__row:first-child{border-radius:0}}.ag-charts-annotations__text-size-menu{--item-padding: 4px 8px;min-width:34px;text-align:center}.ag-charts-annotations__line-stroke-width-menu{--item-padding: 6px;column-gap:6px}.ag-charts-annotations__line-style-type-menu{--item-padding: 6px;column-gap:0}.ag-charts-annotations__stroke-width-button:before{background:var(--ag-charts-foreground-color);content:"";margin-inline-end:var(--toolbar-button-padding);height:min(var(--stroke-width),20px);width:12px}.ag-charts-annotations__stroke-width-button[aria-disabled=true]:before{filter:grayscale(1);opacity:.5}.ag-charts-annotations__color-picker-button{--emblem: var(--color)}.ag-charts-annotations__color-picker-button--multi-color{--emblem: linear-gradient( to right, #f00 0% , #ff0 calc(100% * 1 / 6), #0f0 calc(100% * 2 / 6), #0ff 50% , #00f calc(100% * 4 / 6), #f0f calc(100% * 5 / 6), #f00 100% )}.ag-charts-annotations__color-picker-button:after{content:"";display:block;position:absolute;bottom:3px;left:5px;right:5px;height:4px;border-radius:99px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ag-charts-foreground-color) 10%,transparent);background:var(--emblem)}.ag-charts-annotations__color-picker-button[aria-disabled=true]:after{filter:grayscale(1);opacity:.5}.ag-charts-annotations__toolbar-menu{min-width:200px}.ag-charts-annotations__axis-button--hidden{display:none}.ag-charts-annotations__axis-button{background-color:var(--ag-charts-crosshair-label-background-color);border-radius:calc(var(--ag-charts-border-radius) / 2);border:none;box-sizing:border-box;color:var(--ag-charts-crosshair-label-text-color);cursor:pointer;font-family:var(--ag-charts-button-font-family);font-size:var(--ag-charts-button-font-size);font-weight:var(--ag-charts-button-font-weight);left:0;line-height:16px;overflow:hidden;padding:0;position:absolute;top:0;user-select:none;white-space:nowrap;z-index:var(--ag-charts-layer-annotations)}.ag-charts-annotations__axis-button:hover{opacity:.8;color:var(--ag-charts-background-color)}.ag-charts-dialog--annotation-settings{min-height:233px;width:289px}.ag-charts-dialog--annotation-settings .ag-charts-textarea{height:calc(10px * 2 + var(--textarea-line-height) * 1em * 3 + 2px);overflow-y:auto;resize:vertical}.ag-charts-context-menu{font-family:var(--ag-charts-chrome-font-family);font-size:var(--ag-charts-chrome-font-size);font-weight:var(--ag-charts-chrome-font-weight);z-index:var(--ag-charts-layer-ui-overlay)}.ag-charts-context-menu__cover{position:fixed;left:0;top:0}.ag-charts-context-menu__menu{background:var(--ag-charts-menu-background-color);border-color:var(--ag-charts-border-color);border-radius:var(--ag-charts-border-radius);border-style:solid;border-width:var(--ag-charts-menu-border-width);box-shadow:var(--ag-charts-popup-shadow);color:var(--ag-charts-menu-text-color);display:flex;flex-direction:column;padding:.5em 0;transition:transform .1s ease;white-space:nowrap}.ag-charts-context-menu__menu:focus{outline:none}.ag-charts-context-menu__item{align-items:center;background:none;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:flex;font:inherit;justify-content:space-between;text-align:start;width:100%;-webkit-appearance:none;-moz-appearance:none}.ag-charts-context-menu__icon>img{width:var(--ag-charts-icon-size);height:var(--ag-charts-icon-size)}.ag-charts-context-menu__icon,.ag-charts-context-menu__cell{display:flex;align-items:center;flex-shrink:0}.ag-charts-context-menu__cell{flex-grow:1}.ag-charts-context-menu__cellpadding{padding:.5em 1em}.ag-charts-context-menu__icon{padding-inline-end:0}.ag-charts-context-menu__item[data-focus-override=true],.ag-charts-context-menu__item:focus,.ag-charts-context-menu__item:active{background:var(--ag-charts-focus-color)}.ag-charts-context-menu__item[data-focus-override=false]{background:inherit}.ag-charts-context-menu__item[data-focus-visible-override=true]:focus,.ag-charts-context-menu__item:focus-visible{outline:var(--ag-charts-focus-border);box-shadow:var(--ag-charts-focus-border-shadow);z-index:calc(var(--ag-charts-layer-ui-overlay) + 1)}.ag-charts-context-menu__item[data-focus-visible-override=false]{outline:inherit;box-shadow:inherit;z-index:inherit}.ag-charts-context-menu__item[aria-disabled=true]{border:none;color:color-mix(in srgb,var(--ag-charts-input-text-color) 50%,transparent)}.ag-charts-context-menu__item[aria-disabled=true]:focus{background:inherit;cursor:inherit}.ag-charts-wrapper[dir=rtl] .ag-charts-context-menu__item .ag-charts-icon-chevron-right{transform:scaleX(-1)}.ag-charts-context-menu__divider{padding:5px 0}.ag-charts-context-menu__divider:after{content:"";display:block;border-top:1px solid var(--ag-charts-border-color)}.ag-charts-crosshair-label{position:absolute;left:0;top:0;user-select:none;pointer-events:none;font-family:var(--ag-charts-font-family);font-size:var(--ag-charts-font-size);font-weight:var(--ag-charts-font-weight);overflow:hidden;white-space:nowrap;z-index:var(--ag-charts-layer-crosshair);box-sizing:border-box}.ag-charts-crosshair-label-content{padding:0 8px;border-radius:calc(var(--ag-charts-border-radius) / 2);line-height:calc(var(--ag-charts-font-size) + 8px);background-color:var(--ag-charts-crosshair-label-background-color);color:var(--ag-charts-crosshair-label-text-color)}.ag-charts-crosshair-label--hidden{visibility:hidden!important}.ag-charts-text-input{position:absolute}.ag-charts-text-input__textarea{--placeholder-text-color: var(--ag-charts-input-placeholder-text-color);display:block;height:100%;width:100%;border:0;background:none;line-height:1.38;outline:none;transform:translateY(.09em)}.ag-charts-text-input__textarea[placeholder]:empty:before{content:attr(placeholder);color:var(--placeholder-text-color);font-weight:400}.ag-charts-text-input__textarea[placeholder]:not(:empty):before{content:""}.ag-charts-chart-toolbar__menu{min-width:200px}.ag-charts-range-buttons{--toolbar-size: var(--ag-charts-ranges-min-size);--toolbar-border-radius: var(--ag-charts-ranges__button-corner-radius);--toolbar-button-background-color: var(--ag-charts-ranges__button-fill);--toolbar-button-border-color: var(--ag-charts-ranges__button-stroke);--toolbar-button-border-width: var(--ag-charts-ranges__button-stroke-width);--toolbar-button-gap: var(--ag-charts-ranges-gap);--toolbar-button-text-color: var(--ag-charts-ranges__button-text-color);--toolbar-button-background-color--active: var(--ag-charts-ranges__button-fill--active);--toolbar-button-border-color--active: var(--ag-charts-ranges__button-stroke--active);--toolbar-button-text-color--active: var(--ag-charts-ranges__button-text-color--active);--toolbar-button-background-color--disabled: var(--ag-charts-ranges__button-fill--disabled);--toolbar-button-border-color--disabled: var(--ag-charts-ranges__button-stroke--disabled);--toolbar-button-text-color--disabled: var(--ag-charts-ranges__button-text-color--disabled);--toolbar-button-background-color--hover: var(--ag-charts-ranges__button-fill--hover);--toolbar-button-border-color--hover: var(--ag-charts-ranges__button-stroke--hover);--toolbar-button-text-color--hover: var(--ag-charts-ranges__button-text-color--hover)}.ag-charts-range-buttons--dropdown{--toolbar-border-radius: var(--ag-charts-ranges__dropdown-corner-radius);--toolbar-button-background-color: var(--ag-charts-ranges__dropdown-fill);--toolbar-button-border-color: var(--ag-charts-ranges__dropdown-stroke);--toolbar-button-border-width: var(--ag-charts-ranges__dropdown-stroke-width);--toolbar-button-text-color: var(--ag-charts-ranges__dropdown-text-color);--toolbar-button-background-color--active: var(--ag-charts-ranges__dropdown-fill--active);--toolbar-button-border-color--active: var(--ag-charts-ranges__dropdown-stroke--active);--toolbar-button-text-color--active: var(--ag-charts-ranges__dropdown-text-color--active);--toolbar-button-background-color--disabled: var(--ag-charts-ranges__dropdown-fill--disabled);--toolbar-button-border-color--disabled: var(--ag-charts-ranges__dropdown-stroke--disabled);--toolbar-button-text-color--disabled: var(--ag-charts-ranges__dropdown-text-color--disabled);--toolbar-button-background-color--hover: var(--ag-charts-ranges__dropdown-fill--hover);--toolbar-button-border-color--hover: var(--ag-charts-ranges__dropdown-stroke--hover);--toolbar-button-text-color--hover: var(--ag-charts-ranges__dropdown-text-color--hover)}.ag-charts-range-buttons .ag-charts-toolbar__button{font-size:var(--ag-charts-ranges__button-font-size);font-family:var(--ag-charts-ranges__button-font-family);font-weight:var(--ag-charts-ranges__button-font-weight);padding-top:var(--ag-charts-ranges__button-padding-top);padding-right:var(--ag-charts-ranges__button-padding-right);padding-bottom:var(--ag-charts-ranges__button-padding-bottom);padding-left:var(--ag-charts-ranges__button-padding-left)}.ag-charts-range-buttons--dropdown .ag-charts-toolbar__button{flex:1;justify-content:space-between;font-size:var(--ag-charts-ranges__dropdown-font-size);font-family:var(--ag-charts-ranges__dropdown-font-family);font-weight:var(--ag-charts-ranges__dropdown-font-weight);padding-top:var(--ag-charts-ranges__dropdown-padding-top);padding-right:var(--ag-charts-ranges__dropdown-padding-right);padding-bottom:var(--ag-charts-ranges__dropdown-padding-bottom);padding-left:var(--ag-charts-ranges__dropdown-padding-left);.ag-charts-toolbar__icon{margin-top:calc(var(--ag-charts-ranges__dropdown-font-size) - 15px);margin-bottom:calc(var(--ag-charts-ranges__dropdown-font-size) - 15px);height:calc(var(--ag-charts-ranges__dropdown-font-size) + 8px);width:calc(var(--ag-charts-ranges__dropdown-font-size) + 8px)}}.ag-charts-range-buttons--gapped{.ag-charts-toolbar__button{border-radius:var(--toolbar-border-radius);border-width:var(--toolbar-button-border-width)}.ag-charts-toolbar__button--active,.ag-charts-toolbar__button--active:hover{+.ag-charts-toolbar__button{border-inline-start-color:var(--toolbar-button-border-color)}}}.ag-charts-range-buttons-menu{background:var(--ag-charts-ranges__dropdown-fill);border-color:var(--ag-charts-ranges__dropdown-stroke);border-radius:var(--ag-charts-ranges__dropdown-corner-radius);border-width:var(--ag-charts-ranges__dropdown-stroke-width);color:var(--ag-charts-ranges__dropdown-text-color);.ag-charts-menu__row{font-size:var(--ag-charts-ranges__dropdown-font-size);font-family:var(--ag-charts-ranges__dropdown-font-family);font-weight:var(--ag-charts-ranges__dropdown-font-weight);padding-top:var(--ag-charts-ranges__dropdown-padding-top);padding-right:var(--ag-charts-ranges__dropdown-padding-right);padding-bottom:var(--ag-charts-ranges__dropdown-padding-bottom);padding-left:var(--ag-charts-ranges__dropdown-padding-left)}.ag-charts-menu__row:focus{background:var(--ag-charts-ranges__dropdown-fill--hover)}.ag-charts-menu__row[aria-disabled=true]{background:var(--ag-charts-ranges__dropdown-fill--disabled);color:var(--ag-charts-ranges__dropdown-text-color--disabled)}}.ag-charts-zoom-buttons{direction:ltr;align-items:center;display:flex;height:44px;justify-content:center;overflow:hidden;padding-bottom:10px;pointer-events:none;width:100%;.ag-charts-toolbar{--toolbar-size: 24px;--toolbar-button-padding: 1px;display:flex;font-size:var(--ag-charts-chrome-font-size);height:var(--toolbar-size);justify-content:center;opacity:1;pointer-events:auto;transition:opacity .2s ease-in-out,transform .4s ease-in-out;.ag-charts-toolbar__button--first{border-end-start-radius:var(--ag-charts-border-radius);border-start-start-radius:var(--ag-charts-border-radius)}.ag-charts-toolbar__button--last{border-end-end-radius:var(--ag-charts-border-radius);border-start-end-radius:var(--ag-charts-border-radius)}.ag-charts-toolbar__label{padding-inline-start:var(--ag-charts-spacing);padding-inline-end:var(--ag-charts-spacing)}.ag-charts-toolbar__icon+.ag-charts-toolbar__label{padding-inline-start:0}.ag-charts-toolbar__button--group-first{margin-inline-start:calc(var(--ag-charts-spacing) * 2)}&.ag-charts-zoom-buttons__toolbar--hidden{opacity:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out}}}.ag-charts-shared-toolbar{--toolbar-button-gap: calc(var(--ag-charts-spacing) * 2);.ag-charts-toolbar__button{border-radius:var(--ag-charts-border-radius);margin:0}.ag-charts-toolbar__button--active+.ag-charts-toolbar__button{border-inline-start-color:var(--ag-charts-border-color)}} +`;function ew(t,e,i){const n=Math.floor(t.length/2);return EV(t,e,n,e,i)||EV(t,t.length-e,n,-e,i)}function EV(t,e,i,n,s){let a=t[0];for(let o=e;n>0?o<=i:o>i;o+=n){const r=t[o];if(s(a,r))return!0;a=r}return!1}var{AxisInterval:Dst}=j,qL=class extends Dst{};M([b],qL.prototype,"minSpacing");var{Group:iw,LabelStyle:Ast}=j,ym=class extends Ast{constructor(){super(...arguments),this.padding=5}};M([b],ym.prototype,"enabled");M([b],ym.prototype,"padding");M([b],ym.prototype,"text");M([b],ym.prototype,"parallel");var qs=class extends xt{constructor(){super(...arguments),this.id=Nn(this),this.defaultColorRange=[],this.shape="polygon",this.label=new ym,this.scale=void 0,this.clippedRange=[-1/0,1/0],this.gridLength=0,this.gridPadding=0,this.sideFlag=-1,this.parallelFlipRotation=0,this.regularFlipRotation=0,this.direction=z.Angle,this.axisInnerRadius=0,this.axisOuterRadius=0,this.lineGroup=new iw({name:this.id}),this.rangeGroup=new iw({name:this.id}),this.labelGroup=new iw({name:this.id}),this._isRange=void 0}assignCrossLineGroup(t,e){t!==this._isRange&&(t?this.rangeGroup.appendChild(e):this.lineGroup.appendChild(e)),this._isRange=t}setSectorNodeProps(t){t.fill=this.fill,t.fillOpacity=this.fillOpacity??1,t.stroke=this.stroke,t.strokeOpacity=this.strokeOpacity??1,t.strokeWidth=this.strokeWidth??1,t.lineDash=this.lineDash}setLabelNodeProps(t,e,i,n,s){const{label:a}=this;t.x=e,t.y=i,t.text=a.text,t.textAlign="center",t.textBaseline=n,t.rotation=s,t.rotationCenterX=e,t.rotationCenterY=i,t.fill=a.color,t.setFont(a),t.setBoxing(a),t.visible=!0}};qs.className="PolarCrossLine";M([b],qs.prototype,"enabled");M([b],qs.prototype,"type");M([b],qs.prototype,"range");M([b],qs.prototype,"value");M([b],qs.prototype,"defaultColorRange");M([b],qs.prototype,"fill");M([b],qs.prototype,"fillOpacity");M([b],qs.prototype,"stroke");M([b],qs.prototype,"strokeWidth");M([b],qs.prototype,"strokeOpacity");M([b],qs.prototype,"lineDash");M([b],qs.prototype,"shape");M([b],qs.prototype,"label");var{getCrossLineValue:Ist,validateCrossLineValue:kst,Group:Cst,Path:RV,Sector:wst,RotatableText:Nst,ContinuousScale:Tst}=j,QL=class extends qs{constructor(){super(),this.direction=z.Angle,this.polygonNode=new RV,this.sectorNode=new wst,this.lineNode=new RV,this.crossLineRange=new Cst,this.labelNode=new Nst,this.ticks=[],this.crossLineRange.append(this.polygonNode),this.crossLineRange.append(this.sectorNode),this.crossLineRange.append(this.lineNode),this.labelGroup.append(this.labelNode)}visibilityCheck(){if(!Tst.is(this.scale))return!0;const[t,e]=this.scale.domain,i=Ist(this);if(this.type==="range"){const[n,s]=i;return n>=t&&n<=e&&s>=n&&s<=e}else return i>=t&&i<=e}update(t){const{scale:e}=this;if(!e||!kst(this,e)||!this.visibilityCheck()){this.rangeGroup.visible=!1,this.lineGroup.visible=!1,this.labelGroup.visible=!1;return}this.rangeGroup.visible=t,this.lineGroup.visible=t,this.labelGroup.visible=t,this.updateLineNode(t),this.updatePolygonNode(t),this.updateSectorNode(t),this.updateLabelNode(t)}updateLineNode(t){const{scale:e,type:i,value:n,lineNode:s}=this;if(!t||i!=="line"||!e){s.visible=!1;return}const a=e.convert(n);if(Number.isNaN(a)){s.visible=!1;return}const{axisInnerRadius:o,axisOuterRadius:r}=this;s.visible=!0,s.stroke=this.stroke,s.strokeOpacity=this.strokeOpacity??1,s.strokeWidth=this.strokeWidth??1,s.fill=void 0,s.lineDash=this.lineDash;const l=r*Math.cos(a),c=r*Math.sin(a),u=o*Math.cos(a),d=o*Math.sin(a);s.path.clear(!0),s.path.moveTo(u,d),s.path.lineTo(l,c),this.assignCrossLineGroup(!1,this.crossLineRange)}updatePolygonNode(t){const{polygonNode:e,range:i,scale:n,shape:s,type:a,ticks:o}=this;if(!t||a!=="range"||s!=="polygon"||!n||!i){e.visible=!1;return}const{axisInnerRadius:r,axisOuterRadius:l}=this,c=o.indexOf(i[0]),u=o.indexOf(i[1]),g=(c<=u?o.slice(c,u+1):o.slice(c).concat(o.slice(0,u+1))).map(y=>n.convert(y));e.visible=!0,this.setSectorNodeProps(e);const{path:f}=e;f.clear(!0);for(const[y,x]of g.entries()){const S=l*Math.cos(x),D=l*Math.sin(x);y===0?f.moveTo(S,D):f.lineTo(S,D)}if(r===0)f.lineTo(0,0);else{const y=g.slice().reverse();for(const x of y){const S=r*Math.cos(x),D=r*Math.sin(x);f.lineTo(S,D)}}e.path.closePath(),this.assignCrossLineGroup(!0,this.crossLineRange)}updateSectorNode(t){const{sectorNode:e,range:i,scale:n,shape:s,type:a}=this;if(!t||a!=="range"||s!=="circle"||!n||!i){e.visible=!1;return}const{axisInnerRadius:o,axisOuterRadius:r}=this,l=i.map(d=>n.convert(d)),c=n.step??0,u=n instanceof j.BandScale?c/2:0;e.visible=!0,this.setSectorNodeProps(e),e.centerX=0,e.centerY=0,e.innerRadius=o,e.outerRadius=r,e.startAngle=l[0]-u,e.endAngle=l[1]+u,this.assignCrossLineGroup(!0,this.crossLineRange)}updateLabelNode(t){const{label:e,labelNode:i,range:n,scale:s,type:a,ticks:o}=this;if(!t||e.enabled===!1||!e.text||!s||a==="range"&&!n){i.visible=!1;return}i.visible=!0;const{axisInnerRadius:r,axisOuterRadius:l}=this;let c,u,d,g;if(a==="line"){const f=ze(s.convert(this.value)),y=1.5*Math.PI,x=be(f,y)||f>y||fze(s.convert(A)));let x=(f+y)/2;f>y&&(x-=Math.PI),x=ze(x);const S=(be(x,0)||x>0)&&xl.value),r=o.reduce((l,c)=>Math.max(typeof c=="number"?Hf(c):0,l),0);return{niceDomain:s,tickDomain:s,ticks:o,rawTickCount:void 0,fractionDigits:r,timeInterval:void 0,bbox:this.getBBox()}}update(){super.update(),this.updateRadiusLine(),this.updateGridLines(),this.updateTickLines()}normalizedAngles(){const t=ze(-Math.PI/2+Ze(this.startAngle)),e=this.endAngle==null?2*Math.PI:Wb(Ze(this.endAngle)-Ze(this.startAngle)),i=t+e;return[t,i]}computeRange(){this.range=this.normalizedAngles()}updateSelections(){const t=this.tickData;this.gridLineGroupSelection.update(this.gridLength&&this.gridLine.enabled?t:[]),this.tickLineGroupSelection.update(this.tick.enabled?t:[]),this.tickLabelGroupSelection.update(this.label.enabled?t:[]),this.gridLineGroupSelection.cleanup(),this.tickLineGroupSelection.cleanup(),this.tickLabelGroupSelection.cleanup()}updatePosition(){super.updatePosition();const{translation:t,radiusLineGroup:e}=this,i=Math.floor(t.x),n=Math.floor(t.y);e.translationX=i,e.translationY=n}updateRadiusLine(){const t=this.radiusLine,{path:e}=t;e.clear(!0);const{points:i,closePath:n}=this.getAxisLinePoints();for(const{x:s,y:a,moveTo:o,arc:r,radius:l=0,startAngle:c=0,endAngle:u=0}of i)r?e.arc(s,a,l,c,u):o?e.moveTo(s,a):e.lineTo(s,a);n&&e.closePath(),t.visible=this.line.enabled,t.stroke=this.line.stroke,t.strokeWidth=this.line.width,t.fill=void 0}getAxisLinePoints(){const{scale:t,shape:e,gridLength:i}=this,[n,s]=this.range,a=be(s-n,2*Math.PI),o=[];if(e==="circle")a?o.push({x:i,y:0,moveTo:!0},{x:0,y:0,radius:i,startAngle:0,endAngle:2*Math.PI,arc:!0,moveTo:!1}):o.push({x:i*Math.cos(n),y:i*Math.sin(n),moveTo:!0},{x:0,y:0,radius:i,startAngle:ze(n),endAngle:ze(s),arc:!0,moveTo:!1});else if(e==="polygon"){const r=t.ticks({nice:[this.nice,this.nice],interval:void 0,tickCount:void 0,minTickCount:0,maxTickCount:1/0})?.ticks?.map(l=>t.convert(l));if(r&&r.length>2)for(const[l,c]of r.entries()){const u=i*Math.cos(c),d=i*Math.sin(c),g=l===0;o.push({x:u,y:d,moveTo:g})}}return{points:o,closePath:a}}updateGridLines(){const{scale:t,gridLength:e,gridLine:{style:i,width:n},innerRadiusRatio:s}=this;if(!(i&&e>0))return;const a=e*s,o=i.length;this.gridLineGroupSelection.each((r,l,c)=>{const{value:u}=l,{stroke:d,lineDash:g}=i[c%o],f=t.convert(u);r.x1=a*Math.cos(f),r.y1=a*Math.sin(f),r.x2=e*Math.cos(f),r.y2=e*Math.sin(f),r.stroke=d,r.strokeWidth=n,r.lineDash=g,r.fill=void 0}),this.gridLineGroupSelection.cleanup()}updateLabels(){const{label:t,tickLabelGroupSelection:e}=this;e.each((i,n,s)=>{const a=this.labelData[s];if(!a||a.hidden){i.visible=!1;return}i.text=a.text,i.setFont(t),i.fill=t.color,i.x=a.x,i.y=a.y,i.setAlign(a),i.setBoxing(t),i.visible=!0,a.rotation?(i.rotation=a.rotation,i.rotationCenterX=a.x,i.rotationCenterY=a.y):i.rotation=0})}updateTickLines(){const{scale:t,gridLength:e,tick:i,tickLineGroupSelection:n}=this;n.each((s,a)=>{const{value:o}=a,r=t.convert(o),l=Math.cos(r),c=Math.sin(r);s.x1=e*l,s.y1=e*c,s.x2=(e+i.size)*l,s.y2=(e+i.size)*c,s.stroke=i.stroke,s.strokeWidth=i.width})}createLabelNodeData(t,e,i){const{label:n,gridLength:s,scale:a,tick:o}=this;if(!n.enabled)return[];const r=new Ost,l=i.x-this.translation.x,c=i.x+i.width-this.translation.x,{fractionDigits:u}=this.layout.label,d=this.tickFormatter(this.scale.domain,this.tickData,!1,u),g=t.map((f,y)=>{const{value:x}=f,S=s+n.spacing+o.size,D=a.convert(x),A=Math.cos(D),I=Math.sin(D),w=S*A,N=S*I,{textAlign:O,textBaseline:L}=this.getLabelAlign(D),R=y===t.length-1&&x!==t[0]&&be(ze(D),ze(a.convert(t[0]))),P=this.getLabelRotation(D);let B=d(x,y);r.text=B,r.x=w,r.y=N,r.setFont(n),r.textAlign=O,r.textBaseline=L,r.rotation=P,P&&(r.rotationCenterX=w,r.rotationCenterY=N);let F=P?Est.toCanvas(r):r.getBBox();if(F&&e.hideWhenNecessary&&!P){const H=l-F.x,$=F.x+F.width-c,Y=1;if(H>Y||$>Y){const V={maxWidth:F.width-Math.max(H,$),font:n,textWrap:"never"};B=Lx(B,V),r.text=B,F=r.getBBox()}}return{text:B,x:w,y:N,textAlign:O,textBaseline:L,hidden:B===""||(f.hidden??R),rotation:P,box:F}});return n.avoidCollisions&&this.avoidLabelCollisions(g),g}computeLabelsBBox(t,e){this.labelData=this.createLabelNodeData(this.tickData,t,e);const i=this.labelData.map(({box:n})=>n).filter(n=>n!=null);return!this.label.enabled||i.length===0?null:Rst.merge(i)}getLabelOrientation(){const{label:t}=this;return t instanceof qN?t.orientation:"fixed"}getLabelRotation(t){let e=Ze(this.label.rotation??0);t=ze(t);const i=this.getLabelOrientation();return i==="parallel"?(e+=t,t>=0&&t=Math.PI/2&&t<1.5*Math.PI&&(e+=Math.PI)),e}getLabelAlign(t){const e=Math.cos(t),i=Math.sin(t);let n,s;const a=this.getLabelOrientation(),o=be(e,0),r=be(i,0),l=be(e,1),c=be(i,-1),u=e>0&&!o,d=i>0&&!r;return a==="parallel"?(n="center",s=l&&r||d?"top":"bottom"):a==="perpendicular"?(n=c||u?"left":"right",s="middle"):(n="right",o?n="center":u&&(n="left"),s="bottom",r?s="middle":d&&(s="top")),{textAlign:n,textBaseline:s}}updateCrossLines(){const{shape:t,gridLength:e,innerRadiusRatio:i}=this;for(const n of this.crossLines)n instanceof QL&&(n.ticks=this.tickData.map(s=>s.value),n.shape=t,n.axisOuterRadius=e,n.axisInnerRadius=e*i);super.updateCrossLines()}};iv.CrossLineConstructor=QL;M([b],iv.prototype,"startAngle");M([b],iv.prototype,"endAngle");var{CategoryScale:Pst}=j,bm=class extends iv{constructor(t){super(t,new Pst),this.groupPaddingInner=0,this.paddingInner=0,this.interval=new qL}hasDefinedDomain(){return!1}generateAngleTicks(t){const{scale:e,gridLength:i}=this,{values:n,minSpacing:s}=this.interval,a={nice:[this.nice,this.nice],interval:void 0,tickCount:void 0,minTickCount:0,maxTickCount:1/0},o=n??e.ticks(a,t)?.ticks??[];if(o.length<2||s==null)return o.map(d=>({value:d,visible:!0}));const r=o[0],l=e.convert(r),c=i*Math.cos(l),u=i*Math.sin(l);for(let d=1;dMath.PI)break;const y=i*Math.cos(f),x=i*Math.sin(f);if(Math.hypot(y-c,x-u)>s){const D=new Set([r]);return ew(o,d,(A,I)=>{D.add(I)}),o.map(A=>{const I=D.has(A);return{value:A,visible:I}})}}return[{value:r,visible:!0}]}avoidLabelCollisions(t){const{minSpacing:e}=this.label;if(t.length<3)return;const i=(l,c)=>{if(l.hidden||c.hidden)return!1;if(e==null)return l.box.collidesBBox(c.box);const u=l.box.clone().grow(e/2),d=c.box.clone().grow(e/2);return u.collidesBBox(d)},n=t[0],s=t.at(-1),a=new Set([n]),o=be(n.x,s.x)&&be(n.y,s.y),r=Math.floor(t.length/2);for(let l=1;l<=r;l++){const c=o?t.slice(0,-1):t;if(!ew(c,l,i)){ew(c,l,(d,g)=>{a.add(g)});break}}for(const l of t)a.has(l)||(l.hidden=!0,l.box=void 0)}tickFormatParams(){return{type:"category"}}datumFormatParams(t,e){const{datum:i,seriesId:n,legendItemName:s,key:a,source:o,property:r,domain:l,boundSeries:c}=e;return{type:"category",value:t,datum:i,seriesId:n,legendItemName:s,key:a,source:o,property:r,domain:l,boundSeries:c}}};bm.className="AngleCategoryAxis";bm.type="angle-category";M([b],bm.prototype,"groupPaddingInner");M([b],bm.prototype,"paddingInner");M([b],bm.prototype,"interval");j.angleCategoryAxisOptionsDefs;var{LinearScale:nw}=j,nK=class QN extends nw{constructor(){super(...arguments),this.arcLength=0}static getNiceStepAndTickCount(e,i){const[n,s]=i;let a=nw.getTickStep(n,s,e);const o=Number.isNaN(e.maxTickCount)?1/0:e.maxTickCount,r=Math.abs(s-n)/a;let l=Math.pow(2,Math.ceil(Math.log(r)/Math.log(2)));return l>o&&(l/=2,a*=2),{count:l,step:a}}ticks(e,i=this.domain){const{arcLength:n}=this;if(!i||i.length<2||i.some(u=>!Number.isFinite(u))||n<=0)return{ticks:[],count:0};const{nice:s,interval:a}=e,[o,r]=i;if(a){const u=Math.abs(a),d=this.getPixelRange();if(!lp((r-o)/u,d)){const g=Df(o,r,u);return{ticks:g.ticks,count:g.count}}}let l;if(s&&this.hasNiceRange()){const u=super.niceDomain(e,i);l=QN.getNiceStepAndTickCount(e,u).step}else l=nw.getTickStep(o,r,e);const c=Df(o,r,l);return{ticks:c.ticks,count:c.count}}hasNiceRange(){const e=this.range.slice().sort((n,s)=>n-s);return[Math.PI,2*Math.PI].some(n=>be(n,e[1]-e[0]))}niceDomain(e,i=this.domain){const n=super.niceDomain(e,i);if(!this.hasNiceRange())return n;const s=n[0]>n[1],a=s?n[1]:n[0],{step:o,count:r}=QN.getNiceStepAndTickCount(e,n),l=1/o,c=o>=1?Math.ceil(a/o+r)*o:Math.ceil((a+r*o)*l)/l;return s?[c,a]:[a,c]}getPixelRange(){return this.arcLength}},Bp=class extends iv{constructor(t){super(t,new nK),this.shape="circle",this.interval=new qL}hasDefinedDomain(){const{min:t,max:e}=this;return t!=null&&e!=null&&td>=c&&d<=u).sort((d,g)=>d-g)}return l.map(c=>({value:c,visible:!0}))}avoidLabelCollisions(t){const{minSpacing:e}=this.label,i=(a,o)=>{if(a.hidden||o.hidden)return!1;if(e==null)return a.box.collidesBBox(o.box);const r=a.box.clone().grow(e/2),l=o.box.clone().grow(e/2);return r.collidesBBox(l)},n=t[0],s=t.at(-1);n!==s&&be(n.x,s.x)&&be(n.y,s.y)&&(s.hidden=!0);for(let a=1;a0&&(l.hidden=!0,l.box=void 0);return}}for(const[a,o]of t.entries())a>0&&(o.hidden=!0,o.box=void 0)}tickFormatParams(t,e,i){return{type:"number",visibleDomain:void 0,fractionDigits:i}}datumFormatParams(t,e,i){const{datum:n,seriesId:s,legendItemName:a,key:o,source:r,property:l,domain:c,boundSeries:u}=e;return{type:"number",value:t,datum:n,seriesId:s,legendItemName:a,key:o,source:r,property:l,domain:c,boundSeries:u,fractionDigits:i,visibleDomain:void 0}}};Bp.className="AngleNumberAxis";Bp.type="angle-number";M([b],Bp.prototype,"min");M([b],Bp.prototype,"max");M([b],Bp.prototype,"preferredMin");M([b],Bp.prototype,"preferredMax");M([b],Bp.prototype,"interval");j.angleNumberAxisOptionsDefs;var{OrdinalTimeScale:zst,ApproximateOrdinalTimeScale:Bst,APPROXIMATE_THRESHOLD:Vst,TimeAxisParentLevel:_st,minimumTimeAxisDatumGranularity:Fst}=j,JL=class extends j.DiscreteTimeAxis{constructor(t){const e=new zst;super(t,e),this.parentLevel=new _st,this.accurateScale=e,this.approximateScale=new Bst,this.approximateScale.setSourceScale(e),Object.defineProperty(this,"scale",{get:()=>this.getActiveScale(),configurable:!0})}get primaryLabel(){return this.parentLevel.enabled?this.parentLevel.label:void 0}get primaryTick(){return this.parentLevel.enabled?this.parentLevel.tick:void 0}getActiveScale(){const t=this.accurateScale.bandCount(this.visibleRange);return(this.accurateScale.getUniformityCache(this.visibleRange)?.isUniform??!1)&&t>=Vst?this.approximateScale:this.accurateScale}processData(){super.processData();const{boundSeries:t,direction:e}=this;this.minimumTimeGranularity=Fst(t,e,void 0,void 0)}tickFormatParams(t,e,i,n){n??(n=ID(e));const s=kD(t),a=Er(n),o=Al(n),r=rp(n);return{type:"date",unit:a,step:o,epoch:r,truncateDate:s}}datumFormatParams(t,e,i,n,s){if(typeof t=="number"&&(t=new Date(t)),n==null){const{minimumTimeGranularity:S}=this,D=Bx(t);S!=null&&Ms(S)=this.axisInnerRadius&&n<=this.axisOuterRadius),this.rangeGroup.visible=t,this.lineGroup.visible=t,this.labelGroup.visible=t,this.updatePolygonNode(t),this.updateSectorNode(t),this.updateLabelNode(t),this.assignCrossLineGroup(this.type==="range",this.crossLineRange)}updateRadii(){const{range:t,scale:e,type:i,axisInnerRadius:n,axisOuterRadius:s}=this;if(!e)return{innerRadius:0,outerRadius:0};const a=l=>s+n-l;let o,r;if(i==="line")o=a(e.convert(this.value)),r=o;else{const l=Math.abs(e?.bandwidth??0),c=t.map(u=>e.convert(u));o=a(Math.max(...c)),r=a(Math.min(...c))+l}this.outerRadius=o,this.innerRadius=r}drawPolygon(t,e,i){for(const[n,s]of e.entries()){const a=t*Math.cos(s),o=t*Math.sin(s);n===0?i.path.moveTo(a,o):i.path.lineTo(a,o)}i.path.closePath()}updatePolygonNode(t){const{gridAngles:e,polygonNode:i,scale:n,shape:s,type:a,innerRadius:o,outerRadius:r}=this;if(!t||s!=="polygon"||!n||!e){i.visible=!1;return}i.visible=!0;const l=this.getPadding();i.path.clear(!0),this.drawPolygon(r-l,e,i);const c=e.slice().reverse(),u=a==="line"?r-l:o+l;this.drawPolygon(u,c,i),this.setSectorNodeProps(i)}updateSectorNode(t){const{axisInnerRadius:e,axisOuterRadius:i,scale:n,sectorNode:s,shape:a,innerRadius:o,outerRadius:r}=this;if(!t||a!=="circle"||!n){s.visible=!1;return}s.visible=!0,s.startAngle=0,s.endAngle=2*Math.PI;const l=this.getPadding(),c=Nt(e,o+l,i),u=Nt(e,r-l,i);s.innerRadius=Math.min(c,u),s.outerRadius=Math.max(c,u),this.setSectorNodeProps(s)}updateLabelNode(t){const{innerRadius:e,label:i,labelNode:n,scale:s,shape:a,type:o}=this;if(!t||i.enabled===!1||!i.text||!s){n.visible=!1;return}const r=Dl((i.positionAngle??0)-90),l=(be(r,0)||r>0)&&rthis.tickFormatter(...A),domain:t,range:o,reverse:r,niceMode:e,visibleRange:n,defaultTickMinSpacing:l,labelOffset:a,sideFlag:s,axisRotation:0,sizeLimit:void 0,primaryTickCount:void 0}),{tickData:u}=c,{ticks:d,rawTicks:g,rawTickCount:f,tickDomain:y,fractionDigits:x,niceDomain:S=t}=u,D=d.map(A=>this.getTickLabelProps(A,c));return this.generatedTicks={ticks:d,labels:D},{ticks:g,tickDomain:y,niceDomain:S,rawTickCount:f,fractionDigits:x,timeInterval:void 0}}updateSelections(){const{generatedTicks:t}=this;if(!t)return;const{ticks:e,labels:i}=t;this.gridLineGroupSelection.update(this.gridLength?e:[]),this.tickLabelGroupSelection.update(i),this.gridPathSelection.update(this.gridLine.enabled?this.prepareGridPathTickData(e):[]),this.gridLineGroupSelection.cleanup(),this.tickLabelGroupSelection.cleanup(),this.gridPathSelection.cleanup()}updateLabels(){if(!this.label.enabled)return;const t=j.resetAxisLabelSelectionFn();this.tickLabelGroupSelection.each((e,i)=>{e.fill=i.color,e.text=i.text,e.textBaseline=i.textBaseline,e.textAlign=i.textAlign??"center",e.setFont(i),e.setBoxing(i),e.setProperties(t(e,i))})}updateGridLines(){const{gridLine:{style:t,width:e},shape:i,generatedTicks:n}=this;if(!t||!n)return;const s=t.length,a=(g,f)=>{const{stroke:y,lineDash:x}=t[f%s];g.stroke=y,g.strokeWidth=e,g.lineDash=x,g.fill=void 0},[o,r]=this.gridRange??[0,2*Math.PI],l=be(r-o,2*Math.PI),d=i==="circle"?(g,f)=>{const{path:y}=g;y.clear(!0);const x=this.getTickRadius(f);l?(y.moveTo(x,0),y.arc(0,0,x,0,2*Math.PI)):(y.moveTo(x*Math.cos(o),x*Math.sin(o)),y.arc(0,0,x,ze(o),ze(r))),l&&y.closePath()}:(g,f)=>{const{path:y}=g,x=this.gridAngles;if(y.clear(!0),!x||x.length<3)return;const S=this.getTickRadius(f);for(const[D,A]of x.entries()){const I=S*Math.cos(A),w=S*Math.sin(A);D===0?y.moveTo(I,w):y.lineTo(I,w);for(const[N,O]of x.entries()){const L=S*Math.cos(O),R=S*Math.sin(O);N===0?y.moveTo(L,R):y.lineTo(L,R)}y.closePath()}y.closePath()};this.gridPathSelection.each((g,f,y)=>{a(g,y),d(g,f)})}updateTitle(){const t=o=>o.defaultValue,{title:e,range:i}=this,{formatter:n=t}=this.title;e.caption.enabled=e.enabled,e.caption.fontFamily=e.fontFamily,e.caption.fontSize=e.fontSize,e.caption.fontStyle=e.fontStyle,e.caption.fontWeight=e.fontWeight,e.caption.color=e.color,e.caption.wrapping=e.wrapping,e.caption.truncate=e.truncate,e.caption.maxWidth=e.maxWidth,e.caption.maxHeight=e.maxHeight;let s=!1;const a=e.caption.node;if(e.enabled){const o=Math.abs(i[1]-i[0]);s=!0,a.rotation=Math.PI/2,a.x=Math.floor((i[0]+i[1])/2),a.y=-e.spacing,a.textAlign="center",a.textBaseline="bottom",a.text=this.cachedCallWithContext(n,this.getTitleFormatterParams(this.scale.domain)),e.caption.text=a.text,e.caption.computeTextWrap(o,1/0)}a.visible=s}updateCrossLines(){for(const t of this.crossLines)if(t instanceof tO){const{shape:e,gridAngles:i,range:n,innerRadiusRatio:s}=this,a=n[0];t.shape=e,t.gridAngles=i,t.axisOuterRadius=a,t.axisInnerRadius=a*s}super.updateCrossLines()}createLabel(){return new eO}getTickLabelProps(t,e){const{label:i}=this,{rotation:n,textBaseline:s,textAlign:a}=e,o=this.scale.range,r=t.tickLabel??"",c=i.getSideFlag()*(this.getTickSize()+i.spacing+this.seriesAreaPadding),u=r!=="";return{...this.getLabelStyles({value:t.tick,formattedValue:t.tickLabel}),tickId:t.tickId,rotation:n,text:r,textAlign:a,textBaseline:s,visible:u,x:c,y:t.translation,rotationCenterX:c,rotationCenterY:t.translation,range:o}}};bA.CrossLineConstructor=tO;M([b],bA.prototype,"positionAngle");var{CategoryScale:FV}=j,xm=class extends bA{constructor(t){super(t,new FV),this.shape="circle",this.groupPaddingInner=0,this.paddingInner=0,this.paddingOuter=0}hasDefinedDomain(){return!1}normaliseDataDomain(t){return{domain:t.domain,clipped:!1}}prepareGridPathTickData(t){return t.slice().reverse()}getTickRadius(t){const{scale:e,innerRadiusRatio:i}=this,n=e.range[0],s=n*i;if(FV.is(e)){const a=e.domain,o=a.length-1-a.indexOf(t.tick);return o===0?s:e.inset+e.step*(o-.5)+e.bandwidth/2}else{const a=(n-s)/e.domain.length;return n-t.translation+s-a/2}}tickFormatParams(){return{type:"category"}}datumFormatParams(t,e){const{datum:i,seriesId:n,legendItemName:s,key:a,source:o,property:r,domain:l,boundSeries:c}=e;return{type:"category",value:t,datum:i,seriesId:n,legendItemName:s,key:a,source:o,property:r,domain:l,boundSeries:c}}};xm.className="RadiusCategoryAxis";xm.type="radius-category";M([b],xm.prototype,"groupPaddingInner");M([pi("scale","paddingInner"),b],xm.prototype,"paddingInner");M([pi("scale","paddingOuter"),b],xm.prototype,"paddingOuter");j.radiusCategoryAxisOptionsDefs;var{LinearScale:Zst}=j,vm=class extends bA{constructor(t){super(t,new Zst),this.shape="polygon"}hasDefinedDomain(){const{min:t,max:e}=this;return t!=null&&e!=null&&tn!==i).sort((n,s)=>s.tick-n.tick)}getTickRadius(t){const{scale:e}=this,i=e.range[0],n=i*this.innerRadiusRatio;return i-t.translation+n}normaliseDataDomain(t){const{min:e,max:i,preferredMin:n,preferredMax:s}=this,{extent:a,clipped:o}=Uf(t.domain,e,i,n,s,void 0,t.sortMetadata?.sortOrder);return{domain:a,clipped:o}}getDomainExtentsNice(){return[this.min==null&&this.nice,this.max==null&&this.nice]}tickFormatParams(t,e,i){return{type:"number",visibleDomain:void 0,fractionDigits:i}}datumFormatParams(t,e,i){const{datum:n,seriesId:s,legendItemName:a,key:o,source:r,property:l,domain:c,boundSeries:u}=e;return{type:"number",value:t,datum:n,seriesId:s,legendItemName:a,key:o,source:r,property:l,domain:c,boundSeries:u,fractionDigits:i,visibleDomain:void 0}}};vm.className="RadiusNumberAxis";vm.type="radius-number";M([b],vm.prototype,"min");M([b],vm.prototype,"max");M([b],vm.prototype,"preferredMin");M([b],vm.prototype,"preferredMax");j.radiusNumberAxisOptionsDefs;var iO=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!0,t.animationManager.skip(!1),this.cleanup.register(()=>t.animationManager.skip(!0))}};M([Bi((t,e)=>{t.ctx.animationManager.skip(!e)}),b],iO.prototype,"enabled");M([Bi((t,e)=>{e!=null&&(t.ctx.animationManager.defaultDuration=e)}),b],iO.prototype,"duration");M([Bi((t,e)=>{t.ctx.animationManager.maxAnimatableItems=e??1/0}),b],iO.prototype,"maxAnimatableItems");var qst={options:{}};qst.options.maxAnimatableItems=Mt(X);var aK=class ab extends Ln{constructor(e){super(),this.ctx=e,this.activeSections=new Set,this.sectionButtons={annotations:[],chartToolbar:[]},this.container=this.ctx.domManager.addChild("canvas-overlay","shared-toolbar"),this.container.role="presentation"}getSharedToolbar(e){return this.sharedToolbar||this.createSharedToolbar(),e==="chartToolbar"&&this.sharedToolbar&&this.sharedToolbar.setAriaLabelId("ariaLabelFinancialCharts"),this.toolbarWithSection(e)}createSharedToolbar(){this.sharedToolbar=new j.Toolbar(this.ctx,"ariaLabelAnnotationsToolbar","vertical"),this.sharedToolbar.addClass("ag-charts-shared-toolbar"),this.container.append(this.sharedToolbar.getElement()),this.cleanup.register(()=>{this.sharedToolbar&&(this.sharedToolbar.getElement().remove(),this.sharedToolbar.destroy(),this.sharedToolbar=void 0)})}toolbarWithSection(e){const i=this.sharedToolbar,n={layout:(s,a=0)=>{if(this.firstLayoutSection!=null&&this.firstLayoutSection!==e&&this.activeSections.has(this.firstLayoutSection))return;this.firstLayoutSection=e;const o=i.getBounds().width,{isRtl:r}=this.ctx.domManager;i.setBounds({x:r?s.x+s.width-o:s.x,y:s.y,width:o}),s.shrink(o+i.horizontalSpacing+a,r?"right":"left")},addToolbarListener:(s,a)=>i.addToolbarListener(s,o=>{const r=this.getSectionIndex(e,o.button.index);if(r<0)return;const l={...o,button:this.sectionButtons[e][r]};a(l)}),updateButtons:s=>{this.sectionButtons[e]=s;const a=ab.SECTION_ORDER.flatMap(o=>this.sectionButtons[o]);i.updateButtons(a)},updateButtonByIndex:(s,a)=>{i.updateButtonByIndex(this.getIndex(e,s),a)},toggleActiveButtonByIndex:s=>{i.toggleActiveButtonByIndex(this.getIndex(e,s))},toggleButtonEnabledByIndex:(s,a)=>{i.toggleButtonEnabledByIndex(this.getIndex(e,s),a)},setHidden:s=>{s?this.activeSections.delete(e):this.activeSections.add(e);let a=0;for(const o of ab.SECTION_ORDER){if(o!==e){a+=this.sectionButtons[o].length;continue}for(const r of this.sectionButtons[e].keys())i.setButtonHiddenByIndex(a+r,s)}},destroy:()=>{n.setHidden(!0),this.activeSections.size===0&&this.destroy()},clearActiveButton:i.clearActiveButton.bind(i),addListener:i.addListener.bind(i),removeListener:i.removeListener.bind(i)};return n.setHidden(!1),n}getIndex(e,i){let n=0;for(const s of ab.SECTION_ORDER){if(s===e)return n+i;n+=this.sectionButtons[s].length}return-1}getSectionIndex(e,i){let n=0;for(const s of ab.SECTION_ORDER){if(s===e)return i>=n+this.sectionButtons[e].length?-1:i-n;n+=this.sectionButtons[s].length}return-1}};aK.SECTION_ORDER=["chartToolbar","annotations"];var Qst=aK,Jst='
',HV="text-input",jV="canvas-overlay",tat=class{constructor(t){this.ctx=t,this.cleanup=new qe,this.layout={getTextInputCoords:()=>({x:0,y:0}),getTextPosition:()=>"center",alignment:"center",textAlign:"center"},this.visible=!1,this.element=t.domManager.addChild(jV,HV),this.element.classList.add("ag-charts-text-input"),this.cleanup.register(()=>t.domManager.removeChild(jV,HV))}setKeyDownHandler(t){this.cleanup.register(Qe(this.element,"keydown",t))}show(t){this.element.innerHTML=Jst;const e=this.element.firstElementChild;Nr(e,{role:"textbox","data-preventdefault":!1}),e.setAttribute("placeholder",this.ctx.localeManager.t(t.placeholderText??"inputTextareaPlaceholder")),t.styles?.placeholderColor&&e.style.setProperty("--placeholder-text-color",t.styles?.placeholderColor),e.innerText=t.text??"",e.style.color=t.styles?.color??"inherit",e.style.fontFamily=t.styles?.fontFamily??"inherit",e.style.fontSize=t.styles?.fontSize?`${t.styles.fontSize}px`:"inherit",e.style.fontStyle=t.styles?.fontStyle??"inherit",e.style.fontWeight=typeof t.styles?.fontWeight=="number"?`${t.styles.fontWeight}`:t.styles?.fontWeight??"inherit",b1(e),e.addEventListener("input",()=>{this.updatePosition(),t.onChange?.(this.getValue(),this.getBBox())}),e.addEventListener("click",i=>{i.stopPropagation()}),t.layout&&(this.layout=t.layout,this.updatePosition()),t.onChange?.(this.getValue(),this.getBBox()),this.visible=!0}hide(){this.element.innerHTML="",this.layout={getTextInputCoords:()=>({x:0,y:0}),getTextPosition:()=>"center",alignment:"center",textAlign:"center"},this.visible=!1}isVisible(){return this.visible}updateColor(t){this.element.firstElementChild&&(this.element.firstElementChild.style.color=t)}updateFontSize(t){if(this.element.firstElementChild)return this.element.firstElementChild.style.fontSize=`${t}px`,this.updatePosition(),this.getBBox()}getValue(){if(this.element.firstElementChild)return this.element.firstElementChild.innerText.trim()}updatePosition(){const{element:t}=this,e=t.firstElementChild;if(!e)return;const i=this.ctx.domManager.getBoundingClientRect(),{width:n,getTextInputCoords:s,getTextPosition:a,alignment:o,textAlign:r}=this.layout;t.style.setProperty("width",n?`${n}px`:"unset");const l=e.getBoundingClientRect(),c=s(l.height);let u=c.x;o==="center"?u-=(n??l.width)/2:o==="right"&&(u-=n??l.width);const d=a();let g=c.y;d==="center"?g-=l.height/2:d==="bottom"&&(g-=l.height),t.style.setProperty("top",`${g}px`),t.style.setProperty("left",`${u}px`),t.style.setProperty("max-width",`${i.width-u}px`),t.style.setProperty("text-align",o),e.style.setProperty("text-align",r)}getBBox(){const{left:t,top:e,width:i,height:n}=this.element.getBoundingClientRect();return new j.BBox(t,e,M4(i,2),n)}destroy(){this.cleanup.flush()}},nO=class extends xt{constructor(){super(...arguments),this.enabled=!1,this.axes="y"}};M([b],nO.prototype,"enabled");M([b],nO.prototype,"axes");var sO=(t=>(t.Line="line",t.HorizontalLine="horizontal-line",t.VerticalLine="vertical-line",t.DisjointChannel="disjoint-channel",t.ParallelChannel="parallel-channel",t.FibonacciRetracement="fibonacci-retracement",t.FibonacciRetracementTrendBased="fibonacci-retracement-trend-based",t.Callout="callout",t.Comment="comment",t.Note="note",t.Text="text",t.Arrow="arrow",t.ArrowUp="arrow-up",t.ArrowDown="arrow-down",t.DateRange="date-range",t.PriceRange="price-range",t.DatePriceRange="date-price-range",t.QuickDatePriceRange="quick-date-price-range",t))(sO||{}),eat=Object.values(sO);function iat(t){for(const e of eat)if(e===t)return e}var sx=class extends xt{};M([b],sx.prototype,"x");M([b],sx.prototype,"y");var nat=class extends Qs(Xc(cK(xt))){},aO=class extends Qs(Xc(_l(lO(Fp(xt))))){constructor(){super(...arguments),this.cornerRadius=2}};M([b],aO.prototype,"enabled");M([b],aO.prototype,"cornerRadius");var sat=class extends _l(xt){},aat=class extends Qs(Xc(_l(xt))){},Vp=class extends Fp(xt){constructor(){super(...arguments),this.label="",this.position="top",this.alignment="left"}};M([b],Vp.prototype,"label");M([b],Vp.prototype,"position");M([b],Vp.prototype,"alignment");var oat=class extends Fp(xt){},nv=class extends Fp(xt){constructor(){super(...arguments),this.label=""}};M([b],nv.prototype,"label");M([b],nv.prototype,"position");M([b],nv.prototype,"alignment");function _p(t){class e extends lat(cK(t)){constructor(){super(...arguments),this.id=yb()}}return e}function oO(t){class e extends t{constructor(){super(...arguments),this.start=new sx,this.end=new sx}}return M([b],e.prototype,"start"),M([b],e.prototype,"end"),e}function oK(t){class e extends t{}return M([b],e.prototype,"x"),M([b],e.prototype,"y"),e}function rK(t){class e extends t{}return M([b],e.prototype,"value"),e}function rO(t){class e extends t{constructor(){super(...arguments),this.background=new sat}}return M([b],e.prototype,"background"),e}function Xu(t){class e extends t{constructor(){super(...arguments),this.handle=new aat}}return M([b],e.prototype,"handle"),e}function lK(t){class e extends t{constructor(){super(...arguments),this.axisLabel=new aO}}return M([b],e.prototype,"axisLabel"),e}function lO(t){class e extends t{constructor(){super(...arguments),this.padding=void 0,this.textAlign="center",this.formatter=void 0}}return M([b],e.prototype,"padding"),M([b],e.prototype,"textAlign"),M([b],e.prototype,"formatter"),e}function rat(t){class e extends t{}return e}function cO(t){class e extends t{}return M([b],e.prototype,"extendStart"),M([b],e.prototype,"extendEnd"),e}function lat(t){class e extends t{isWriteable(){return!this.locked&&!this.readOnly}isHoverable(){return!this.readOnly}}return M([b],e.prototype,"locked"),M([b],e.prototype,"readOnly"),e}function hO(t){class e extends t{setLocaleManager(n){this.localeManager??(this.localeManager=n)}}return e}function cK(t){class e extends t{}return M([b],e.prototype,"visible"),e}function _l(t){class e extends t{}return M([b],e.prototype,"fill"),M([b],e.prototype,"fillOpacity"),e}function Qs(t){class e extends t{}return M([b],e.prototype,"stroke"),M([b],e.prototype,"strokeOpacity"),M([b],e.prototype,"strokeWidth"),e}function Xc(t){class e extends t{constructor(){super(...arguments),this.lineCap=void 0,this.computedLineDash=void 0}}return M([b],e.prototype,"lineDash"),M([b],e.prototype,"lineDashOffset"),M([b],e.prototype,"lineStyle"),e}function Fp(t){class e extends t{constructor(){super(...arguments),this.fontSize=zc.SMALL,this.fontFamily="Verdana, sans-serif"}}return M([b],e.prototype,"fontStyle"),M([b],e.prototype,"fontWeight"),M([b],e.prototype,"fontSize"),M([b],e.prototype,"fontFamily"),M([b],e.prototype,"color"),e}function hK(t){return Je(t)||zi(t)||aa(t)?{value:t,groupPercentage:0}:t??{value:void 0,groupPercentage:0}}function Jn(t){return hK(t)?.value}function oa(t,e){if(t.start==null||t.end==null)return;const i=Ki(t.start,e),n=Ki(t.end,e);if(!(i==null||n==null))return{x1:i.x,y1:i.y,x2:n.x,y2:n.y}}function Ki(t,e){const i=vc(t.x,e.xAxis),n=vc(t.y,e.yAxis);return{x:i,y:n}}function vc(t,e){if(t==null)return 0;const{value:i,groupPercentage:n}=hK(t),{scale:s,snapToGroup:a}=e,o=s.bandwidth===0?s.step??0:s.bandwidth??0,r=a?o/2:o*n;return s.convert(i)+r}function na(t,e){const i=BM(t.x,e.xAxis),n=BM(t.y,e.yAxis);return{x:i,y:n}}function BM(t,e){const{scale:i}=e;if(e.continuous&&i.step==null)return e.scaleInvert(t);const n=e.scaleInvertNearest(t),s=i.bandwidth===0?i.step:i.bandwidth??0,a=i.convert(n),o=a+s,r=a===o?0:(t-a)/(o-a);return{value:n,groupPercentage:r}}var uO=class extends _p(oO(Xu(xt))){constructor(){super(...arguments),this.snapToAngle=45}getDefaultColor(t){}getDefaultOpacity(t){}},uK=class extends hO(lO(Fp(uO))){constructor(){super(...arguments),this.text="",this.position="top",this.alignment="left",this.placement="inside",this.placeholderText="inputTextareaPlaceholder"}getDefaultColor(t){return this.color}getDefaultOpacity(t){}getPlaceholderColor(){}getPadding(){const{padding:t=0}=this;return{top:t,right:t,bottom:t,left:t}}getText(){const t=this.text.length==0;let e=this.text;return t&&(e=this.placeholderText??"",this.localeManager&&(e=this.localeManager.t(e))),{text:e,isPlaceholder:t}}getTextInputCoords(t,e){return Ki(this.end,t)}getTextPosition(){return this.position}};M([b],uK.prototype,"text");var cat={top:6,right:12,bottom:9,left:12},Ir=class extends _l(Qs(uK)){constructor(){super(...arguments),this.type="callout",this.position="bottom",this.alignment="left"}static is(t){return Bt(t)&&t.type==="callout"}getDefaultColor(t){switch(t){case"fill-color":return this.fill;case"line-color":return this.stroke;default:return this.color}}getDefaultOpacity(t){switch(t){case"fill-color":return this.fillOpacity;case"line-color":return this.strokeOpacity;default:return}}getPlaceholderColor(){const{r:t,g:e,b:i}=se.fromString(this.color??"#888888");return new se(t,e,i,.66).toString()}getPadding(){const{padding:t}=this;return t==null?{...cat}:{top:t,right:t,bottom:t,left:t}}getTextInputCoords(t,e){const i=super.getTextInputCoords(t,e),n=this.getPadding(),s=n.left??0,a=n.bottom??0;return{x:i.x+s,y:i.y-a}}};M([b],Ir.prototype,"type");var xA=class extends _p(oK(Xu(lO(Fp(xt))))){constructor(){super(...arguments),this.text="",this.position="top",this.alignment="left",this.placement="inside",this.placeholderText="inputTextareaPlaceholder"}getDefaultColor(t){return this.color}getDefaultOpacity(t){}getPlaceholderColor(){}getPadding(){const{padding:t=0}=this;return{top:t,right:t,bottom:t,left:t}}getText(){const t=this.text.length==0;return{text:t?this.placeholderText??"":this.text,isPlaceholder:t}}getTextInputCoords(t,e){return Ki(this,t)}getTextPosition(){return this.position}};M([b],xA.prototype,"text");var Q0={top:8,right:14,bottom:8,left:14},al=class extends _l(Qs(xA)){constructor(){super(...arguments),this.type="comment",this.position="bottom",this.alignment="left"}static is(t){return Bt(t)&&t.type==="comment"}getDefaultColor(t){switch(t){case"fill-color":return this.fill;case"line-color":return this.stroke;default:return this.color}}getDefaultOpacity(t){switch(t){case"fill-color":return this.fillOpacity;case"line-color":return this.strokeOpacity;default:return}}getPlaceholderColor(){const{r:t,g:e,b:i}=se.fromString(this.color??"#888888");return new se(t,e,i,.66).toString()}getPadding(){const{padding:t,fontSize:e}=this;return t==null?{top:Math.max(e*.4,Q0.top),bottom:Math.max(e*.4,Q0.bottom),left:Math.max(e*.8,Q0.left),right:Math.max(e*.8,Q0.right)}:{top:t,right:t,bottom:t,left:t}}getTextInputCoords(t,e){const i=super.getTextInputCoords(t,e),n=this.getPadding();return{x:i.x+n.left,y:i.y-n.bottom}}};M([b],al.prototype,"type");function ax(t,e){return t?"dashed":e??"solid"}function dK(t,e){switch(e){case"solid":return[];case"dashed":return[t*4,t*2];case"dotted":return[0,t*2]}}function Sm(t,e,i,n){const s=ax(t,i);return e??t??dK(n??1,s)}function Mm(t,e,i){const n=ax(e,i);return t??n==="dotted"?"round":void 0}function hat(t,e){const[i,n]=at.from(t),s=e.height,a=at.gradient(n,i,s),o=at.intercept(n,a,s),r=[{x:i.x,y:s??0},{x:i.x,y:s==null?e.height:s-e.height}];if(a===1/0)return r;let l=[at.intersectAtY(a,o,0,s),at.intersectAtY(a,o,e.height,s),at.intersectAtX(a,o,0,s),at.intersectAtX(a,o,e.width,s)];return l=l.filter(c=>c.x>=e.x&&c.x<=e.width&&c.y>=e.y&&c.y<=e.height).sort((c,u)=>c.x===u.x?0:c.x{},this.text=new Vp}getDefaultColor(t){switch(t){case"fill-color":return this.background.fill;case"line-color":return this.stroke;case"text-color":return this.text.color}}getDefaultOpacity(t){switch(t){case"fill-color":return this.background.fillOpacity;case"line-color":return this.strokeOpacity}}getLineDash(){return Sm(this.lineDash,this.computedLineDash,this.lineStyle,this.strokeWidth)}getLineCap(){return Mm(this.lineCap,this.lineDash,this.lineStyle)}};M([b],Dm.prototype,"statistics");M([b],Dm.prototype,"text");function pO(t){class e extends t{constructor(){super(...arguments),this.hasDateRange=!0}}return e}function gO(t){class e extends t{constructor(){super(...arguments),this.hasPriceRange=!0}}return e}var Yo=class extends pO(Dm){constructor(){super(...arguments),this.type="date-range",this.direction="horizontal"}static is(t){return Bt(t)&&t.type==="date-range"}};M([b],Yo.prototype,"type");M([b],Yo.prototype,"extendAbove");M([b],Yo.prototype,"extendBelow");var $o=class extends gO(Dm){constructor(){super(...arguments),this.type="price-range",this.direction="vertical"}static is(t){return Bt(t)&&t.type==="price-range"}};M([b],$o.prototype,"type");M([b],$o.prototype,"extendLeft");M([b],$o.prototype,"extendRight");var gc=class extends pO(gO(Dm)){constructor(){super(...arguments),this.type="date-price-range",this.direction="both"}static is(t){return Bt(t)&&t.type==="date-price-range"}};M([b],gc.prototype,"type");var ro=class extends pO(gO(Dm)){constructor(){super(...arguments),this.type="quick-date-price-range",this.up=new JN,this.down=new JN,this.direction="both"}static is(t){return Bt(t)&&t.type==="quick-date-price-range"}};M([b],ro.prototype,"type");M([b],ro.prototype,"up");M([b],ro.prototype,"down");var{BBox:dat}=j,vA=1.38;function SA(t,e,i){return i?kc(e,{maxWidth:i,font:t,textWrap:"always",avoidOrphans:!1}):e}function pat(t,e){const{lineMetrics:i,width:n}=Ve(t).measureLines(e),s=i.length*nr(t.fontSize,vA);return{width:n,height:s}}function fO(t,e,i,n){let s=n?.width??0,a=n?.height??0;if(!n){const o=t.width==null?e:SA(t,e,t.width);({width:s,height:a}=pat(t,o))}return new dat(i.x,i.y,s,a)}function pK(t,e,i,n,{x:s,y:a},o){const{visible:r=!0,fontFamily:l,fontSize:c=14,fontStyle:u,fontWeight:d,textAlign:g}=n,f=nr(c,vA);o??(o=n.position=="center"?"middle":n.position);const y=i?n.getPlaceholderColor():n.color;t.setProperties({x:s,y:a,visible:r,text:e,fill:y,fontFamily:l,fontSize:c,fontStyle:u,fontWeight:d,textAlign:g,lineHeight:f,textBaseline:o})}var gat=10,fat=11,gK=20,mat=22,yat=10,fK=gK+yat,mK=34,bat=class extends _l(Qs(xt)){},Oa=class extends _l(Qs(xA)){constructor(){super(...arguments),this.type="note",this.background=new bat,this.position="bottom",this.alignment="center",this.width=200}static is(t){return Bt(t)&&t.type==="note"}getDefaultColor(t){switch(t){case"line-color":return this.fill;case"text-color":return this.color}}getDefaultOpacity(t){switch(t){case"line-color":return this.fillOpacity;case"text-color":return}}getPadding(){const t=this.padding??gat;return{top:t,right:t,bottom:t,left:t}}getTextInputCoords(t,e){const{width:i,text:n}=this,s=super.getTextInputCoords(t,e),a=this.getPadding().top,o=fO(this,n,s);o.x=Nt(i/2,o.x,t.seriesRect.width-i/2);const r=o.y-fK-a*2,l=o.y+fat+a*2,c=Math.max(o.height,e);return r-c-mK<0?(o.y=l,this.position="top"):(o.y=r+a,this.position="bottom"),{x:o.x,y:o.y}}isHoverable(){return!0}};M([b],Oa.prototype,"type");M([b],Oa.prototype,"background");var xat=class extends _p(oK(Xu(xt))){getDefaultColor(t){}getDefaultOpacity(t){}},mO=class yK extends _l(xat){constructor(){super(...arguments),this.size=32}static is(e){return e instanceof yK}getDefaultColor(e){return e==="fill-color"?this.fill:void 0}getDefaultOpacity(e){return e==="fill-color"?this.fillOpacity:void 0}},Bs=class extends _p(rK(Xu(lK(Qs(Xc(xt)))))){constructor(){super(...arguments),this.direction="horizontal",this.type="horizontal-line",this.text=new Vp}static is(t){return Bt(t)&&t.type==="horizontal-line"}getDefaultColor(){return this.stroke}getDefaultOpacity(){return this.strokeOpacity}getLineDash(){return Sm(this.lineDash,this.computedLineDash,this.lineStyle,this.strokeWidth)}getLineCap(){return Mm(this.lineCap,this.lineDash,this.lineStyle)}};M([b],Bs.prototype,"type");M([b],Bs.prototype,"text");var ol=class extends _p(rK(Xu(lK(Qs(Xc(xt)))))){constructor(){super(...arguments),this.direction="vertical",this.type="vertical-line",this.text=new Vp}static is(t){return Bt(t)&&t.type==="vertical-line"}getDefaultColor(){return this.stroke}getDefaultOpacity(){return this.strokeOpacity}getLineDash(){return Sm(this.lineDash,this.computedLineDash,this.lineStyle,this.strokeWidth)}getLineCap(){return Mm(this.lineCap,this.lineDash,this.lineStyle)}};M([b],ol.prototype,"type");M([b],ol.prototype,"text");var Xo=class extends _p(rO(oO(Xu(cO(Qs(Xc(xt))))))){constructor(){super(...arguments),this.type="disjoint-channel",this.text=new nv,this.snapToAngle=45}static is(t){return Bt(t)&&t.type==="disjoint-channel"}get bottom(){const t={start:{x:this.start.x,y:this.start.y},end:{x:this.end.x,y:this.end.y}};return typeof t.start.y=="number"&&typeof t.end.y=="number"?(t.start.y-=this.startHeight,t.end.y-=this.endHeight):pt.warnOnce(`Annotation [${this.type}] can only be used with a numeric y-axis.`),t}getDefaultColor(t){switch(t){case"fill-color":return this.background.fill;case"line-color":return this.stroke;case"text-color":return this.text.color}}getDefaultOpacity(t){switch(t){case"fill-color":return this.background.fillOpacity;case"line-color":return this.strokeOpacity}}getLineDash(){return Sm(this.lineDash,this.computedLineDash,this.lineStyle,this.strokeWidth)}getLineCap(){return Mm(this.lineCap,this.lineDash,this.lineStyle)}};M([b],Xo.prototype,"type");M([b],Xo.prototype,"startHeight");M([b],Xo.prototype,"endHeight");M([b],Xo.prototype,"text");var MA=class extends hO(rat(cO(Qs(Xc(uO))))){constructor(){super(...arguments),this.text=new Vp}getDefaultColor(t){switch(t){case"line-color":return this.stroke;case"text-color":return this.text.color}}getDefaultOpacity(){return this.strokeOpacity}getLineDash(){return Sm(this.lineDash,this.computedLineDash,this.lineStyle,this.strokeWidth)}getLineCap(){return Mm(this.lineCap,this.lineDash,this.lineStyle)}};M([b],MA.prototype,"text");var fc=class extends MA{constructor(){super(...arguments),this.type="arrow",this.endCap="arrow"}static is(t){return Bt(t)&&t.type==="arrow"}};M([b],fc.prototype,"type");var mc=class extends MA{constructor(){super(...arguments),this.type="line"}static is(t){return Bt(t)&&t.type==="line"}};M([b],mc.prototype,"type");var Zc=class extends MA{constructor(){super(...arguments),this.label=new oat,this.reverse=!1,this.showFill=!0,this.isMultiColor=!0,this.strokes=[],this.bands=10}getDefaultColor(t){switch(t){case"line-color":return this.rangeStroke??this.stroke;case"text-color":return this.text.color}}};M([b],Zc.prototype,"label");M([b],Zc.prototype,"reverse");M([b],Zc.prototype,"showFill");M([b],Zc.prototype,"isMultiColor");M([b],Zc.prototype,"strokes");M([b],Zc.prototype,"rangeStroke");M([b],Zc.prototype,"bands");var rl=class extends Zc{constructor(){super(...arguments),this.type="fibonacci-retracement-trend-based",this.endRetracement=new sx}static is(t){return Bt(t)&&t.type==="fibonacci-retracement-trend-based"}};M([b],rl.prototype,"type");M([b],rl.prototype,"endRetracement");var yc=class extends Zc{constructor(){super(...arguments),this.type="fibonacci-retracement"}static is(t){return Bt(t)&&t.type==="fibonacci-retracement"}};M([b],yc.prototype,"type");var Zo=class extends _p(rO(oO(Xu(cO(Qs(Xc(xt))))))){constructor(){super(...arguments),this.type="parallel-channel",this.middle=new nat,this.text=new nv,this.snapToAngle=45}static is(t){return Bt(t)&&t.type==="parallel-channel"}get bottom(){const t={start:{x:this.start.x,y:this.start.y},end:{x:this.end.x,y:this.end.y}};return typeof t.start.y=="number"&&typeof t.end.y=="number"?(t.start.y-=this.height,t.end.y-=this.height):pt.warnOnce(`Annotation [${this.type}] can only be used with a numeric y-axis.`),t}getDefaultColor(t){switch(t){case"fill-color":return this.background.fill;case"line-color":return this.stroke;case"text-color":return this.text.color}}getDefaultOpacity(t){switch(t){case"fill-color":return this.background.fillOpacity;case"line-color":return this.strokeOpacity}}getLineDash(){return Sm(this.lineDash,this.computedLineDash,this.lineStyle,this.strokeWidth)}getLineCap(){return Mm(this.lineCap,this.lineDash,this.lineStyle)}};M([b],Zo.prototype,"type");M([b],Zo.prototype,"height");M([b],Zo.prototype,"middle");M([b],Zo.prototype,"text");var bc=class extends xA{constructor(){super(...arguments),this.type="text",this.position="bottom"}static is(t){return Bt(t)&&t.type==="text"}};M([b],bc.prototype,"type");function Xh(t){return ro.is(t)}function DA(t){return mc.is(t)||Bs.is(t)||ol.is(t)||fc.is(t)||bK(t)}function Nc(t){return Xo.is(t)||Zo.is(t)}function bK(t){return yc.is(t)||rl.is(t)}function xl(t){return Ir.is(t)||al.is(t)||Oa.is(t)||bc.is(t)}function sv(t){return Yo.is(t)||$o.is(t)||gc.is(t)||ro.is(t)}function sw(t){return xl(t)&&!Oa.is(t)}function Gh(t){return DA(t)||Nc(t)||sv(t)&&!ro.is(t)}function vat(t){return DA(t)||Nc(t)||sv(t)||Ir.is(t)||Oa.is(t)}function Sat(t){return Oa.is(t)}function Mat(t){return Nc(t)||sv(t)||Ir.is(t)||al.is(t)||mO.is(t)}function Dat(t){return xl(t)&&!Oa.is(t)}function uf(t){return(DA(t)||Nc(t)||sv(t))&&!Xh(t)&&Bt(t.text)}function Aat(t,e){"fontSize"in t&&(t.fontSize=e),uf(t)&&(t.text.fontSize=e)}function xK(t,e){const i=e?.strokeWidth??t.strokeWidth??1,n=e?.type??t.lineStyle,s=n??ax(t.lineDash,n),a=dK(i,s);t.strokeWidth=i,t.computedLineDash=a,t.lineStyle=s,t.lineCap=s==="dotted"?"round":void 0}function AA(t,e,i,n,s,a){switch(e){case"fill-color":{"fill"in t&&(t.fill=n),"fillOpacity"in t&&(t.fillOpacity=s),"background"in t&&(t.background.fill=n,t.background.fillOpacity=s);break}case"line-color":{"axisLabel"in t&&(t.axisLabel.fill=n,t.axisLabel.fillOpacity=s,t.axisLabel.stroke=n,t.axisLabel.strokeOpacity=s),"fill"in t&&"fillOpacity"in t&&Sat(t)?(t.fill=n,t.fillOpacity=s):("strokeOpacity"in t&&(t.strokeOpacity=s),"isMultiColor"in t&&"rangeStroke"in t?(t.isMultiColor=a,t.rangeStroke=n):"stroke"in t&&(t.stroke=n));break}case"text-color":{"color"in t&&(t.color=i),uf(t)&&(t.text.color=n);break}}}var Iat=class{constructor(){this.mementoOriginatorKey="annotation-defaults",this.colors=new Map(Object.values(sO).map(t=>[t,new Map([["line-color",void 0],["fill-color",void 0],["text-color",void 0]])])),this.fontSizes=new Map([["callout",void 0],["comment",void 0],["text",void 0],["arrow",void 0],["line",void 0],["disjoint-channel",void 0],["parallel-channel",void 0],["date-range",void 0],["price-range",void 0],["date-price-range",void 0]]),this.lineStyles=new Map([["line",void 0],["horizontal-line",void 0],["vertical-line",void 0],["disjoint-channel",void 0],["parallel-channel",void 0],["arrow",void 0],["date-range",void 0],["price-range",void 0],["date-price-range",void 0]]),this.lineTextAlignments=new Map([["line",void 0],["horizontal-line",void 0],["vertical-line",void 0],["disjoint-channel",void 0],["parallel-channel",void 0],["arrow",void 0],["date-range",void 0],["price-range",void 0],["date-price-range",void 0]]),this.lineTextPositions=new Map([["line",void 0],["horizontal-line",void 0],["vertical-line",void 0],["disjoint-channel",void 0],["parallel-channel",void 0],["arrow",void 0],["date-range",void 0],["price-range",void 0],["date-price-range",void 0]]),this.fibonacciOptions=new Map([["fibonacci-retracement",{bands:void 0,reverse:void 0,showFill:void 0}],["fibonacci-retracement-trend-based",{bands:void 0,reverse:void 0,showFill:void 0}]])}createMemento(){return{colors:le(this.colors),fontSizes:le(this.fontSizes),lineStyles:le(this.lineStyles),lineTextAlignments:le(this.lineTextAlignments),lineTextPositions:le(this.lineTextPositions),fibonacciOptions:le(this.fibonacciOptions)}}guardMemento(t){return!0}restoreMemento(t,e,i){this.colors=le(i.colors),this.fontSizes=le(i.fontSizes),this.lineStyles=le(i.lineStyles),this.lineTextAlignments=le(i.lineTextAlignments),this.lineTextPositions=le(i.lineTextPositions),this.fibonacciOptions=le(i.fibonacciOptions)}setDefaultColor(t,e,i,n,s,a){this.colors.get(t)?.set(e,[i,n,s,a])}setDefaultFontSize(t,e){this.fontSizes.set(t,e)}setDefaultLineStyleType(t,e){const i=this.lineStyles.get(t);i?i.type=e:this.lineStyles.set(t,{type:e})}setDefaultLineStyleWidth(t,e){const i=this.lineStyles.get(t);i?i.strokeWidth=e:this.lineStyles.set(t,{strokeWidth:e})}setDefaultLineTextAlignment(t,e){this.lineTextAlignments.set(t,e)}setDefaultLineTextPosition(t,e){this.lineTextPositions.set(t,e)}setDefaultFibonacciOptions(t,e,i){if(t!="fibonacci-retracement"&&t!="fibonacci-retracement-trend-based")return;const n=this.fibonacciOptions.get(t);n[e]=i,this.fibonacciOptions.set(t,n)}applyDefaults(t){for(const[e,i]of this.colors)if(t.type===e)for(const[n,[s,a,o,r]=[]]of i)s&&a&&o!=null&&r!=null&&AA(t,n,s,a,o,r);for(const[e,i]of this.fontSizes)t.type!==e||i==null||Aat(t,i);for(const[e,i]of this.lineStyles)t.type!==e||i==null||xK(t,i);for(const[e,i]of this.lineTextPositions)t.type!==e||i==null||(t.text.position=i);for(const[e,i]of this.lineTextAlignments)t.type!==e||i==null||(t.text.alignment=i);for(const[e,i]of this.fibonacciOptions)if(!(t.type!==e||i==null))for(const n of Object.keys(i)){const s=i[n];s!=null&&t.set({[n]:s})}}},kat='
',GV=t=>{try{const e=se.fromString(t),[i,n,s]=e.toHSB();return[i,n,s,e.a]}catch{return}},vK=class extends j.AnchoredPopover{constructor(t,e){super(t,"color-picker",e),this.hasChanged=!1,this.hideFns.push(()=>{this.i18nUpdater=void 0,this.hasChanged&&this.onChangeHide?.()}),this.cleanup.register(this.ctx.eventsHub.on("locale:change",()=>this.i18nUpdater?.()))}show(t){this.hasChanged=!1,this.onChangeHide=t.onChangeHide;const{element:e,initialFocus:i}=this.createColorPicker(t),n=this.showWithChildren([e],{initialFocus:i,...t});n.classList.add("ag-charts-color-picker"),n.setAttribute("role","dialog")}createColorPicker(t){const{localeManager:e}=this.ctx;let i=t.isMultiColor??!1,[n,s,a,o]=GV(t.color??"#f00")??[0,1,.5,1];o=t.opacity??o;const r=this.ctx.agDocument,l=r.createElement("div","ag-charts-color-picker__content");l.innerHTML=kat,l.ariaLabel=this.ctx.localeManager.t("ariaLabelColorPicker");const c=l.querySelector(".ag-charts-color-picker__palette"),u=l.querySelector(".ag-charts-color-picker__hue-input"),d=l.querySelector(".ag-charts-color-picker__multi-color-button"),g=l.querySelector(".ag-charts-color-picker__alpha-input"),f=l.querySelector(".ag-charts-color-picker__color-input"),y=l.querySelector(".ag-charts-color-picker__color-label"),x=w=>{const N={s:"ariaValueColorPalette",v:"ariaValueColorPaletteFirstV"}[w];c.ariaValueText=e.t(N,{s,v:a})};this.i18nUpdater=()=>{c.ariaRoleDescription=e.t("ariaRoleDescription2DSlider"),c.ariaLabel=e.t("ariaLabelColorPickerPalette"),u.ariaLabel=e.t("ariaLabelColorPickerHue"),d.ariaLabel=e.t("ariaLabelColorPickerMultiColor"),g.ariaLabel=e.t("ariaLabelColorPickerAlpha"),f.ariaLabel=e.t("ariaLabelColor"),x("s")},this.i18nUpdater(),d.classList.toggle("ag-charts-color-picker__multi-color-button--hidden",!t.hasMultiColorOption);const S=(w=!0)=>{const O=se.fromHSB(n,s,a,o).toHexString();if(l.style.setProperty("--h",`${n}`),l.style.setProperty("--s",`${s}`),l.style.setProperty("--v",`${a}`),l.style.setProperty("--a",`${o}`),l.style.setProperty("--color",O.slice(0,7)),l.style.setProperty("--color-a",O),u.value=`${n}`,g.value=`${o}`,g.classList.toggle("ag-charts-color-picker__alpha-input--opaque",o===1),d.classList.toggle("ag-charts-color-picker__multi-color-button--active",i),y.classList.toggle("ag-charts-color-picker__color-label--multi-color",i),document.activeElement!==f&&(d.ariaChecked=i.toString(),f.value=i?e.t("ariaLabelColorPickerMultiColor"):O.toUpperCase()),w||t.color==null){const L=se.fromHSB(n,s,a,1).toHexString();t.onChange?.(O,L,o,i)}w&&(this.hasChanged=!0)};S(!1);const D=w=>w.preventDefault(),A=w=>w.stopPropagation(),I=w=>{w.preventDefault();const N=w.currentTarget;N.focus();const O=N.getBoundingClientRect(),L=({clientX:P,clientY:B})=>{i=!1,s=Math.min(Math.max((P-O.left)/O.width,0),1),a=1-Math.min(Math.max((B-O.top)/O.height,0),1),S(),x("s")};L(w);const R=r.attachListener("pointermove",L);r.attachListener("pointerup",()=>R(),{once:!0})};return l.addEventListener("mousedown",A),l.addEventListener("touchstart",A),l.addEventListener("touchmove",A),l.addEventListener("keydown",w=>{switch(w.stopPropagation(),w.key){case"Enter":case"Escape":this.hide();break;default:return}w.preventDefault()}),c.addEventListener("pointerdown",I),c.addEventListener("touchstart",D,{passive:!1}),c.addEventListener("touchmove",D,{passive:!1}),c.addEventListener("keydown",w=>{if(w.key==="ArrowLeft")s=Nt(0,s-.01,1),x("s");else if(w.key==="ArrowRight")s=Nt(0,s+.01,1),x("s");else if(w.key==="ArrowUp")a=Nt(0,a+.01,1),x("v");else if(w.key==="ArrowDown")a=Nt(0,a-.01,1),x("v");else return;w.preventDefault(),S()}),c.addEventListener("focus",()=>{x("s")}),d.addEventListener("click",()=>{i=!i,S()}),u.addEventListener("input",w=>{i=!1,n=w.currentTarget.valueAsNumber??0,S()}),g.addEventListener("input",w=>{i=!1,o=w.currentTarget.valueAsNumber??0,S()}),f.addEventListener("input",w=>{i=!1;const N=GV(w.currentTarget.value);N!=null&&([n,s,a,o]=N,S())}),f.addEventListener("blur",()=>S()),f.addEventListener("keydown",w=>{w.key==="Enter"&&(w.currentTarget.blur(),S())}),{element:l,initialFocus:c}}},Il=class extends xt{};M([b],Il.prototype,"icon");M([b],Il.prototype,"iconPosition");M([b],Il.prototype,"label");M([b],Il.prototype,"ariaLabel");M([b],Il.prototype,"tooltip");function UV(t){return!(t instanceof j.LogScale)&&!(t instanceof j.BandScale)}var Cat=[{label:"toolbarAnnotationsTrendLine",icon:"trend-line-drawing",value:"line"},{label:"toolbarAnnotationsHorizontalLine",icon:"horizontal-line-drawing",value:"horizontal-line"},{label:"toolbarAnnotationsVerticalLine",icon:"vertical-line-drawing",value:"vertical-line"},{label:"toolbarAnnotationsParallelChannel",icon:"parallel-channel-drawing",value:"parallel-channel",visible:UV},{label:"toolbarAnnotationsDisjointChannel",icon:"disjoint-channel-drawing",value:"disjoint-channel",visible:UV}],wat=[{label:"toolbarAnnotationsFibonacciRetracement",icon:"fibonacci-retracement-drawing",value:"fibonacci-retracement"},{label:"toolbarAnnotationsFibonacciRetracementTrendBased",icon:"fibonacci-retracement-trend-based-drawing",value:"fibonacci-retracement-trend-based"}],Nat=[{label:"Fibonacci - Extended",value:10},{label:"Fibonacci - 6 Band",value:6},{label:"Fibonacci - 4 Band",value:4}],Tat=[{label:"toolbarAnnotationsText",icon:"text-annotation",value:"text"},{label:"toolbarAnnotationsComment",icon:"comment-annotation",value:"comment"},{label:"toolbarAnnotationsCallout",icon:"callout-annotation",value:"callout"},{label:"toolbarAnnotationsNote",icon:"note-annotation",value:"note"}],Lat=[{label:"toolbarAnnotationsArrow",icon:"arrow-drawing",value:"arrow"},{label:"toolbarAnnotationsArrowUp",icon:"arrow-up-drawing",value:"arrow-up"},{label:"toolbarAnnotationsArrowDown",icon:"arrow-down-drawing",value:"arrow-down"}],Oat=[{label:"toolbarAnnotationsQuickDatePriceRange",icon:"measurer-drawing",value:"quick-date-price-range"},{label:"toolbarAnnotationsDateRange",icon:"date-range-drawing",value:"date-range"},{label:"toolbarAnnotationsPriceRange",icon:"price-range-drawing",value:"price-range"},{label:"toolbarAnnotationsDatePriceRange",icon:"date-price-range-drawing",value:"date-price-range"}],SK=[{strokeWidth:1,label:"1",value:1},{strokeWidth:2,label:"2",value:2},{strokeWidth:3,label:"3",value:3},{strokeWidth:4,label:"4",value:4},{strokeWidth:8,label:"8",value:8}],Nb=[{icon:"line-style-solid",altText:"iconAltTextLineStyleSolid",value:"solid"},{icon:"line-style-dashed",altText:"iconAltTextLineStyleDashed",value:"dashed"},{icon:"line-style-dotted",altText:"iconAltTextLineStyleDotted",value:"dotted"}],MK=[{label:"10",value:10},{label:"12",value:12},{label:"14",value:14},{label:"16",value:16},{label:"18",value:18},{label:"22",value:22},{label:"28",value:28},{label:"36",value:36},{label:"46",value:46}],{FloatingToolbar:Eat,Menu:aw,ToolbarButtonWidget:Rat}=j,Am=class extends Il{constructor(){super(...arguments),this.checkedOverrides=new Il}};M([b],Am.prototype,"value");M([b],Am.prototype,"checkedOverrides");M([b],Am.prototype,"color");M([b],Am.prototype,"strokeWidth");M([b],Am.prototype,"isMultiColor");var Pat=class extends Rat{update(t){super.update(t),t.value==="line-stroke-width"&&this.updateLineStrokeWidth(t),(t.value==="fill-color"||t.value==="line-color"||t.value==="text-color")&&this.updateFillColor(t)}updateFillColor(t){const e=this.getElement();e.classList.add("ag-charts-annotations__color-picker-button"),e.classList.toggle("ag-charts-annotations__color-picker-button--multi-color",t.isMultiColor),e.style.setProperty("--color",t.color??null)}updateLineStrokeWidth(t){const e=this.getElement();e.classList.add("ag-charts-annotations__stroke-width-button"),e.style.setProperty("--stroke-width",`${t.strokeWidth}px`)}},zat=class extends Eat{createButtonWidget(){return new Pat(this.localeManager)}},yO=class extends xt{constructor(t,e){super(),this.ctx=t,this.getActiveDatum=e,this.enabled=!0,this.buttons=new ss(Am),this.cleanup=new qe,this.events=new cr,this.visibleButtons=[],this.toolbar=new zat(this.ctx,"ariaLabelAnnotationOptionsToolbar","annotation-options"),this.colorPicker=new vK(this.ctx),this.textSizeMenu=new aw(this.ctx,"text-size"),this.lineStyleTypeMenu=new aw(this.ctx,"annotations-line-style-type"),this.lineStrokeWidthMenu=new aw(this.ctx,"annotations-line-stroke-width"),this.cleanup.register(this.toolbar.addToolbarListener("button-pressed",this.onButtonPress.bind(this)),this.toolbar.addToolbarListener("toolbar-moved",this.onToolbarMoved.bind(this)),t.widgets.seriesWidget.addListener("drag-start",this.onDragStart.bind(this)),t.widgets.seriesWidget.addListener("drag-end",this.onDragEnd.bind(this)),()=>{this.colorPicker.destroy(),this.toolbar.destroy()})}onDragStart(){this.toolbar.ignorePointerEvents()}onDragEnd(){this.toolbar.capturePointerEvents()}destroy(){this.cleanup.flush()}show(){this.enabled&&this.toolbar.show()}hide(){this.toolbar.hide()}updateButtons(t){if(!this.enabled)return;const e={"line-style-type":Gh(t),"line-stroke-width":Gh(t),"line-color":vat(t),"text-color":Dat(t),"fill-color":Mat(t),"text-size":sw(t),settings:uf(t),lock:!0,delete:!0};this.visibleButtons=this.buttons.filter(i=>e[i.value]),this.toolbar.clearButtons(),this.toolbar.updateButtons(this.visibleButtons),this.refreshButtons(t)}setAnchorScene(t){this.toolbar.hasBeenDragged()||this.toolbar.setAnchor(t.getAnchor())}hideOverlays(){this.toolbar.clearActiveButton(),this.colorPicker.hide({lastFocus:null}),this.textSizeMenu.hide(),this.lineStyleTypeMenu.hide(),this.lineStrokeWidthMenu.hide(),this.events.emit("hid-overlays",null)}clearActiveButton(){this.toolbar.clearActiveButton()}updateColors(t){this.updateColorPickerColor("line-color",t.getDefaultColor("line-color"),t.getDefaultOpacity("line-color"),"isMultiColor"in t&&t?.isMultiColor),this.updateColorPickerColor("fill-color",t.getDefaultColor("fill-color"),t.getDefaultOpacity("fill-color"),"isMultiColor"in t&&t?.isMultiColor),this.updateColorPickerColor("text-color",t.getDefaultColor("text-color"),t.getDefaultOpacity("text-color"),"isMultiColor"in t&&t?.isMultiColor)}updateColorPickerColor(t,e,i,n){if(e!=null&&i!=null){const{r:s,g:a,b:o}=se.fromString(e);e=se.fromArray([s,a,o,i]).toHexString()}this.updateButtonByValue(t,{color:e,isMultiColor:n})}updateFontSize(t){this.updateButtonByValue("text-size",{label:t==null?void 0:String(t)})}updateLineStyleType(t){this.updateButtonByValue("line-style-type",{icon:t.icon})}updateStrokeWidth(t){this.updateButtonByValue("line-stroke-width",{label:t.label,strokeWidth:t.value})}onButtonPress({event:t,button:e,buttonWidget:i}){const n=this.getActiveDatum();if(n)switch(this.hideOverlays(),e.value){case"line-style-type":{const s=Gh(n)?ax(n.lineDash,n.lineStyle):void 0;this.lineStyleTypeMenu.show(i,{items:Nb,ariaLabel:this.ctx.localeManager.t("toolbarAnnotationsLineStyle"),value:s,minWidth:this.lineStyleTypeMenuMinWidth,onPress:a=>this.onLineStyleTypeMenuPress(a,n),class:"ag-charts-annotations__line-style-type-menu"});break}case"line-stroke-width":{const s=Gh(n)?n.strokeWidth:void 0;this.lineStrokeWidthMenu.show(i,{items:SK,ariaLabel:this.ctx.localeManager.t("toolbarAnnotationsLineStrokeWidth"),value:s,minWidth:this.lineStrokeWidthMenuMinWidth,onPress:a=>this.onLineStrokeWidthMenuPress(a,n),class:"ag-charts-annotations__line-stroke-width-menu"});break}case"line-color":case"fill-color":case"text-color":{this.toolbar.toggleActiveButtonByIndex(e.index),this.colorPicker.show({color:n?.getDefaultColor(e.value),opacity:n?.getDefaultOpacity(e.value),sourceEvent:t.sourceEvent,hasMultiColorOption:"isMultiColor"in n,isMultiColor:"isMultiColor"in n&&n?.isMultiColor,onChange:n==null?void 0:this.onColorPickerChange.bind(this,e.value,n),onChangeHide:(s=>{this.events.emit("saved-color",{type:n.type,colorPickerType:e.value,color:n.getDefaultColor(s)})}).bind(this,e.value)});break}case"text-size":{const s=xl(n)?n.fontSize:void 0;this.textSizeMenu.show(i,{items:MK,ariaLabel:this.ctx.localeManager.t("toolbarAnnotationsTextSize"),value:s,minWidth:this.textSizeMenuMinWidth,onPress:a=>this.onTextSizeMenuPress(a,n),class:"ag-charts-annotations__text-size-menu"});break}case"delete":{this.events.emit("pressed-delete",null);break}case"lock":{n.locked=!n.locked,this.refreshButtons(n),this.events.emit("pressed-lock",{locked:n.locked});break}case"settings":{this.toolbar.toggleActiveButtonByIndex(e.index),this.events.emit("pressed-settings",t);break}}}onToolbarMoved(t){const{buttonBounds:e,popoverBounds:i}=t,n={x:i.x,y:i.y+i.height+4},s={y:i.y-4};this.colorPicker.setAnchor(n,s);for(const[a,o]of e.entries()){const r=this.visibleButtons.at(a);if(!r)continue;const l={x:o.x,y:o.y+o.height-1},c={y:o.y};switch(r.value){case"line-stroke-width":{this.lineStrokeWidthMenuMinWidth=o.width+1,this.lineStrokeWidthMenu.setAnchor(l,c);break}case"line-style-type":{this.lineStyleTypeMenuMinWidth=o.width+1,this.lineStyleTypeMenu.setAnchor(l,c);break}case"text-size":{this.textSizeMenuMinWidth=o.width+1,this.textSizeMenu.setAnchor(l,c);break}}}}onColorPickerChange(t,e,i,n,s,a){this.events.emit("updated-color",{type:e.type,colorPickerType:t,colorOpacity:i,color:n,opacity:s,isMultiColor:a}),this.updateColorPickerColor(t,i,s,a)}onTextSizeMenuPress(t,e){if(!sw(e))return;const i=t.value;this.events.emit("updated-font-size",{type:e.type,fontSize:i}),this.textSizeMenu.hide(),this.updateFontSize(i)}onLineStyleTypeMenuPress(t,e){if(!Gh(e))return;const i=t.value;this.events.emit("updated-line-style",{type:e.type,lineStyleType:i}),this.lineStyleTypeMenu.hide(),this.updateLineStyleType(t)}onLineStrokeWidthMenuPress(t,e){if(!Gh(e))return;const i=t.value;this.events.emit("updated-line-width",{type:e.type,strokeWidth:i}),this.lineStrokeWidthMenu.hide(),this.updateStrokeWidth(t)}refreshButtons(t){const e=t.locked??!1;for(const[i,n]of this.visibleButtons.entries())n&&(n.value==="lock"?(this.toolbar.toggleSwitchCheckedByIndex(i,e),this.updateButtonByIndex(i,e?n.checkedOverrides.toJson():n.toJson())):this.toolbar.toggleButtonEnabledByIndex(i,!e));sw(t)&&this.updateFontSize(t.fontSize),this.updateColors(t),this.updateLineStyles(t)}updateLineStyles(t){if(!Gh(t))return;const e=t.strokeWidth??1,i=ax(t.lineDash,t.lineStyle);this.updateStrokeWidth({strokeWidth:e,value:e,label:String(e)}),this.updateLineStyleType(Nb.find(n=>n.value===i)??Nb[0])}updateButtonByValue(t,e){const i=this.visibleButtons.findIndex(n=>n.value===t);i!==-1&&this.updateButtonByIndex(i,e)}updateButtonByIndex(t,e){const i=this.visibleButtons.at(t);i&&this.toolbar.updateButtonByIndex(t,{...i.toJson(),...e,value:e.value??i.value})}};M([b],yO.prototype,"enabled");M([b],yO.prototype,"buttons");var yn=class extends Rt{constructor(t){const e=({context:i})=>{this.node?.drag(this.datum,this.offset,i,this.snapping),t.update()};super("idle",{idle:{dragStart:{target:"dragging",action:({offset:i,context:n})=>{this.hasMoved=!1,this.dragStart=i,this.offset=i,this.node?.dragStart(this.datum,i,n)}}},dragging:{keyDown:e,keyUp:e,drag:({offset:i,context:n})=>{this.hasMoved=at.lengthSquared(at.sub(i,this.dragStart))>0,this.offset=i,this.node?.drag(this.datum,i,n,this.snapping),t.update()},dragEnd:{target:Rt.parent,action:()=>{this.node?.stopDragging(),this.hasMoved&&t.recordAction("Move annotation"),t.update()}}}}),this.debug=Gt.create(!0,"annotations"),this.hasMoved=!1,this.snapping=!1}};M([Fe()],yn.prototype,"snapping");M([Fe()],yn.prototype,"datum");M([Fe()],yn.prototype,"node");var Kh=class extends mO{constructor(){super(...arguments),this.type="arrow-down"}static is(t){return Bt(t)&&t.type==="arrow-down"}};M([b],Kh.prototype,"type");var Bf=class extends j.Marker{isPointInPath(t,e){return this.updatePathIfDirty(),this.path.closedPath&&this.path.isPointInPath(t,e)}},DK=class AK extends j.Group{constructor(){super(...arguments),this.active=!1,this.locked=!1,this.visible=!1,this.zIndex=1}drag(e){const{handle:i,locked:n}=this;return n?{point:{x:i.x,y:i.y},offset:{x:0,y:0}}:{point:e,offset:{x:e.x-i.x,y:e.y-i.y}}}toggleActive(e){this.active=e,e||(this.handle.strokeWidth=AK.INACTIVE_STROKE_WIDTH)}toggleHovered(e){this.glow.visible=!this.locked&&e,this.glow.dirtyPath=!0}toggleDragging(e){this.locked||(this.handle.visible=!e,this.glow.visible=this.glow.visible&&!e,this.handle.dirtyPath=!0,this.glow.dirtyPath=!0)}toggleLocked(e){this.locked=e}getCursor(){}containsPoint(e,i){return this.handle.containsPoint(e,i)}};DK.INACTIVE_STROKE_WIDTH=2;var gu=DK,bO=class IK extends gu{constructor(){super(),this.handle=new Bf({shape:"circle"}),this.glow=new Bf({shape:"circle"}),this.append([this.handle]),this.handle.size=IK.HANDLE_SIZE,this.handle.strokeWidth=gu.INACTIVE_STROKE_WIDTH,this.handle.zIndex=2}update(e){this.handle.setProperties({...e,strokeWidth:gu.INACTIVE_STROKE_WIDTH})}drag(e){return{point:e,offset:{x:0,y:0}}}};bO.HANDLE_SIZE=7;bO.GLOW_SIZE=9;var Yh=bO,IA=class Ia extends gu{constructor(){super(),this.handle=new j.Rect,this.glow=new j.Rect,this.gradient="horizontal",this.append([this.glow,this.handle]),this.handle.cornerRadius=Ia.CORNER_RADIUS,this.handle.width=Ia.HANDLE_SIZE,this.handle.height=Ia.HANDLE_SIZE,this.handle.strokeWidth=gu.INACTIVE_STROKE_WIDTH,this.handle.zIndex=2,this.glow.cornerRadius=Ia.CORNER_RADIUS,this.glow.width=Ia.GLOW_SIZE,this.glow.height=Ia.GLOW_SIZE,this.glow.strokeWidth=0,this.glow.fillOpacity=.2,this.glow.zIndex=1,this.glow.visible=!1}toggleLocked(e){if(super.toggleLocked(e),e){const i=(Ia.HANDLE_SIZE-Yh.HANDLE_SIZE)/2;this.handle.cornerRadius=1,this.handle.fill=this.handle.stroke,this.handle.strokeWidth=0,this.handle.x+=i,this.handle.y+=i,this.handle.width=Yh.HANDLE_SIZE,this.handle.height=Yh.HANDLE_SIZE,this.glow.width=Yh.GLOW_SIZE,this.glow.height=Yh.GLOW_SIZE}else this.handle.cornerRadius=Ia.CORNER_RADIUS,this.handle.width=Ia.HANDLE_SIZE,this.handle.height=Ia.HANDLE_SIZE,this.glow.width=Ia.GLOW_SIZE,this.glow.height=Ia.GLOW_SIZE,this.cachedStyles&&this.handle.setProperties(this.cachedStyles)}update(e){if(this.cachedStyles={...e},this.active||delete e.strokeWidth,this.locked){delete e.fill,delete e.strokeWidth;const i=(Ia.HANDLE_SIZE-Yh.HANDLE_SIZE)/2;e.x-=i,e.y-=i,this.cachedStyles.x-=i,this.cachedStyles.y-=i}this.handle.setProperties(e),this.glow.setProperties({...e,x:(e.x??this.glow.x)-2,y:(e.y??this.glow.y)-2,strokeWidth:0,fill:e.stroke})}drag(e){return this.locked?{point:e,offset:{x:0,y:0}}:this.gradient==="vertical"?{point:{x:e.x,y:this.handle.y},offset:{x:e.x-this.handle.x,y:0}}:{point:{x:this.handle.x,y:e.y},offset:{x:0,y:e.y-this.handle.y}}}getCursor(){if(!this.locked)return this.gradient==="vertical"?"col-resize":"row-resize"}};IA.HANDLE_SIZE=12;IA.GLOW_SIZE=16;IA.CORNER_RADIUS=4;var tf=IA,xO=class ob extends gu{constructor(){super(),this.handle=new Bf({shape:"circle"}),this.glow=new Bf({shape:"circle"}),this.append([this.glow,this.handle]),this.handle.size=ob.HANDLE_SIZE,this.handle.strokeWidth=gu.INACTIVE_STROKE_WIDTH,this.handle.zIndex=2,this.glow.size=ob.GLOW_SIZE,this.glow.strokeWidth=0,this.glow.fillOpacity=.2,this.glow.zIndex=1,this.glow.visible=!1}toggleLocked(e){super.toggleLocked(e),e?(this.handle.fill=this.handle.stroke,this.handle.strokeWidth=0,this.handle.size=Yh.HANDLE_SIZE,this.glow.size=Yh.GLOW_SIZE):(this.handle.size=ob.HANDLE_SIZE,this.glow.size=ob.GLOW_SIZE,this.cachedStyles&&this.handle.setProperties(this.cachedStyles))}update(e){this.cachedStyles={...e},this.active||delete e.strokeWidth,this.locked&&(delete e.fill,delete e.strokeWidth),this.handle.setProperties(e),this.glow.setProperties({...e,strokeWidth:0,fill:e.stroke})}getCursor(){return"pointer"}};xO.HANDLE_SIZE=11;xO.GLOW_SIZE=17;var Yi=xO,ns=class extends j.Group{constructor(){super(...arguments),this.name="AnnotationScene",this.zIndex=pe.CHART_ANNOTATION}static isCheck(t,e){return Bt(t)&&Object.hasOwn(t,"type")&&t.type===e}toggleHovered(t,e,i){i!==!0&&this.toggleHandles(t||e)}computeBBoxWithoutHandles(){return j.Transformable.toCanvas(this,j.Group.computeChildrenBBox(this.excludeChildren({instance:gu})))}updateNode(t,e,i){if(!i&&e){e.remove();return}return i&&e==null&&(e=new t,this.appendChild(e)),e}},{ContinuousScale:Bat}=j;function ox(t,e,i=!1,n,s=1){if(!i)return na(t,e);const a=n?Ki(n,e):at.origin();return na(kA(t,a,s),e)}function kA(t,e,i){const n=at.sub(t,e),s=Ze(i),a=Math.round(at.angle(n)/s)*s;return at.rotate(n,a,e)}function CA(t,e){const i={};for(const[n,s]of Xe(t))i[n]=Ki(s,e);return i}function Ec(t,e,i,n={overflowContinuous:0,translateVectors:void 0,invertYVectors:void 0,snap:void 0}){const{xAxis:s,yAxis:a}=i,o=Object.keys(t),r=[],l=[],c=new Set(n.translateVectors??o),u=new Set(n.invertYVectors??[]),d=new Set([...c,...u]),g=at.multiply(e,at.from(1,-1));for(const D of o)d.has(D)&&(t[D]=at.add(t[D],u.has(D)?g:e),n.snap&&(t[D]=kA(t[D],n.snap.vectors[D],n.snap.angle))),r.push(s.getRangeOverflow(t[D].x)),l.push(a.getRangeOverflow(t[D].y));const f=(D,A)=>Math.abs(D)-Math.abs(A),y=(D,A,I)=>n.overflowContinuous===0||!Bat.is(D)?I.toSorted(f).at(-1)??0:o.length===d.size?I.toSorted(f).at(-n.overflowContinuous-1)??0:I.filter(N=>N!==0).length<=n.overflowContinuous?0:I.filter((N,O)=>N!==0&&Math.abs(N)<=Math.abs(A)&&d.has(o[O])).toSorted(f).at(-1)??0,x=at.from(y(s.scale,e.x,r),y(a.scale,e.y,l));if(!at.equal(x,at.origin()))for(const D of o)d.has(D)&&(t[D]=at.round(at.sub(t[D],x),4));const S={};for(const D of o)S[D]=na(t[D],i);return S}var kK=class extends ns{constructor(){super(...arguments),this.handle=new Yi,this.anchor={x:0,y:0,position:"above"}}update(t,e){const i=Ki(t,e);this.updateHandle(t,i),this.anchor=this.updateAnchor(t,i,e)}dragStart(t,e,i){this.dragState={offset:e,...CA({handle:t},i)}}drag(t,e,i){const{dragState:n}=this;if(!t.isWriteable()||!n)return;const{point:s}=Ec({point:n.handle},at.sub(e,n.offset),i);t.x=s.x,t.y=s.y}translate(t,e,i){if(!t.isWriteable())return;const{point:n}=Ec({point:Ki(t,i)},e,i);t.x=n.x,t.y=n.y}toggleHandles(t){this.handle.visible=!!t,this.handle.toggleHovered(this.activeHandle==="handle")}toggleActive(t){this.toggleHandles(t),this.handle.toggleActive(t)}stopDragging(){this.handle.toggleDragging(!1)}copy(t,e,i){const n=Ki(t,i),s=na({x:n.x-30,y:n.y-30},i);return e.x=s.x,e.y=s.y,e}getAnchor(){return this.anchor}getCursor(){return"pointer"}containsPoint(t,e){const{handle:i}=this;return this.activeHandle=void 0,i.containsPoint(t,e)?(this.activeHandle="handle",!0):!1}getNodeAtCoords(t,e){if(this.handle.containsPoint(t,e))return"handle"}updateHandle(t,e,i){const{x:n,y:s}=this.getHandleCoords(t,e,i),a=this.getHandleStyles(t);this.handle.update({...a,x:n,y:s}),this.handle.toggleLocked(t.locked??!1)}updateAnchor(t,e,i){const n=this.getHandleCoords(t,e);return{x:n.x+i.seriesRect.x,y:n.y+i.seriesRect.y,position:this.anchor.position}}getHandleCoords(t,e,i){return{x:e.x,y:e.y}}getHandleStyles(t){return{fill:t.handle.fill,stroke:t.handle.stroke,strokeOpacity:t.handle.strokeOpacity,strokeWidth:t.handle.strokeWidth}}},CK=class extends kK{constructor(){super(),this.append([this.handle])}update(t,e){super.update(t,e);const i=Ki(t,e);this.updateShape(t,i)}updateShape(t,e){this.updateShapeStyles(t),this.updateShapePath(t,e)}updateShapeStyles(t){const{shape:e}=this;e.fill=t.fill,e.fillOpacity=t.fillOpacity??1}updateShapePath(t,e){const{shape:i}=this;i.x=e.x,i.y=e.y,i.size=t.size}containsPoint(t,e){return super.containsPoint(t,e)||this.shape.containsPoint(t,e)}getNodeAtCoords(t,e){return this.shape.containsPoint(t,e)?"shape":super.getNodeAtCoords(t,e)}},wK=[[.5,0],[1,.5],[.75,.5],[.75,1],[.25,1],[.25,.5],[0,.5]];function NK(t){j.drawMarkerUnitPolygon(t,wK)}NK.anchor={x:.5,y:0};var J0=class extends CK{constructor(){super(),this.type="arrow-up",this.shape=new Bf({shape:NK}),this.append([this.shape])}static is(t){return ns.isCheck(t,"arrow-up")}getHandleCoords(t,e){const i=Yi.HANDLE_SIZE/2,n=super.getHandleCoords(t,e);return n.y-=i,n}},Vat=wK.map(([t,e])=>[t,1-e]);function TK(t){j.drawMarkerUnitPolygon(t,Vat)}TK.anchor={x:.5,y:1};var tS=class extends CK{constructor(){super(),this.type="arrow-down",this.shape=new Bf({shape:TK}),this.append([this.shape])}static is(t){return ns.isCheck(t,"arrow-down")}updateAnchor(t,e,i){const n=super.updateAnchor(t,e,i);return n.y-=t.size,n}getHandleCoords(t,e){const i=Yi.HANDLE_SIZE/2,n=super.getHandleCoords(t,e);return n.y+=i,n}},vO=class extends Rt{constructor(t){const e=({point:n})=>{const s=this.createDatum();s.set({x:n.x,y:n.y}),t.create(s)},i=()=>{this.node?.toggleActive(!0),t.showAnnotationOptions(),t.update()};super("start",{start:{click:{target:"waiting-first-render",action:e},drag:{target:"waiting-first-render",action:e},cancel:Rt.parent,reset:Rt.parent},"waiting-first-render":{render:{target:Rt.parent,action:i}}}),this.debug=Gt.create(!0,"annotations")}};M([Fe()],vO.prototype,"node");var _at=class extends vO{createDatum(){return new Kh}},WV={type:"arrow-down",datum:Kh,scene:tS,isDatum:Kh.is,translate:(t,e,i,n)=>{Kh.is(e)&&tS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Kh.is(e)&&Kh.is(i)&&tS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Kh.is(e)&&tS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new _at({...t,create:e("arrow-down")}),dragState:t=>new yn(t)},$h=class extends mO{constructor(){super(...arguments),this.type="arrow-up"}static is(t){return Bt(t)&&t.type==="arrow-up"}};M([b],$h.prototype,"type");var Fat=class extends vO{createDatum(){return new $h}},KV={type:"arrow-up",datum:$h,scene:J0,isDatum:$h.is,translate:(t,e,i,n)=>{$h.is(e)&&J0.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if($h.is(e)&&$h.is(i)&&J0.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{$h.is(e)&&J0.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new Fat({...t,create:e("arrow-up")}),dragState:t=>new yn(t)},LK=class extends ns{constructor(){super(...arguments),this.overflowContinuous=0}extendLine({x1:t,y1:e,x2:i,y2:n},s,a){const o={x1:t,y1:e,x2:i,y2:n};if(!s.extendStart&&!s.extendEnd)return o;const[r,l]=hat(o,a.yAxis.bounds),c=o.x2=o.y2,d=o.x2===o.x1;return s.extendEnd&&(d?o.y2=u?l.y:r.y:(o.x2=c?r.x:l.x,o.y2=c?r.y:l.y)),s.extendStart&&(d?o.y1=u?r.y:l.y:(o.x1=c?l.x:r.x,o.y1=c?l.y:r.y)),o}dragStart(t,e,i){this.dragState={offset:e,...CA({start:t.start,end:t.end},i)}}drag(t,e,i,n){t.isWriteable()&&(this.activeHandle?this.dragHandle(t,e,i,n):this.dragAll(t,e,i))}dragAll(t,e,i){const{dragState:n}=this;n&&this.translatePoints(t,n.start,n.end,at.sub(e,n.offset),i)}translate(t,e,i){t.isWriteable()&&this.translatePoints(t,Ki(t.start,i),Ki(t.end,i),e,i)}copy(t,e,i){const n=oa(t,i);if(!n)return;const s=this.computeBBoxWithoutHandles(),a={x:-s.width/2,y:-s.height/2};return this.translatePoints(e,Wt.start(n),Wt.end(n),a,i),e}translatePoints(t,e,i,n,s){const a=this.getTranslatePointsVectors(e,i),o=Ec(a,n,s,{overflowContinuous:this.overflowContinuous});t.start.x=o.start.x,t.end.x=o.end.x,t.start.y=o.start.y,t.end.y=o.end.y}getTranslatePointsVectors(t,e){return{start:t,end:e}}},SO=class extends LK{constructor(){super(...arguments),this.start=new Yi,this.end=new Yi,this.anchor={x:0,y:0,position:"above"}}update(t,e){const i=oa(t,e);i!=null&&(this.updateHandles(t,i),this.updateAnchor(t,i,e))}toggleHandles(t){if(typeof t=="boolean")this.start.visible=t,this.end.visible=t;else for(const[e,i]of Xe(t))this[e].visible=i;this.start.toggleHovered(this.activeHandle==="start"),this.end.toggleHovered(this.activeHandle==="end")}toggleActive(t){this.toggleHandles(t),this.start.toggleActive(t),this.end.toggleActive(t)}dragHandle(t,e,i,n){const{activeHandle:s,dragState:a}=this;if(!s||!a)return;this[s].toggleDragging(!0);const o=s==="start"?"end":"start",r=n?{vectors:{[s]:Ki(t[o],i)},angle:t.snapToAngle}:void 0,{[s]:l}=Ec({[s]:a[s]},at.sub(e,a.offset),i,{overflowContinuous:0,snap:r});t[s].x=l.x,t[s].y=l.y}stopDragging(){this.start.toggleDragging(!1),this.end.toggleDragging(!1)}getAnchor(){return this.anchor}getCursor(){return"pointer"}containsPoint(t,e){const{start:i,end:n}=this;return this.activeHandle=void 0,i.containsPoint(t,e)?(this.activeHandle="start",!0):n.containsPoint(t,e)?(this.activeHandle="end",!0):!1}getNodeAtCoords(t,e){if(this.start.containsPoint(t,e)||this.end.containsPoint(t,e))return"handle"}updateHandles(t,e,i){this.start.update({...this.getHandleStyles(t,"start"),...this.getHandleCoords(t,e,"start")}),this.end.update({...this.getHandleStyles(t,"end"),...this.getHandleCoords(t,e,"end",i)}),this.start.toggleLocked(t.locked??!1),this.end.toggleLocked(t.locked??!1)}updateAnchor(t,e,i,n){this.anchor={x:e.x1+i.seriesRect.x,y:e.y1+i.seriesRect.y,position:this.anchor.position}}getHandleCoords(t,e,i,n){return i==="start"?Wt.start(e):Wt.end(e)}getHandleStyles(t,e){return{fill:t.handle.fill,stroke:t.handle.stroke,strokeOpacity:t.handle.strokeOpacity,strokeWidth:t.handle.strokeWidth}}},Hat=class extends SO{constructor(){super(...arguments),this.label=new j.Text({zIndex:1}),this.anchor={x:0,y:0,position:"above-left"}}setTextInputBBox(t){this.textInputBBox=t,this.markDirty("TextualStartEndScene")}update(t,e){const i=oa(t,e);if(i==null)return;const n=this.getTextBBox(t,i);this.updateLabel(t,n,i,e),this.updateHandles(t,i,n),this.updateShape(t,n,i),this.updateAnchor(t,i,e,n)}containsPoint(t,e){return super.containsPoint(t,e)||this.label.containsPoint(t,e)}getNodeAtCoords(t,e){return this.label.containsPoint(t,e)?"text":super.getNodeAtCoords(t,e)}getTextBBox(t,e){const{text:i}=t.getText();return fO(t,i,Wt.end(e),this.textInputBBox)}updateLabel(t,e,i,n){const{text:s,isPlaceholder:a}=t.getText(),o=this.getLabelCoords(t,e,i);n.isRtl&&(o.x+=e.width),pK(this.label,s,a,t,o)}updateShape(t,e,i){}getLabelCoords(t,e,i){return Wt.end(i)}getHandleStyles(t,e){return{...super.getHandleStyles(t,e),stroke:t.handle.stroke??t.color}}},{drawCorner:jat,Path:Gat}=j,eS=class extends Hat{constructor(){super(),this.type="callout",this.shape=new Gat,this.append([this.shape,this.label,this.start,this.end])}static is(t){return ns.isCheck(t,"callout")}drag(t,e,i,n){t.isWriteable()&&(this.activeHandle==="end"?this.dragHandle(t,e,i,n):this.dragAll(t,e,i))}getLabelCoords(t,e,i){const n=t.getPadding(),{bodyBounds:s={x:0,y:0,width:0,height:0}}=this.getDimensions(t,e,i)??{};return{x:s.x+n.left,y:s.y-n.bottom}}getHandleStyles(t,e){return e==="start"?{fill:t.handle.fill,stroke:t.handle.stroke??t.stroke,strokeOpacity:t.handle.strokeOpacity,strokeWidth:t.handle.strokeWidth}:{fill:void 0,strokeWidth:0}}updateAnchor(t,e,i,n){const{bodyBounds:s}=this.getDimensions(t,n,e)??{},a=s??n;this.anchor={x:a.x+i.seriesRect.x,y:a.y+i.seriesRect.y-a.height,position:this.anchor.position}}updateShape(t,e,i){const{shape:n}=this;n.fill=t.fill,n.fillOpacity=t.fillOpacity??1,n.stroke=t.stroke,n.strokeWidth=t.strokeWidth??1,n.strokeOpacity=t.strokeOpacity??1;const{tailPoint:s,bodyBounds:a}=this.getDimensions(t,e,i)??{};!s||!a||this.updatePath(s,a)}updatePath(t,e){const{x:i,y:n}=t,{x:s,y:a,width:o,height:r}=e,l=a-r,c=s+o,u=this.calculateCalloutPlacement({x:i,y:n},e),d=8,g=[{coordinates:{x0:s,x1:s+d,y0:l+d,y1:l,cx:u==="topLeft"?i:s+d,cy:u==="topLeft"?n:l+d},type:u==="topLeft"?"calloutCorner":"corner"},{coordinates:{x0:s+d,x1:c-d,y0:l,y1:l,cx:i,cy:n},type:u==="top"?"calloutSide":"side"},{coordinates:{x0:c-d,x1:c,y0:l,y1:l+d,cx:u==="topRight"?i:c-d,cy:u==="topRight"?n:l+d},type:u==="topRight"?"calloutCorner":"corner"},{coordinates:{x0:c,x1:c,y0:l+d,y1:a-d,cx:i,cy:n},type:u==="right"?"calloutSide":"side"},{coordinates:{x0:c,x1:c-d,y0:a-d,y1:a,cx:u==="bottomRight"?i:c-d,cy:u==="bottomRight"?n:a-d},type:u==="bottomRight"?"calloutCorner":"corner"},{coordinates:{x0:c-d,x1:s+d,y0:a,y1:a,cx:i,cy:n},type:u==="bottom"?"calloutSide":"side"},{coordinates:{x0:s+d,x1:s,y0:a,y1:a-d,cx:u==="bottomLeft"?i:s+d,cy:u==="bottomLeft"?n:a-d},type:u==="bottomLeft"?"calloutCorner":"corner"},{coordinates:{x0:s,x1:s,y0:a-d,y1:l+d,cx:i,cy:n},type:u==="left"?"calloutSide":"side"}],{path:f}=this.shape;f.clear(),f.moveTo(s,l+d);for(const{coordinates:y,type:x}of g)this.drawPath(f,y,d,x);f.closePath()}drawPath(t,{x0:e,y0:i,x1:n,y1:s,cx:a,cy:o},r,l){switch(l){case"calloutCorner":{t.lineTo(a,o),t.lineTo(n,s);break}case"corner":{jat(t,{x0:e,x1:n,y0:i,y1:s,cx:a,cy:o},r,!1);break}case"calloutSide":{if(e===n){const u=i>s?-1:1,d=Math.min(i,s)+Math.abs(i-s)/2;t.lineTo(e,d-6*u),t.lineTo(a,o),t.lineTo(e,d+6*u),t.lineTo(n,s)}else{const u=e>n?-1:1,d=Math.min(e,n)+Math.abs(n-e)/2;t.lineTo(d-6*u,i),t.lineTo(a,o),t.lineTo(d+6*u,i),t.lineTo(n,s)}break}default:{t.lineTo(n,s);break}}}calculateCalloutPlacement(t,e){const i=e.x+e.width,n=e.y-e.height;let s,a;return t.x>i?s="right":t.xe.y?a="bottom":t.y{const f=this.createDatum();f.set({start:g,end:g,visible:!0}),t.create(f)},i=()=>{const{node:g}=this;g?.toggleActive(!0),g?.toggleHandles({start:!0})},n=()=>{t.showTextInput(),this.datum&&(this.datum.visible=!1)},s=()=>{t.hideTextInput(),this.node?.setTextInputBBox(),this.datum&&(this.datum.visible=!0),t.deselect()},a=g=>{this.node?.setTextInputBBox(g),t.update()},o=({point:g})=>{const{datum:f,node:y}=this;f?.set({end:g}),y?.toggleActive(!0),y?.toggleHandles({end:!1}),t.update()},r=()=>{t.showAnnotationOptions(),this.node?.toggleHandles({end:!0})},l=({colorPickerType:g,colorOpacity:f,color:y,opacity:x,isMultiColor:S})=>{const{datum:D}=this;D&&(g==="text-color"&&t.updateTextInputColor(y),AA(D,g,f,y,x,S),t.update())},c=g=>{const{datum:f,node:y}=this;!f||!y||!xl(f)||(f.fontSize=g,t.updateTextInputFontSize(g),t.update())},u=()=>{t.delete()},d=({textInputValue:g,bbox:f})=>{const{datum:y}=this;if(f!=null&&g!=null&&g.length>0){if(!xl(y))return;const x=SA(y,g,f.width);y?.set({text:x}),t.update(),t.recordAction(`Create ${y?.type} annotation`)}else t.delete()};super("start",{start:{click:{target:"waiting-first-render",action:e},dragStart:{target:"waiting-first-render",action:e},cancel:Rt.parent,reset:Rt.parent},"waiting-first-render":{render:{target:"end",action:i}},end:{hover:o,drag:o,click:{target:"edit",action:r},dragEnd:{target:"edit",action:r},reset:{target:Rt.parent,action:u},cancel:{target:Rt.parent,action:u}},edit:{onEnter:n,updateTextInputBBox:a,color:l,fontSize:c,textInput:[{guard:MO,target:Rt.parent,action:u},{guard:DO,target:Rt.parent,action:d}],click:{target:Rt.parent,action:d},dragStart:{target:Rt.parent,action:d},resize:{target:Rt.parent,action:d},onExit:s,cancel:{target:Rt.parent,action:u}}}),this.debug=Gt.create(!0,"annotations")}};M([Fe()],AO.prototype,"datum");M([Fe()],AO.prototype,"node");var Uat=class extends AO{createDatum(){return new Ir}},YV={type:"callout",datum:Ir,scene:eS,isDatum:Ir.is,translate:(t,e,i,n)=>{if(Ir.is(e)&&eS.is(t))return t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Ir.is(e)&&Ir.is(i)&&eS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Ir.is(e)&&eS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new Uat({...t,create:e("callout")}),dragState:t=>new yn(t)},IO=class extends kK{constructor(){super(...arguments),this.label=new j.Text({zIndex:1}),this.anchor={x:0,y:0,position:"above-left"}}setTextInputBBox(t){this.textInputBBox=t,this.markDirty("TextualPointScene")}update(t,e){const i=Ki(t,e),n=this.getTextBBox(t,i,e);this.updateLabel(t,n,e),this.updateHandle(t,i,n),this.updateShape(t,n),this.anchor=this.updateAnchor(t,n,e)}copy(t,e,i){const n=Ki(t,i),s=this.getTextBBox(t,n,i),a=t.getPadding(),o=a.left+a.right,r=a.top+a.bottom,l=(s.width+o)/2,c=s.height+r,u=na({x:n.x-l,y:n.y-c},i);return e.x=u.x,e.y=u.y,e}containsPoint(t,e){const{label:i}=this;return super.containsPoint(t,e)||i.visible&&i.containsPoint(t,e)}getNodeAtCoords(t,e){return this.label.visible&&this.label.containsPoint(t,e)?"text":super.getNodeAtCoords(t,e)}getTextBBox(t,e,i){const{text:n}=t.getText();return fO(t,n,{x:e.x,y:e.y},this.textInputBBox)}updateLabel(t,e,i){const{text:n,isPlaceholder:s}=t.getText(),a=this.getLabelCoords(t,e);i.isRtl&&(a.x+=e.width),pK(this.label,n,s,t,a,this.getTextBaseline(t))}updateShape(t,e){}updateAnchor(t,e,i){return{x:i.isRtl?e.x-e.width+i.seriesRect.x:e.x+i.seriesRect.x,y:e.y+i.seriesRect.y-e.height,position:this.anchor.position}}getLabelCoords(t,e){return e}getTextBaseline(t){return t.position=="center"?"middle":t.position}getHandleCoords(t,e,i){return i}getHandleStyles(t){const e=super.getHandleStyles(t);return e.stroke=t.handle.stroke??t.color,e}},{drawCorner:ow}=j,iS=class extends IO{constructor(){super(),this.type="comment",this.shape=new j.Path,this.append([this.shape,this.label,this.handle])}static is(t){return ns.isCheck(t,"comment")}updateShape(t,e){const{shape:i}=this;i.fill=t.fill,i.fillOpacity=t.fillOpacity??1,i.stroke=t.stroke??"transparent",i.strokeWidth=t.strokeWidth??1,i.strokeOpacity=t.strokeOpacity??1,this.updatePath(t,e)}getLabelCoords(t,e){const i=t.getPadding();return{x:e.x+i.left,y:e.y-i.bottom}}getHandleStyles(t){return{fill:t.handle.fill,stroke:t.handle.stroke??t.stroke??t.fill,strokeOpacity:t.handle.strokeOpacity,strokeWidth:t.handle.strokeWidth}}updateAnchor(t,e,i){const n=super.updateAnchor(t,e,i),s=t.getPadding();return n.y-=s.bottom+s.top,n}updatePath(t,e){const i=t.getPadding(),{x:n,y:s}=e;let{width:a,height:o}=e;const{fontSize:r}=t,l=i.left+i.right,c=i.top+i.bottom;a=a+l,o=Math.max(o+c,r+c);const u=s-o,d=n+a,g=(nr(r,vA)+c)/2,{path:f}=this.shape;f.clear(),f.moveTo(n,s),f.lineTo(n,u+g),ow(f,{x0:n,x1:n+g,y0:u+g,y1:u,cx:n+g,cy:u+g},g,!1),f.lineTo(d-g,u),ow(f,{x0:d-g,x1:d,y0:u,y1:u+g,cx:d-g,cy:u+g},g,!1),f.lineTo(d,s-g),ow(f,{x0:d,x1:d-g,y0:s-g,y1:s,cx:d-g,cy:s-g},g,!1),f.closePath()}containsPoint(t,e){return super.containsPoint(t,e)||this.shape.containsPoint(t,e)}},av=class extends Rt{constructor(t){const e=({point:u})=>{const d=this.createDatum();d.set({x:u.x,y:u.y}),t.create(d)},i=()=>{this.node?.toggleActive(!0),t.showAnnotationOptions(),t.update()},n=()=>{t.showTextInput(),this.datum&&(this.datum.visible=!1)},s=()=>{t.hideTextInput(),this.node?.setTextInputBBox(),this.datum&&(this.datum.visible=!0),t.deselect()},a=u=>{this.node?.setTextInputBBox(u),t.update()},o=({colorPickerType:u,colorOpacity:d,color:g,opacity:f,isMultiColor:y})=>{this.datum&&(u==="text-color"&&t.updateTextInputColor(g),AA(this.datum,u,d,g,f,y),t.update())},r=u=>{const{datum:d,node:g}=this;!d||!g||!xl(d)||(d.fontSize=u,t.updateTextInputFontSize(u),t.update())},l=()=>{t.delete()},c=({textInputValue:u,bbox:d})=>{if(d!=null&&u!=null&&u.length>0){const{datum:g}=this;if(!xl(g))return;const f=SA(g,u,d.width);g?.set({text:f}),t.update(),t.recordAction(`Create ${g?.type} annotation`)}else t.delete()};super("start",{start:{click:{target:"waiting-first-render",action:e},dragStart:{target:"waiting-first-render",action:e},cancel:Rt.parent,reset:Rt.parent},"waiting-first-render":{render:{target:"edit",action:i}},edit:{onEnter:n,updateTextInputBBox:a,color:o,fontSize:r,textInput:[{guard:MO,target:Rt.parent,action:l},{guard:DO,target:Rt.parent,action:c}],click:{target:Rt.parent,action:c},dragStart:{target:Rt.parent,action:c},resize:{target:Rt.parent,action:c},onExit:s,cancel:{target:Rt.parent,action:l}}}),this.debug=Gt.create(!0,"annotations")}};M([Fe()],av.prototype,"datum");M([Fe()],av.prototype,"node");var Wat=class extends av{createDatum(){return new al}},$V={type:"comment",datum:al,scene:iS,isDatum:al.is,translate:(t,e,i,n)=>{al.is(e)&&iS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(al.is(e)&&al.is(i)&&iS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{al.is(e)&&iS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new Wat({...t,create:e("comment")}),dragState:t=>new yn(t)},{calculateLabelTranslation:Kat}=j,OK=class extends j.Group{constructor(){super({name:"AnnotationAxisLabelGroup"}),this.label=new j.Text({zIndex:1}),this.rect=new j.Rect;const{label:t}=this;t.fontSize=12,t.fontFamily="Verdana, sans-serif",t.fill="black",t.textBaseline="middle",t.textAlign="center",this.append([this.rect,this.label])}update(t){this.updateLabel(t),this.updateRect(t),this.updatePosition(t)}updateLabel({value:t,styles:e,context:i}){const{fontWeight:n,fontSize:s,fontStyle:a,fontFamily:o,textAlign:r,color:l="white",formatter:c}=e,u=c?c({value:t}):i.formatScaleValue(t,"annotation-label");this.label.setProperties({fontWeight:n,fontSize:s,fontStyle:a,fontFamily:o,textAlign:r,fill:l,text:u})}updateRect({styles:t}){const{rect:e}=this,{cornerRadius:i,fill:n,fillOpacity:s,stroke:a,strokeOpacity:o}=t;e.fill=n,e.fillOpacity=s??1,e.stroke=a,e.strokeOpacity=o??1,e.cornerRadius=i??0}updatePosition({x:t,y:e,context:i,styles:{padding:n}}){const{label:s,rect:a}=this,o=s.getBBox()?.clone(),r=n??8,l=n??4,{xTranslation:c,yTranslation:u}=Kat({yDirection:!0,padding:i.labelPadding,position:i.position??"left",bbox:o});o.grow(r,"horizontal"),o.grow(l,"vertical");const d=t+c,g=e+u;s.x=d,s.y=g,a.y=g-Math.round(o.height/2),a.x=d-Math.round(o.width/2),a.height=o.height,a.width=o.width}};OK.className="AxisLabel";var Ea=class extends j.Line{constructor(){super(...arguments),this.growCollisionBox=9,this.clipMask=new Map}setProperties(t){return super.setProperties(t),this.updateCollisionBBox(),this}updateCollisionBBox(){const{growCollisionBox:t,strokeWidth:e,x1:i,y1:n,x2:s,y2:a}=this;let o=e+t;o%2===0&&(o+=1);const r=at.from(i,n-Math.floor(o/2)),l=at.from(s,a),c=at.distance(r,l);this.collisionBBox=new j.BBox(r.x,r.y,c,o)}isPointInPath(t,e){const{collisionBBox:i,x1:n,y1:s,x2:a,y2:o}=this;if(!i)return!1;const r=at.from(n,s),l=at.from(a,o),c=at.sub(at.from(t,e),r),u=at.sub(l,r),d=at.rotate(c,at.angle(c,u),r);return i.containsPoint(d.x,d.y)??!1}render(t){const{clipMask:e}=this,{ctx:i}=t;if(e.size===0){super.render(t);return}i.save();try{for(const n of this.clipMask.values()){const{x:s,y:a,radius:o}=n;i.beginPath(),i.rect(0,0,i.canvas.width,i.canvas.height),i.ellipse(s,a,o,o,0,Math.PI*2,0,!0),i.clip()}super.render(t)}finally{i.restore()}}setClipMask(t,e){const i=this.clipMask.get(t);or(i,e)!=null&&this.markDirty("CollidableLine"),e?this.clipMask.set(t,e):this.clipMask.delete(t)}},pp=class extends j.TransformableText{constructor(){super(...arguments),this.growCollisionBox={top:4,right:4,bottom:4,left:4}}isPointInPath(t,e){const i=this.fromParentPoint(t,e),n=this.computeBBoxWithoutTransforms();return n?n.grow(this.growCollisionBox).containsPoint(i.x,i.y):!1}};function df(t,e,i,n,s,a,o){if(!a||!s||!n){e.setClipMask(t);return}const{alignment:r,position:l}=n,c=RK(i,n.fontSize,o),{point:u,textBaseline:d}=PK(c,l,r);zK(s,a,n,u,c.angle,d);const{x:g,y:f,width:y,height:x}=s.getBBox(),S=at.length(at.from(y,x)),D={x:g+y/2,y:f+x/2,radius:S/2+at.length(c.offset)};return l==="center"?e.setClipMask(t,D):e.setClipMask(t),{clipMask:D,numbers:c}}function EK(t,e,i,n,s,a,o){if(!o||!a)return;const{alignment:r,position:l}=n,[c,u]=e.y1<=i.y1?[e,i]:[i,e];let d=c;l==="bottom"?d=u:l==="inside"&&(d={x1:(c.x1+u.x1)/2,y1:(c.y1+u.y1)/2,x2:(c.x2+u.x2)/2,y2:(c.y2+u.y2)/2});const g=RK(d,n.fontSize,s),{point:f,textBaseline:y}=PK(g,l==="inside"?"center":l,r,t);zK(a,o,n,f,g.angle,y)}function RK(t,e,i){let[n,s]=at.from(t);n.x>s.x&&([n,s]=[s,n]);const a=at.normalized(at.sub(s,n)),o=at.angle(a),r=at.multiply(a,Yi.HANDLE_SIZE/2+(e??14)/2),l=at.multiply(a,(i??2)/2+(e??14)/3);return{left:n,right:s,normal:a,angle:o,inset:r,offset:l}}function PK({left:t,right:e,normal:i,angle:n,inset:s,offset:a},o,r,l){let c;r==="right"?c=at.sub(e,s):r==="center"?c=at.add(t,at.multiply(i,at.distance(t,e)/2)):c=at.add(t,s);let u="bottom";return o==="bottom"?(c=at.rotate(a,n+Math.PI/2,c),u="top"):o==="center"&&!l?u="middle":c=at.rotate(a,n-Math.PI/2,c),{point:c,textBaseline:u}}function zK(t,e,i,n,s,a){t.setProperties({text:e,x:n.x,y:n.y,rotation:s,rotationCenterX:n.x,rotationCenterY:n.y,fill:i.color,fontFamily:i.fontFamily,fontSize:i.fontSize,fontStyle:i.fontStyle,fontWeight:i.fontWeight,textAlign:i.alignment,textBaseline:a})}var nu=class extends ns{constructor(){super(),this.type="cross-line",this.line=new Ea,this.middle=new tf,this.isHorizontal=!1,this.append([this.line,this.middle])}static is(t){return ns.isCheck(t,"cross-line")}update(t,e){const{seriesRect:i}=e;this.seriesRect=i,this.isHorizontal=Bs.is(t);const n=this.isHorizontal?e.yAxis:e.xAxis,s=this.convertCrossLine(t,n);if(s==null){this.visible=!1;return}this.visible=t.visible??!0,this.visible&&(this.updateLine(t,s),this.updateHandle(t,s),this.updateText(t,s),this.updateAxisLabel(t,n,s))}updateLine(t,e){const{line:i}=this,{lineDashOffset:n,stroke:s,strokeWidth:a,strokeOpacity:o}=t,{x1:r,y1:l,x2:c,y2:u}=e;i.setProperties({x1:r,y1:l,x2:c,y2:u,lineCap:t.getLineCap(),lineDash:t.getLineDash(),lineDashOffset:n,stroke:s,strokeWidth:a,strokeOpacity:o,fillOpacity:0})}updateHandle(t,e){const{middle:i}=this,{locked:n,stroke:s,strokeWidth:a,strokeOpacity:o}=t,r={fill:t.handle.fill,stroke:t.handle.stroke??s,strokeOpacity:t.handle.strokeOpacity??o,strokeWidth:t.handle.strokeWidth??a},l=at.sub(Wt.center(e),at.from(i.handle.width/2,i.handle.height/2));i.gradient=this.isHorizontal?"horizontal":"vertical",i.update({...r,...l}),i.toggleLocked(n??!1)}updateText(t,e){this.text=this.updateNode(pp,this.text,!!t.text.label),df(this.line.id,this.line,e,t.text,this.text,t.text.label,t.strokeWidth)}createAxisLabel(t){const e=new OK;return t.attachLabel(e),e}updateAxisLabel(t,e,i){this.axisLabel??(this.axisLabel=this.createAxisLabel(e));const{axisLabel:n,seriesRect:s}=this,{direction:a,position:o}=e;if(t.axisLabel.enabled){n.visible=this.visible;const r=o==="left"||o==="top"?Wt.start(i):Wt.end(i),l=a===z.X?r.x:r.y;if(!e.inRange(l)){n.visible=!1;return}const c=Jn(t.value);n.update({...at.add(r,at.required(s)),value:c,styles:t.axisLabel,context:e})}else n.visible=!1}setAxisLabelOpacity(t){this.axisLabel&&(this.axisLabel.opacity=t)}setAxisLabelVisible(t){this.axisLabel&&(this.axisLabel.visible=t)}toggleHandles(t){this.middle.visible=t,this.middle.toggleHovered(this.activeHandle==="middle")}destroy(){super.destroy(),this.axisLabel?.destroy()}toggleActive(t){this.toggleHandles(t),this.middle.toggleActive(t)}dragStart(t,e,i){const n=Bs.is(t)?{x:e.x,y:vc(t.value,i.yAxis)}:{x:vc(t.value,i.xAxis),y:e.y};this.dragState={offset:e,middle:n}}drag(t,e,i){const{activeHandle:n,dragState:s}=this;!t.isWriteable()||!s||(n&&this[n].toggleDragging(!0),this.translatePoint(t,s.middle,at.sub(e,s.offset),i))}translate(t,e,i){if(!t.isWriteable())return;const n=Bs.is(t)?at.from(0,vc(t.value,i.yAxis)):at.from(vc(t.value,i.xAxis),0);this.translatePoint(t,n,e,i)}translatePoint(t,e,i,n){const s=Bs.is(t);s?i.x=0:i.y=0;const{point:a}=Ec({point:e},i,n);t.value=s?a.y:a.x}stopDragging(){this.middle.toggleDragging(!1)}copy(t,e,i){const n=Bs.is(t),s=this.isHorizontal?i.yAxis:i.xAxis,a=this.convertCrossLine(t,s);if(!a)return;const o=n?-30:0,r=n?0:-30,l=na({x:a.x1+r,y:a.y1+o},i);return e.set({value:n?l.y:l.x}),e}getCursor(){return this.activeHandle==null?"pointer":this[this.activeHandle].getCursor()}containsPoint(t,e){const{middle:i,line:n,text:s}=this;return this.activeHandle=void 0,i.containsPoint(t,e)?(this.activeHandle="middle",!0):n.isPointInPath(t,e)||!!s?.containsPoint(t,e)}getNodeAtCoords(t,e){if(this.text?.containsPoint(t,e))return"text";if(this.line.isPointInPath(t,e))return"line";if(this.middle.containsPoint(t,e))return"handle"}getAnchor(){const t=this.computeBBoxWithoutHandles();return this.isHorizontal?{x:t.x+t.width/2,y:t.y}:{x:t.x+t.width,y:t.y+t.height/2,position:"right"}}convertCrossLine(t,e){if(t.value==null)return;let i=0,n=0,s,a;const{bounds:o}=e,r=vc(t.value,e);return Bs.is(t)?(s=o.width,n=r,a=r):(i=r,s=r,a=o.height),{x1:i,y1:n,x2:s,y2:a}}},kO=class extends Rt{constructor(t,e){const i=({point:s})=>{const a=t==="horizontal",o=a?new Bs:new ol;o.set({value:a?s.y:s.x}),e.create(o),e.recordAction(`Create ${a?"horizontal-line":"vertical-line"} annotation`)},n=()=>{this.node?.toggleActive(!0),e.showAnnotationOptions(),e.update()};super("start",{start:{click:{target:"waiting-first-render",action:i},drag:{target:"waiting-first-render",action:i},reset:Rt.parent,cancel:Rt.parent},"waiting-first-render":{render:{target:Rt.parent,action:n}}}),this.debug=Gt.create(!0,"annotations")}};M([Fe()],kO.prototype,"node");var XV={type:"horizontal-line",datum:Bs,scene:nu,isDatum:Bs.is,translate:(t,e,i,n)=>{Bs.is(e)&&nu.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Bs.is(e)&&Bs.is(i)&&nu.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Bs.is(e)&&nu.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new kO("horizontal",{...t,create:e("horizontal-line")}),dragState:t=>new yn(t)},ZV={type:"vertical-line",datum:ol,scene:nu,isDatum:ol.is,translate:(t,e,i,n)=>{ol.is(e)&&nu.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(ol.is(e)&&ol.is(i)&&nu.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{ol.is(e)&&nu.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new kO("vertical",{...t,create:e("vertical-line")}),dragState:t=>new yn(t)},BK=class{static updateBackground(t,e,i,n){const{background:s}=this,{seriesRect:a}=n;s.path.clear(!0);const o=Wt.from(0,0,a.width,a.height),r=this.getBackgroundPoints(t,e,i,o);for(let c=0;ce.x2,a=e.y1>e.y2,o=a?n.y2:n.y1,r=a?n.y1:n.y2,l=at.from(e);return t.extendEnd&&e.y2===r&&l.push(at.from(s?n.x1:n.x2,a?n.y1:n.y2)),t.extendEnd&&i.y2===o&&l.push(at.from(s?n.x1:n.x2,a?n.y2:n.y1)),l.push(...at.from(i).reverse()),t.extendStart&&i.y1===r&&l.push(at.from(s?n.x2:n.x1,a?n.y1:n.y2)),t.extendStart&&e.y1===o&&l.push(at.from(s?n.x2:n.x1,a?n.y2:n.y1)),l}},wA=class extends Rt{constructor(t){const e=({point:l})=>{const c=new Xo;c.set({start:l,end:l,startHeight:0,endHeight:0}),t.create(c)},i=()=>{const{node:l}=this;l?.toggleActive(!0),l?.toggleHandles({topLeft:!0,topRight:!1,bottomLeft:!1,bottomRight:!1})},n=({offset:l,context:c})=>{const{datum:u,snapping:d}=this;u&&(u.set({end:ox(l,c,d,u.start,u.snapToAngle)}),t.update())},s=()=>{this.node?.toggleHandles({topRight:!0}),t.update()},a=({point:l})=>{const{datum:c,node:u}=this,d=Jn(c?.end.y),g=Jn(c?.start.y),{y:f}=l;if(c==null||!Je(g)||!Je(d)||!Je(f))return;const y=d-(f??0),x=(g-d)*2+y,S={x:c?.start.x,y:g-x},D={x:c?.end.x,y:l.y};u?.toggleHandles({bottomLeft:!0,bottomRight:!0}),!(!t.validatePoint(S,{overflowContinuous:!0})||!t.validatePoint(D,{overflowContinuous:!0}))&&(c.set({startHeight:x,endHeight:y}),t.update())},o=({point:l})=>{const{datum:c,node:u}=this,d=Jn(c?.end.y),g=Jn(c?.start.y),{y:f}=l;if(c==null||!Je(g)||!Je(d)||!Je(f))return;const y=d-(f??0),x=(g-d)*2+y,S={x:c.start.x,y:g-y},D={x:c.end.x,y:l.y};u?.toggleHandles(!0),!(!t.validatePoint(S,{overflowContinuous:!0})||!t.validatePoint(D,{overflowContinuous:!0}))&&(c.set({startHeight:x,endHeight:y}),t.recordAction("Create disjoint-channel annotation"),t.showAnnotationOptions(),t.update())},r=()=>t.delete();super("start",{start:{click:{target:"waiting-first-render",action:e},drag:{target:"waiting-first-render",action:e},reset:Rt.parent},"waiting-first-render":{render:{target:"end",action:i}},end:{hover:n,drag:n,click:{target:"height",action:s},dragEnd:{target:"height",action:s},reset:{target:Rt.parent,action:r},cancel:{target:Rt.parent,action:r}},height:{hover:a,click:{target:Rt.parent,action:o},drag:{target:Rt.parent,action:o},reset:{target:Rt.parent,action:r},cancel:{target:Rt.parent,action:r}}}),this.debug=Gt.create(!0,"annotations"),this.snapping=!1}};M([Fe()],wA.prototype,"datum");M([Fe()],wA.prototype,"node");M([Fe()],wA.prototype,"snapping");var qV={type:"disjoint-channel",datum:Xo,scene:nS,isDatum:Xo.is,translate:(t,e,i,n)=>{Xo.is(e)&&nS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Xo.is(e)&&Xo.is(i)&&nS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Xo.is(e)&&nS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new wA({...t,create:e("disjoint-channel")}),dragState:t=>new yn(t)},t1=[0,23.6,38.2,50,61.8,78.6,100],Yat=[161.8,261.8,361.8,423.6],$at=[...t1,...Yat],Xat={10:$at,6:t1,4:t1.filter(t=>t!==78.6&&t!==23.6)},QV=10;function Zat(t,e){const{x2:i,y1:n,y2:s}=t,a=n-s;return e==null?{x1:i,x2:i,y1:s-a,y2:s}:{x1:e.x1,x2:e.x2,y1:e.y2-a,y2:e.y2}}function _K({x1:t,y1:e,x2:i,y2:n},s,a,o,r=10){const l=e-n,c=a?-1:1,u=[],{yAxis:d,isRtl:g}=s;let f=o;for(const[y,x]of Xat[r].entries()){const S=o+l*(x/100)*c,D=d.scaleInvert(S);u.push({id:y,x1:t,x2:i,y1:f,y2:S,tag:x==100?0:1,label:{x1:g?Math.max(t,i)+QV:Math.min(t,i)-QV,x2:i,y1:S,y2:S,text:g?`(${D.toFixed(2)}) ${(x/100).toFixed(3)}`:`${(x/100).toFixed(3)} (${D.toFixed(2)})`}}),f=S}return u}var FK=class extends ns{constructor(){super(),this.trendLine=new Ea,this.rangeFillsGroup=new j.Group({name:`${this.id}-range-fills`}),this.rangeFillsGroupSelection=j.Selection.select(this.rangeFillsGroup,j.Range),this.rangeStrokesGroup=new j.Group({name:`${this.id}-range-strokes`}),this.rangeStrokesGroupSelection=j.Selection.select(this.rangeStrokesGroup,Ea),this.labelsGroup=new j.Group({name:`${this.id}-ranges-labels`}),this.labelsGroupSelection=j.Selection.select(this.labelsGroup,pp),this.anchor={x:0,y:0,position:"above"},this.append([this.trendLine,this.rangeFillsGroup,this.rangeStrokesGroup,this.labelsGroup])}update(t,e){let i=oa(t,e);if(i==null){this.visible=!1;return}if(i=Wt.round(i),this.visible=t.visible??!0,!this.visible)return;this.updateLine(t,i,this.trendLine),this.updateHandles(t,i),this.updateAnchor(t,i,e);const{reverse:n}=t,s=this.extendLine(i,t,e),a=n?s.y1:s.y2,o=n?s.y2:s.y1,r=_K(s,e,t.reverse,a,t.bands);this.updateRanges(t,r,e);const l={...s,y1:o,y2:o};this.updateText(t,l)}extendLine({x1:t,y1:e,x2:i,y2:n},s,a){const o={x1:t,y1:e,x2:i,y2:n};if(!s.extendStart&&!s.extendEnd)return o;const{x:r,width:l}=a.xAxis.bounds;return s.extendEnd&&(o[t>i?"x1":"x2"]=r+l),s.extendStart&&(o[t>i?"x2":"x1"]=r),o}updateLine(t,e,i){if(!e||!i)return;const{lineDashOffset:n,strokeWidth:s,strokeOpacity:a,stroke:o}=t;i.setProperties({...e,lineCap:t.getLineCap(),lineDash:[3,4],lineDashOffset:n,strokeWidth:s,strokeOpacity:a,fillOpacity:0,stroke:o})}updateRangeStrokes(t){const{lineDashOffset:e,strokeWidth:i,strokeOpacity:n,strokes:s,rangeStroke:a,isMultiColor:o}=t;this.rangeStrokesGroupSelection.each((r,{x1:l,x2:c,y2:u,tag:d},g)=>{const f=u,y=o?s[g%s.length]:a;r.setProperties({x1:l,x2:c,y1:f,y2:f,stroke:y,strokeOpacity:n,strokeWidth:i,lineCap:t.getLineCap(),lineDash:t.getLineDash(),lineDashOffset:e,tag:d})})}updateRanges(t,e,i){const n=s=>s.id;this.rangeFillsGroupSelection.update(e,void 0,n),this.rangeStrokesGroupSelection.update(e,void 0,n),this.labelsGroupSelection.update(e,void 0,n),this.updateRangeFills(t),this.updateRangeStrokes(t),this.updateRangeLabels(t,i)}updateRangeFills(t){const{lineDashOffset:e,strokeWidth:i,strokeOpacity:n,strokes:s,rangeStroke:a,showFill:o,isMultiColor:r}=t;this.rangeFillsGroupSelection.each((l,{x1:c,x2:u,y1:d,y2:g},f)=>{const y=r?s[f%s.length]:a;if(!o){l.visible=!1;return}l.setProperties({x1:c,x2:u,y1:d,y2:g,startLine:!1,endLine:!1,stroke:y,strokeOpacity:n,fill:y,fillOpacity:(n??1)*.15,strokeWidth:i,lineCap:t.getLineCap(),lineDash:t.getLineDash(),lineDashOffset:e,visible:!0})})}updateRangeLabels(t,{xAxis:e,isRtl:i}){const{rangeStrokesGroupSelection:n}=this,{strokes:s,strokeWidth:a,rangeStroke:o,isMultiColor:r,label:{fontFamily:l,fontSize:c,fontStyle:u,fontWeight:d,color:g}}=t,f={fontFamily:l,fontSize:c,fontStyle:u,fontWeight:d},y=this.checkWithinBounds(e,f,i,this.labelsGroupSelection.at(0));this.labelsGroupSelection.each((x,S,D)=>{const A=g??(r?s[D%s.length]:o),I=n.at(D);if(!I)return;const{text:w,...N}=S.label;if(y)x.setProperties({...f,text:w,x:N.x1,y:N.y1,textBaseline:"middle",textAlign:i?"left":"end",fill:A}),df(x.id,I,N);else{const O={...f,position:"center",alignment:i?"right":"left",color:A};df(x.id,I,N,O,x,w,a)}})}checkWithinBounds(t,e,i,n){if(!n)return!1;const{text:s,...a}=n.datum.label;n.setProperties({...e,text:s,x:a.x1,y:a.y1,textBaseline:"middle",textAlign:i?"left":"end"});const o=n.getBBox(),r=o.x,l=o.x+o.width,c=t.bounds.x,u=t.bounds.x+t.bounds.width;return r>=c&&l<=u}updateText(t,e){const i=this.rangeStrokesGroupSelection.selectByTag(0)[0];if(!i)return;const{text:n,strokeWidth:s}=t;this.text=this.updateNode(pp,this.text,!!n.label),df(i.id,i,e,n,this.text,n.label,s)}updateAnchor(t,e,i,n){const s=Wt.topCenter(e);at.apply(this.anchor,j.Transformable.toCanvasPoint(this.trendLine,s.x,s.y))}containsPoint(t,e){const{trendLine:i,rangeStrokesGroupSelection:n,text:s}=this;let a=!1;return n.each(o=>a||(a=o.isPointInPath(t,e))),a||i.isPointInPath(t,e)||!!s?.containsPoint(t,e)}getNodeAtCoords(t,e){if(this.text?.containsPoint(t,e))return"text";if(this.trendLine.isPointInPath(t,e))return"line"}getHandleStyles(t){return{fill:t.handle.fill,stroke:t.handle.stroke??t.stroke,strokeOpacity:t.handle.strokeOpacity??t.strokeOpacity,strokeWidth:t.handle.strokeWidth??t.strokeWidth}}drag(t,e,i,n){t.isWriteable()&&(this.activeHandle?this.dragHandle(t,e,i,n):this.dragAll(t,e,i))}getAnchor(){return this.anchor}getCursor(){return"pointer"}},{ContinuousScale:JV}=j;function VM(t,e,i={overflowContinuous:!1},n){if(e.x==null||e.y==null)return!1;const{xAxis:s,yAxis:a}=t,o=i.overflowContinuous&&JV.is(s.scale),r=i.overflowContinuous&&JV.is(a.scale),l=o||t_(e.x,s),c=r||t_(e.y,a);return!!(l&&c)}function t_(t,e){const{domain:i}=e.scale,n=Jn(t);return i&&n!=null&&e.continuous?n>=i[0]&&n<=i.at(-1):!0}var sS=class extends FK{constructor(){super(),this.type="fibonacci-retracement-trend-based",this.endRetracementLine=new Ea,this.start=new Yi,this.end=new Yi,this.endRetracement=new Yi,this.append([this.endRetracementLine,this.start,this.end,this.endRetracement])}static is(t){return ns.isCheck(t,"fibonacci-retracement-trend-based")}update(t,e){let{coords1:i,coords2:n}=this.getCoords(t,e);if(i==null||n==null){this.visible=!1;return}if(i=Wt.round(i),n=Wt.round(n),this.visible=t.visible??!0,!this.visible)return;(t.endRetracement.x==null||t.endRetracement.y==null)&&(n=void 0),this.updateLine(t,i,this.trendLine),this.updateLine(t,n,this.endRetracementLine),this.updateHandles(t,i,n),this.updateAnchor(t,n??i,e);const{reverse:s,bands:a}=t,o=Zat(i,n),r=this.extendLine(o,t,e),l=r.y2,c=r.y1,u=n?_K(r,e,s,l,a):[];this.updateRanges(t,u,e);const d={...r,y1:c,y2:c};this.updateText(t,d)}containsPoint(t,e){const{start:i,end:n,endRetracement:s,endRetracementLine:a}=this;return this.activeHandle=void 0,i.containsPoint(t,e)?(this.activeHandle="start",!0):n.containsPoint(t,e)?(this.activeHandle="end",!0):s.containsPoint(t,e)?(this.activeHandle="endRetracement",!0):a.isPointInPath(t,e)||super.containsPoint(t,e)}getNodeAtCoords(t,e){return this.start.containsPoint(t,e)||this.end.containsPoint(t,e)||this.endRetracement.containsPoint(t,e)?"handle":this.endRetracementLine.isPointInPath(t,e)?"line":super.getNodeAtCoords(t,e)}dragStart(t,e,i){this.dragState={offset:e,...CA({start:t.start,end:t.end,endRetracement:t.endRetracement},i)}}stopDragging(){this.start.toggleDragging(!1),this.end.toggleDragging(!1),this.endRetracement.toggleDragging(!1)}dragAll(t,e,i){const{dragState:n}=this;n&&this.translatePoints({datum:t,start:n.start,end:n.end,endRetracement:n.endRetracement,translation:at.sub(e,n.offset),context:i})}dragHandle(t,e,i,n){const{activeHandle:s,dragState:a}=this;if(!s||!a)return;this[s].toggleDragging(!0);const o=n?this.snapToAngle(t,e,i):na(this[s].drag(e).point,i);!o||!VM(i,o)||(t[s].x=o.x,t[s].y=o.y)}snapToAngle(t,e,i){const{activeHandle:n}=this,s=["start","end","endRetracement"];if(!n)return;const a=(s.indexOf(n)+1)%s.length,o=s[a];this[n].toggleDragging(!0);const r=Ki(t[o],i);return na(kA(e,r,t.snapToAngle),i)}translatePoints({datum:t,start:e,end:i,endRetracement:n,translation:s,context:a}){const o=Ec({start:e,end:i,endRetracement:n},s,a,{overflowContinuous:2});t.start.x=o.start.x,t.end.x=o.end.x,t.endRetracement.x=o.endRetracement.x,t.start.y=o.start.y,t.end.y=o.end.y,t.endRetracement.y=o.endRetracement.y}translate(t,e,i){this.translatePoints({datum:t,start:Ki(t.start,i),end:Ki(t.end,i),endRetracement:Ki(t.endRetracement,i),translation:e,context:i})}copy(t,e,i){const{coords1:n,coords2:s}=this.getCoords(t,i);if(!n||!s)return;const a=this.computeBBoxWithoutHandles();return this.translatePoints({datum:e,start:Wt.start(n),end:Wt.end(n),endRetracement:Wt.end(s),translation:{x:-a.width/2,y:-a.height/2},context:i}),e}getCoords(t,e){return{coords1:oa(t,e),coords2:oa({start:t.end,end:t.endRetracement},e)}}toggleHandles(t){if(typeof t=="boolean")this.start.visible=t,this.end.visible=t,this.endRetracement.visible=t;else for(const[e,i]of Xe(t))this[e].visible=i;this.start.toggleHovered(this.activeHandle==="start"),this.end.toggleHovered(this.activeHandle==="end"),this.endRetracement.toggleHovered(this.activeHandle==="endRetracement")}toggleActive(t){this.toggleHandles(t),this.start.toggleActive(t),this.end.toggleActive(t),this.endRetracement.toggleActive(t)}updateHandles(t,e,i,n){this.start.update({...this.getHandleStyles(t),...this.getHandleCoords(t,e,"start")}),this.end.update({...this.getHandleStyles(t),...this.getHandleCoords(t,e,"end",n)}),i&&this.endRetracement.update({...this.getHandleStyles(t),...this.getHandleCoords(t,i,"endRetracement",n)}),this.start.toggleLocked(t.locked??!1),this.end.toggleLocked(t.locked??!1),this.endRetracement.toggleLocked(t.locked??!1)}getHandleCoords(t,e,i,n){return i==="start"?Wt.start(e):Wt.end(e)}},NA=class extends Rt{constructor(t){const e=({point:c})=>{const u=this.createDatum();u.set({start:c,end:c}),t.create(u)},i=()=>{const{node:c}=this;c?.toggleActive(!0),c?.toggleHandles({start:!0,end:!1,endRetracement:!1})},n=({offset:c,context:u})=>{const{datum:d,snapping:g}=this;d&&(d.set({end:ox(c,u,g,d.start,d.snapToAngle)}),t.update())},s=()=>{const{datum:c}=this;c&&(c.endRetracement.x=c.end.x,c.endRetracement.y=c.end.y,this.node?.toggleHandles({end:!0}),t.update())},a=({offset:c,context:u})=>{const{datum:d,snapping:g}=this;d&&(d.set({endRetracement:ox(c,u,g,d.end,d.snapToAngle)}),t.update())},o=()=>{this.node?.toggleHandles({endRetracement:!0}),t.update()},r=()=>t.delete(),l=()=>{t.showAnnotationOptions(),t.recordAction(`Create ${this.datum?.type} annotation`)};super("start",{start:{click:{target:"waiting-first-render",action:e},drag:{target:"waiting-first-render",action:e},reset:Rt.parent},"waiting-first-render":{render:{target:"end",action:i}},end:{hover:n,click:{target:"endRetracement",action:s},drag:n,dragEnd:{target:"endRetracement",action:s},reset:{target:Rt.parent,action:r},cancel:{target:Rt.parent,action:r},onExit:l},endRetracement:{hover:a,click:{target:Rt.parent,action:o},drag:{target:Rt.parent,action:o},reset:{target:Rt.parent,action:r},cancel:{target:Rt.parent,action:r}}}),this.debug=Gt.create(!0,"annotations"),this.snapping=!1}createDatum(){return new rl}};M([Fe()],NA.prototype,"datum");M([Fe()],NA.prototype,"node");M([Fe()],NA.prototype,"snapping");var e_={type:"fibonacci-retracement-trend-based",datum:rl,scene:sS,isDatum:rl.is,translate:(t,e,i,n)=>{rl.is(e)&&sS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(rl.is(e)&&rl.is(i)&&sS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{rl.is(e)&&sS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new NA({...t,create:e("fibonacci-retracement-trend-based")}),dragState:t=>new yn(t)},aS=class extends FK{constructor(){super(),this.type="fibonacci-retracement",this.start=new Yi,this.end=new Yi,this.append([this.start,this.end])}static is(t){return ns.isCheck(t,"fibonacci-retracement")}containsPoint(t,e){const{start:i,end:n}=this;return this.activeHandle=void 0,i.containsPoint(t,e)?(this.activeHandle="start",!0):n.containsPoint(t,e)?(this.activeHandle="end",!0):super.containsPoint(t,e)}getNodeAtCoords(t,e){return this.start.containsPoint(t,e)||this.end.containsPoint(t,e)?"handle":super.getNodeAtCoords(t,e)}dragStart(t,e,i){this.dragState={offset:e,...CA({start:t.start,end:t.end},i)}}stopDragging(){this.start.toggleDragging(!1),this.end.toggleDragging(!1)}dragAll(t,e,i){const{dragState:n}=this;n&&this.translatePoints({datum:t,start:n.start,end:n.end,translation:at.sub(e,n.offset),context:i})}dragHandle(t,e,i,n){const{activeHandle:s,dragState:a}=this;if(!s||!a)return;this[s].toggleDragging(!0);const o=n?this.snapToAngle(t,e,i):na(this[s].drag(e).point,i);!o||!VM(i,o)||(t[s].x=o.x,t[s].y=o.y)}snapToAngle(t,e,i){const{activeHandle:n}=this,a=["start","end"].find(r=>r!==n);if(!n||!a)return;this[n].toggleDragging(!0);const o=Ki(t[a],i);return na(kA(e,o,t.snapToAngle),i)}translatePoints({datum:t,start:e,end:i,translation:n,context:s}){const a=Ec({start:e,end:i},n,s,{overflowContinuous:1});t.start.x=a.start.x,t.end.x=a.end.x,t.start.y=a.start.y,t.end.y=a.end.y}translate(t,e,i){this.translatePoints({datum:t,start:Ki(t.start,i),end:Ki(t.end,i),translation:e,context:i})}copy(t,e,i){const n=oa(t,i);if(!n)return;const s=this.computeBBoxWithoutHandles();return this.translatePoints({datum:e,start:{x:n.x1,y:n.y1},end:{x:n.x2,y:n.y2},translation:{x:-s.width/2,y:-s.height/2},context:i}),e}toggleHandles(t){if(typeof t=="boolean")this.start.visible=t,this.end.visible=t;else for(const[e,i]of Xe(t))this[e].visible=i;this.start.toggleHovered(this.activeHandle==="start"),this.end.toggleHovered(this.activeHandle==="end")}toggleActive(t){this.toggleHandles(t),this.start.toggleActive(t),this.end.toggleActive(t)}updateHandles(t,e,i,n){this.start.update({...this.getHandleStyles(t),...this.getHandleCoords(t,e,"start")}),this.end.update({...this.getHandleStyles(t),...this.getHandleCoords(t,e,"end",n)}),this.start.toggleLocked(t.locked??!1),this.end.toggleLocked(t.locked??!1)}getHandleCoords(t,e,i,n){return i==="start"?Wt.start(e):Wt.end(e)}},Im=class extends Rt{constructor(t){const e=({point:r})=>{const l=this.createDatum();l.set({start:r,end:r}),t.create(l)},i=()=>{const{node:r}=this;r?.toggleActive(!0),r?.toggleHandles({start:!0,end:!1})},n=({offset:r,context:l})=>{const{datum:c,snapping:u}=this;c&&(c.set({end:ox(r,l,u,c.start,c.snapToAngle)}),t.update())},s=()=>{this.node?.toggleHandles({end:!0}),t.update()},a=()=>t.delete(),o=()=>{t.showAnnotationOptions(),t.recordAction(`Create ${this.datum?.type} annotation`)};super("start",{start:{click:{target:"waiting-first-render",action:e},drag:{target:"waiting-first-render",action:e},reset:Rt.parent},"waiting-first-render":{render:{target:"end",action:i}},end:{hover:n,click:{target:Rt.parent,action:s},drag:n,dragEnd:{target:Rt.parent,action:s},reset:{target:Rt.parent,action:a},cancel:{target:Rt.parent,action:a},onExit:o}}),this.debug=Gt.create(!0,"annotations"),this.snapping=!1}};M([Fe()],Im.prototype,"datum");M([Fe()],Im.prototype,"node");M([Fe()],Im.prototype,"snapping");var qat=class extends Im{createDatum(){return new fc}},Qat=class extends Im{createDatum(){return new mc}},Jat=class extends Im{createDatum(){return new yc}},i_={type:"fibonacci-retracement",datum:yc,scene:aS,isDatum:yc.is,translate:(t,e,i,n)=>{yc.is(e)&&aS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(yc.is(e)&&yc.is(i)&&aS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{yc.is(e)&&aS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new Jat({...t,create:e("fibonacci-retracement")}),dragState:t=>new yn(t)},tot=class extends j.Group{},_M=class extends tot{constructor(){super(),this.type="arrow",this.path=new j.Path,this.armLength=6,this.append([this.path])}update(t){const{path:e}=this,{x:i,y:n,angle:s,...a}=t,o=at.from(i,n),r=3*Math.PI/4,l=this.armLength+(t.strokeWidth??0)*2,c=at.rotate(at.from(0,l),s+r,o),u=at.rotate(at.from(l,0),s-r,o);e.setProperties(a),e.fillOpacity=0,e.path.clear(),e.path.moveTo(c.x,c.y),e.path.lineTo(o.x,o.y),e.path.lineTo(u.x,u.y)}},{Transformable:eot}=j,su=class extends SO{constructor(){super(),this.type="line",this.line=new Ea,this.append([this.line,this.start,this.end])}static is(t){return ns.isCheck(t,"line")}update(t,e){let i=oa(t,e);if(i==null){this.visible=!1;return}i=Wt.round(i),this.visible=t.visible??!0,this.visible&&(this.updateLine(t,i,e),this.updateHandles(t,i),this.updateText(t,i),this.updateCaps(t,i),this.updateAnchor(t,i,e))}updateLine(t,e,i){const{line:n}=this,{lineDashOffset:s,stroke:a,strokeWidth:o,strokeOpacity:r}=t,l=this.extendLine(e,t,i);n.setProperties({...l,lineCap:t.getLineCap(),lineDash:t.getLineDash(),lineDashOffset:s,stroke:a,strokeWidth:o,strokeOpacity:r,fillOpacity:0})}updateText(t,e){this.text=this.updateNode(pp,this.text,!!t.text.label),df(this.line.id,this.line,e,t.text,this.text,t.text.label,t.strokeWidth)}updateCaps(t,e){if(!t.startCap&&this.startCap&&(this.startCap.remove(),this.startCap=void 0),!t.endCap&&this.endCap&&(this.endCap.remove(),this.endCap=void 0),!t.startCap&&!t.endCap)return;const{stroke:i,strokeWidth:n,strokeOpacity:s}=t,[a,o]=at.from(e),r=at.angle(at.sub(o,a));t.startCap&&(this.startCap&&this.startCap.type!==t.startCap&&(this.startCap.remove(),this.startCap=void 0),this.startCap==null&&(this.startCap=new _M,this.append([this.startCap])),this.startCap.update({x:a.x,y:a.y,angle:r-Math.PI,stroke:i,strokeWidth:n,strokeOpacity:s})),t.endCap&&(this.endCap&&this.endCap.type!==t.endCap&&(this.endCap.remove(),this.endCap=void 0),this.endCap==null&&(this.endCap=new _M,this.append([this.endCap])),this.endCap.update({x:o.x,y:o.y,angle:r,stroke:i,strokeWidth:n,strokeOpacity:s}))}updateAnchor(t,e,i,n){const s=Wt.topCenter(e);at.apply(this.anchor,eot.toCanvasPoint(this.line,s.x,s.y))}containsPoint(t,e){const{line:i,text:n}=this;return super.containsPoint(t,e)||i.isPointInPath(t,e)||!!n?.containsPoint(t,e)}getNodeAtCoords(t,e){return this.text?.containsPoint(t,e)?"text":this.line.isPointInPath(t,e)?"line":super.getNodeAtCoords(t,e)}getHandleCoords(t,e,i,n){const{startCap:s,endCap:a}=this;let[o,r]=at.from(e);const l=at.angle(at.sub(r,o));return s&&(o=at.rotate(at.from(0,-Yi.HANDLE_SIZE/2),l,o)),a&&(r=at.rotate(at.from(0,Yi.HANDLE_SIZE/2),l,r)),i==="start"?o:r}getHandleStyles(t){return{fill:t.handle.fill,stroke:t.handle.stroke??t.stroke,strokeOpacity:t.handle.strokeOpacity??t.strokeOpacity,strokeWidth:t.handle.strokeWidth??t.strokeWidth}}},n_={type:"line",datum:mc,scene:su,isDatum:mc.is,translate:(t,e,i,n)=>{mc.is(e)&&su.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(mc.is(e)&&mc.is(i)&&su.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{mc.is(e)&&su.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new Qat({...t,create:e("line")}),dragState:t=>new yn(t)},s_={type:"arrow",datum:fc,scene:su,isDatum:fc.is,translate:(t,e,i,n)=>{fc.is(e)&&su.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(fc.is(e)&&fc.is(i)&&su.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{fc.is(e)&&su.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new qat({...t,create:e("arrow")}),dragState:t=>new yn(t)};function a_(t,e=0,i=0){let n=e;for(const s of t)if(Array.isArray(s)){for(const a of s)o_(a,n);n+=j.Group.computeChildrenBBox(s).width+i}else o_(s,n),n+=s.getBBox().width+i}function iot(t,e=0,i=0){let n=e;for(const s of t)if(Array.isArray(s)){for(const a of s)r_(a,n);n+=j.Group.computeChildrenBBox(s).height+i}else r_(s,n),n+=s.getBBox().height+i}function o_(t,e){"x1"in t?(t.x2=e+(t.x2-t.x1),t.x1=e):t.x=e}function r_(t,e){"y1"in t?(t.y2=e+(t.y2-t.y1),t.y1=e):t.y=e}function l_(t,e){"x1"in t?(t.x1+=e,t.x2+=e):t.x+=e}function c_(t,e){"y1"in t?(t.y1+=e,t.y2+=e):t.y+=e}var HK=class extends j.Group{constructor(){super(),this.name="MeasurerStatisticsScene",this.background=new j.Rect,this.dateRangeBarsText=new j.Text,this.dateRangeDivider=new j.Line,this.dateRangeValueText=new j.Text,this.priceRangeValueText=new j.Text,this.priceRangeDivider=new j.Line,this.priceRangePercentageText=new j.Text,this.volumeText=new j.Text,this.volumeFormatter=new Intl.NumberFormat("en-US",{notation:"compact",minimumFractionDigits:2,maximumFractionDigits:2}),this.append([this.background,this.dateRangeBarsText,this.dateRangeDivider,this.dateRangeValueText,this.priceRangeValueText,this.priceRangeDivider,this.priceRangePercentageText,this.volumeText])}update(t,e,i,n,s,a,o){this.verticalDirection=a;const r=this.updateStatistics(t,e,i,o),l=j.Group.computeChildrenBBox(r.flat()),c=10;l.grow(c),this.updateBackground(t,l,c),this.reposition(r,c,s),this.checkVisibility(t,s,n)}checkVisibility(t,e,i){const n=Wt.from(e.seriesRect);this.visible=Wt.collides(i,n)&&(t.visible??!0)}updateStatistics(t,e,i,n){const{dateRangeBarsText:s,dateRangeDivider:a,dateRangeValueText:o,priceRangeValueText:r,priceRangeDivider:l,priceRangePercentageText:c,volumeText:u}=this,d=8,g=6,f=t.statistics.fontSize+3,y=-2,x=this.getTextStyles(t),S={...this.getDividerStyles(t),x1:0,y1:0,x2:0,y2:f},D=[s,a,o],A=[r,l,c],I=[];return e.priceRange&&(r.setProperties({...x,text:this.formatPriceRangeValue(e.priceRange.value,n)}),l.setProperties(S),c.setProperties({...x,text:this.formatPriceRangePercentage(e.priceRange.percentage,n)}),a_(A,i.x,d),I.push(A)),e.dateRange&&(s.setProperties({...x,text:this.formatDateRangeBars(e.dateRange.bars,n)}),a.setProperties(S),o.setProperties({...x,text:this.formatDateRangeValue(e.dateRange.value)}),a_(D,i.x,d),I.push(D)),e.volume==null?u.visible=!1:(u.setProperties({...x,x:i.x,text:this.formatVolume(e.volume,n),visible:!0}),I.push(u)),iot(I,i.y,g),l.y1+=y,l.y2+=y,a.y1+=y,a.y2+=y,I}updateBackground(t,e,i){const n=this.getBackgroundStyles(t);this.background.setProperties({...n,...e,x:e.x-e.width/2+i,y:e.y})}reposition(t,e,i){const{width:n,height:s}=i.seriesRect,a=Wt.from(this.background.getBBox());let o=0;a.x1<0&&(o=-a.x1),a.x2>n&&(o=n-a.x2);const r=Math.min(e,s-a.y2);for(const l of t)if(Array.isArray(l)){const c=j.Group.computeChildrenBBox(l).width;for(const u of l)l_(u,o-c/2),c_(u,r)}else l_(l,o-l.getBBox().width/2),c_(l,r);this.background.x+=o,this.background.y+=r}getTextStyles(t){return{fill:t.statistics.color,fontFamily:t.statistics.fontFamily,fontSize:t.statistics.fontSize,fontStyle:t.statistics.fontStyle,fontWeight:t.statistics.fontWeight,textAlign:"left",textBaseline:"top"}}getDividerStyles(t){return{stroke:t.statistics.divider.stroke,strokeOpacity:t.statistics.divider.strokeOpacity,strokeWidth:t.statistics.divider.strokeWidth}}getBackgroundStyles(t){return{fill:t.statistics.fill,stroke:t.statistics.stroke,strokeOpacity:t.statistics.strokeOpacity,strokeWidth:t.statistics.strokeWidth,cornerRadius:4}}formatDateRangeBars(t,e){return e?.t("measurerDateRangeBars",{value:t})??`${t}`}formatDateRangeValue(t){const e=[],i=t>=0?"":"-";t=Math.abs(t);const n=1e3*60,s=n*60,a=s*24,o=Math.floor(t/n),r=Math.floor(t/s),l=Math.floor(t/a),c=r%(a/s),u=o%(s/n);return l>=1&&e.push(`${l}d`),r>=1&&(t=n.x-u.x&&(l={x:n.x,y:r.clipMask.y,radius:this.text.getBBox().height/2+at.length(u)})}this.verticalLine.setClipMask(o,l)}updateCaps(t,e){const{horizontalEndCap:i,verticalEndCap:n}=this,{direction:s}=t,{x1:a,y1:o,x2:r,y2:l}=e,c=at.round(Wt.center(e),0),{stroke:u,strokeWidth:d,strokeOpacity:g}=this.getLineStyles(t),f={stroke:u,strokeWidth:d,strokeOpacity:g};if(s!=="vertical"){const y=a<=r?0:Math.PI;let x=r;s==="horizontal"&&(x+=a<=r?-2:2),i.update({...f,x,y:c.y,angle:y})}if(s!=="horizontal"){const y=o<=l?Math.PI/2:Math.PI/-2;let x=l;s==="vertical"&&(x+=o<=l?-2:2),n.update({...f,x:c.x,y:x,angle:y})}}updateBoundingLines(t,e){const{verticalStartLine:i,verticalEndLine:n,horizontalStartLine:s,horizontalEndLine:a}=this,{direction:o}=t,{x1:r,y1:l,x2:c,y2:u}=e,d=this.getLineStyles(t);o==="horizontal"&&(i.setProperties({...d,x1:r,y1:l,x2:r,y2:u}),n.setProperties({...d,x1:c,y1:l,x2:c,y2:u})),o==="vertical"&&(s.setProperties({...d,x1:r,y1:l,x2:c,y2:l}),a.setProperties({...d,x1:r,y1:u,x2:c,y2:u}))}updateStatistics(t,e,i){const n=at.add(Wt.bottomCenter(e),at.from(0,10)),s={volume:this.getVolume(t)};t.hasPriceRange&&(s.priceRange={percentage:this.getPriceRangePercentage(t),value:this.getPriceRangeValue(t)}),t.hasDateRange&&(s.dateRange={bars:this.getDateRangeBars(e,i),value:this.getDateRangeValue(t)}),this.statistics.update(t,s,n,e,i,this.verticalDirection,t.localeManager)}updateAnchor(t,e,i,n){const s=Wt.topCenter(e);at.apply(this.anchor,j.Transformable.toCanvasPoint(this.horizontalLine,s.x,s.y))}getBackgroundPoints(t,e,i,n){const[s,a]=at.from(e),[o,r]=at.from(i);return[s,a,r,o]}getLineStyles(t){const{lineDashOffset:e,stroke:i,strokeWidth:n,strokeOpacity:s}=t;return{lineCap:t.getLineCap(),lineDash:t.getLineDash(),lineDashOffset:e,stroke:i,strokeWidth:n,strokeOpacity:s,fillOpacity:0}}getBackgroundStyles(t){const{background:e}=t;return{fill:e.fill,fillOpacity:e.fillOpacity}}getHandleStyles(t){return{fill:t.handle.fill,stroke:t.handle.stroke??t.stroke,strokeOpacity:t.handle.strokeOpacity??t.strokeOpacity,strokeWidth:t.handle.strokeWidth??t.strokeWidth}}containsPoint(t,e){const{horizontalLine:i,text:n,verticalLine:s,horizontalStartLine:a,horizontalEndLine:o,verticalStartLine:r,verticalEndLine:l}=this;return super.containsPoint(t,e)||i.isPointInPath(t,e)||s.isPointInPath(t,e)||a.visible&&a.isPointInPath(t,e)||o.visible&&o.isPointInPath(t,e)||r.visible&&r.isPointInPath(t,e)||l.visible&&l.isPointInPath(t,e)||!!n?.containsPoint(t,e)}getNodeAtCoords(t,e){return this.text?.containsPoint(t,e)?"text":this.start.containsPoint(t,e)||this.end.containsPoint(t,e)?"handle":"line"}getDateRangeBars(t,e){const{step:i}=e.xAxis.scale,n=t.x1<=t.x2?1:-1;return i?Math.round(Wt.width(t)/i)*n:0}getDateRangeValue(t){const e=Jn(t.start.x),i=Jn(t.end.x);if(!aa(e)||!aa(i))throw new Error("Can not create a date range measurement of non-date x-axis.");return i.getTime()-e.getTime()}getPriceRangePercentage(t){if(t.start.y==null||t.end.y==null)throw new Error("Can not create a price range measurement of a non-numeric y-axis");const e=Jn(t.end.y),i=Jn(t.start.y);if(!Je(e)||!Je(i))throw new Error("Can not create a price range measurement of a non-numeric y-axis");return(e-i)/i}getPriceRangeValue(t){if(t.start.y==null||t.end.y==null)throw new Error("Can not create a price range measurement of a non-numeric y-axis");const e=Jn(t.end.y),i=Jn(t.start.y);if(!Je(e)||!Je(i))throw new Error("Can not create a price range measurement of a non-numeric y-axis");return e-i}getVolume(t){return t.getVolume(t.start.x,t.end.x)}},oS=class extends ho{constructor(){super(...arguments),this.type="quick-measurer"}static is(t){return ns.isCheck(t,"quick-measurer")}createStatisticsScene(){return new not}getDirectionStyles(t){return this.verticalDirection==="down"?t.down:t.up}getLineStyles(t){const e=this.getDirectionStyles(t);return{...super.getLineStyles(t),stroke:e.stroke,strokeWidth:e.strokeWidth,strokeOpacity:e.strokeOpacity}}getBackgroundStyles(t){const e=this.getDirectionStyles(t);return{fill:e.fill,fillOpacity:e.fillOpacity}}getHandleStyles(t){const e=this.getDirectionStyles(t);return{fill:e.handle.fill,stroke:e.handle.stroke??e.stroke,strokeOpacity:e.handle.strokeOpacity??e.strokeOpacity,strokeWidth:e.handle.strokeWidth??e.strokeWidth}}},km=class extends Rt{constructor(t){const e=({point:o})=>{const r=this.createDatum();r.set({start:o,end:o}),t.create(r)},i=({point:o})=>{const{datum:r,node:l}=this;r?.set({end:o}),l?.toggleActive(!0),l?.toggleHandles({end:!1}),t.update()},n=()=>{this.node?.toggleHandles({end:!0})},s=()=>t.delete(),a=()=>{t.showAnnotationOptions(),t.recordAction(`Create ${this.node?.type} annotation`)};super("start",{start:{reset:Rt.parent,click:{target:"end",action:e},drag:{target:"end",action:e}},end:{hover:i,drag:i,click:{target:Rt.parent,action:n},dragEnd:{target:Rt.parent,action:n},reset:{target:Rt.parent,action:s},cancel:{target:Rt.parent,action:s},onExit:a}}),this.debug=Gt.create(!0,"annotations")}};M([Fe()],km.prototype,"datum");M([Fe()],km.prototype,"node");var sot=class extends km{createDatum(){return new Yo}},aot=class extends km{createDatum(){return new $o}},oot=class extends km{createDatum(){return new gc}},rot=class extends km{createDatum(){return new ro}},h_={type:"date-range",datum:Yo,scene:ho,isDatum:Yo.is,translate:(t,e,i,n)=>{Yo.is(e)&&ho.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Yo.is(e)&&Yo.is(i)&&ho.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Yo.is(e)&&ho.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new sot({...t,create:e("date-range")}),dragState:t=>new yn(t)},u_={type:"price-range",datum:$o,scene:ho,isDatum:$o.is,translate:(t,e,i,n)=>{$o.is(e)&&ho.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if($o.is(e)&&$o.is(i)&&ho.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{$o.is(e)&&ho.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new aot({...t,create:e("date-range")}),dragState:t=>new yn(t)},d_={type:"date-price-range",datum:gc,scene:ho,isDatum:gc.is,translate:(t,e,i,n)=>{gc.is(e)&&ho.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(gc.is(e)&&gc.is(i)&&ho.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{gc.is(e)&&ho.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new oot({...t,create:e("date-range")}),dragState:t=>new yn(t)},p_={type:"quick-date-price-range",datum:ro,scene:oS,isDatum:ro.is,translate:(t,e,i,n)=>{ro.is(e)&&oS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(ro.is(e)&&ro.is(i)&&oS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{ro.is(e)&&oS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new rot({...t,create:e("quick-date-price-range")}),dragState:t=>new yn(t)},rS=class extends IO{constructor(){super(),this.type="note",this.shape=new j.Rect,this.iconBackground=new j.TranslatableSvgPath("M22 1.83333C22 0.820811 21.1792 0 20.1667 0H1.83333C0.820811 0 0 0.82081 0 1.83333V13.9868C0 14.9994 0.820811 15.8202 1.83333 15.8202L5.88971 15.8202C6.44575 15.8202 6.97175 16.0725 7.31971 16.5062L9.57006 19.3112C10.304 20.2259 11.6962 20.2259 12.4301 19.3112L14.6804 16.5062C15.0284 16.0725 15.5544 15.8202 16.1104 15.8202L20.1667 15.8202C21.1792 15.8202 22 14.9994 22 13.9868V1.83333Z"),this.iconLines=new j.TranslatableSvgPath("M17.1114 5.75C17.1114 6.16421 16.7756 6.5 16.3614 6.5H5.63916C5.22495 6.5 4.88916 6.16421 4.88916 5.75V5.75C4.88916 5.33579 5.22495 5 5.63916 5H16.3614C16.7756 5 17.1114 5.33579 17.1114 5.75V5.75ZM17.1114 9.25C17.1114 9.66421 16.7756 10 16.3614 10H5.63916C5.22495 10 4.88916 9.66421 4.88916 9.25V9.25C4.88916 8.83579 5.22495 8.5 5.63916 8.5H16.3614C16.7756 8.5 17.1114 8.83579 17.1114 9.25V9.25Z"),this.active=!1,this.shape.visible=!1,this.label.visible=!1,this.iconBackground.fillShadow=new j.DropShadow,this.append([this.shape,this.label,this.iconBackground,this.iconLines,this.handle])}static is(t){return ns.isCheck(t,"note")}update(t,e){this.updateIcon(t,e),super.update(t,e)}getTextBBox(t,e,i){const n=super.getTextBBox(t,e,i);n.x-=t.width/2,n.x=Nt(0,n.x,i.seriesRect.width-t.width);const s=t.getPadding().top,a=n.y-fK-s*2,o=n.y+Yi.HANDLE_SIZE+s*2;return a-n.height-mK<0?(n.y=o,t.position="top"):(n.y=a+s,t.position="bottom"),n}updateLabel(t,e,i){const n=t.visible===!1?!1:this.label.visible;super.updateLabel(t,e,i),i.isRtl&&(this.label.x+=t.width-e.width),this.label.visible=n,this.label.text=kc(t.text,{maxWidth:200,font:t,textWrap:"always",avoidOrphans:!1})}updateShape(t,e){const{shape:i}=this;i.fill=t.background.fill,i.fillOpacity=t.background.fillOpacity??1,i.stroke=t.background.stroke,i.strokeOpacity=t.background.strokeOpacity??1,i.strokeWidth=t.background.strokeWidth??1,i.cornerRadius=4;const n=t.getPadding().top,s=t.position==="top";i.x=e.x-n,i.width=t.width+n*2,i.height=e.height+n*2,i.y=e.y+(s?0:-e.height)-n}updateIcon(t,e){const{active:i,iconBackground:n,iconLines:s}=this,{x:a,y:o}=Ki(t,e);n.translationX=a-mat/2,n.translationY=o-gK,s.translationX=n.translationX,s.translationY=n.translationY,n.fill=t.fill,n.fillOpacity=t.fillOpacity??1,n.stroke=t.stroke,n.strokeOpacity=t.strokeOpacity??1,n.strokeWidth=t.strokeWidth??1,s.fill=t.stroke,i?n.fillShadow.color=t.fill??"rgba(0, 0, 0, 0.22)":n.fillShadow.color="rgba(0, 0, 0, 0.22)"}updateAnchor(t,e,i){const n=t.getPadding().top,s=t.position==="top",a=s?1:-1;return{x:e.x+i.seriesRect.x+t.width/2,y:e.y+i.seriesRect.y+a*(e.height+n),position:s?"below":"above"}}getLabelCoords(t,e){const i=t.position==="top",n=t.getPadding().top+nr(t.fontSize,vA)/2;return{x:e.x,y:e.y+(i?n/2:0)}}getTextBaseline(t){return t.position==="top"?"middle":t.position}getHandleCoords(t,e,i){return{x:e.x,y:e.y+Yi.HANDLE_SIZE/2+4}}getHandleStyles(t){return{fill:t.handle.fill,stroke:t.handle.stroke??t.fill,strokeOpacity:t.handle.strokeOpacity,strokeWidth:t.handle.strokeWidth}}toggleHovered(t,e,i){super.toggleHovered(t,e,i);const n=t||e&&!i;this.label.visible=n,this.shape.visible=n,this.zIndex=n?pe.CHART_ANNOTATION_FOCUSED:pe.CHART_ANNOTATION}toggleActive(t){super.toggleActive(t),this.label.visible=t,this.shape.visible=t,this.active=t}containsPoint(t,e){return this.shape.visible&&this.shape.containsPoint(t,e)||this.iconBackground.containsPoint(t,e)?!0:super.containsPoint(t,e)}},lot=class extends av{createDatum(){return new Oa}},g_={type:"note",datum:Oa,scene:rS,isDatum:Oa.is,translate:(t,e,i,n)=>{Oa.is(e)&&rS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Oa.is(e)&&Oa.is(i)&&rS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Oa.is(e)&&rS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new lot({...t,create:e("note")}),dragState:t=>new yn(t)},lS=class extends VK{constructor(){super(),this.type="parallel-channel",this.handles={topLeft:new Yi,topMiddle:new tf,topRight:new Yi,bottomLeft:new Yi,bottomMiddle:new tf,bottomRight:new Yi},this.middleLine=new Ea,this.append([this.background,this.topLine,this.middleLine,this.bottomLine,...Object.values(this.handles)])}static is(t){return ns.isCheck(t,"parallel-channel")}dragHandle(t,e,i,n){const{activeHandle:s,handles:a}=this;if(s==null)return;const{offset:o}=a[s].drag(e);a[s].toggleDragging(!0),(s==="topMiddle"||s==="bottomMiddle")&&(o.x=0);let r=[],l=n;switch(s){case"topLeft":case"bottomLeft":r=["topLeft","bottomLeft"];break;case"topMiddle":r=["topLeft","topRight"],o.y-=tf.HANDLE_SIZE/2,l=!1;break;case"topRight":case"bottomRight":r=["topRight","bottomRight"];break;case"bottomMiddle":r=["bottomLeft","bottomRight"],o.y-=tf.HANDLE_SIZE/2,l=!1;break}const c=oa(t,i),u=oa(t.bottom,i);if(!c||!u)return;const d={topLeft:Wt.start(c),topRight:Wt.end(c),bottomLeft:Wt.start(u),bottomRight:Wt.end(u)},g={vectors:{topLeft:d.topRight,bottomLeft:d.bottomRight,topRight:d.topLeft,bottomRight:d.bottomLeft},angle:t.snapToAngle},f=Ec(d,o,i,{overflowContinuous:this.overflowContinuous,translateVectors:r,snap:l?g:void 0});t.start.x=f.topLeft.x,t.start.y=f.topLeft.y,t.end.x=f.topRight.x,t.end.y=f.topRight.y,t.height=f.topLeft.y-f.bottomLeft.y}getTranslatePointsVectors(t,e){const{bottomLeft:i,topLeft:n}=this.handles,s=i.getBBox().y-n.getBBox().y,a=at.add(t,at.from(0,s)),o=at.add(e,at.from(0,s));return{start:t,end:e,bottomStart:a,bottomEnd:o}}containsPoint(t,e){return super.containsPoint(t,e)||this.middleLine.visible&&this.middleLine.strokeWidth>0&&this.middleLine.containsPoint(t,e)}getNodeAtCoords(t,e){return this.middleLine.visible&&this.middleLine.strokeWidth>0&&this.middleLine.containsPoint(t,e)?"line":super.getNodeAtCoords(t,e)}updateLines(t,e,i,n,s,a){const{topLine:o,middleLine:r,bottomLine:l}=this,{lineDashOffset:c,stroke:u,strokeOpacity:d,strokeWidth:g}=t,f=t.getLineDash(),y={lineCap:t.getLineCap(),lineDash:f,lineDashOffset:c,stroke:u,strokeOpacity:d,strokeWidth:g};o.setProperties({...e,...y}),l.setProperties({...i,...y});const x=this.extendLine({x1:s.x1,y1:a.y1+(s.y1-a.y1)/2,x2:s.x2,y2:a.y2+(s.y2-a.y2)/2},t,n);r.setProperties({...x,lineDash:t.middle.lineDash??f,lineDashOffset:t.middle.lineDashOffset??c,stroke:t.middle.stroke??u,strokeOpacity:t.middle.strokeOpacity??d,strokeWidth:t.middle.strokeWidth??g,visible:t.middle.visible??!0})}updateHandles(t,e,i){const{handles:{topLeft:n,topMiddle:s,topRight:a,bottomLeft:o,bottomMiddle:r,bottomRight:l}}=this,c={fill:t.handle.fill,stroke:t.handle.stroke??t.stroke,strokeOpacity:t.handle.strokeOpacity??t.strokeOpacity,strokeWidth:t.handle.strokeWidth??t.strokeWidth};n.update({...c,...Wt.start(e)}),a.update({...c,...Wt.end(e)}),o.update({...c,...Wt.start(i)}),l.update({...c,...Wt.end(i)}),s.update({...c,...at.sub(Wt.center(e),at.from(s.handle.width/2,s.handle.height/2))}),r.update({...c,...at.sub(Wt.center(i),at.from(r.handle.width/2,r.handle.height/2))})}updateText(t,e,i){this.text=this.updateNode(pp,this.text,!!t.text.label),EK(!0,e,i,t.text,t.strokeWidth,this.text,t.text.label)}getBackgroundPoints(t,e,i,n){const s=e.x1>e.x2,a=e.y1>e.y2,o=e.x1!==i.x1&&e.y1!==i.y1,r=e.x2!==i.x2&&e.y2!==i.y2,l=at.from(e);return t.extendEnd&&r&&l.push(at.from(s?n.x1:n.x2,a?n.y1:n.y2)),l.push(...at.from(i).reverse()),t.extendStart&&o&&l.push(at.from(s?n.x2:n.x1,a?n.y2:n.y1)),l}},TA=class extends Rt{constructor(t){const e=({point:l})=>{const c=new Zo;c.set({start:l,end:l,height:0}),t.create(c)},i=()=>{const{node:l}=this;l?.toggleActive(!0),l?.toggleHandles({topLeft:!0,topMiddle:!1,topRight:!1,bottomLeft:!1,bottomMiddle:!1,bottomRight:!1})},n=({offset:l,context:c})=>{const{datum:u,snapping:d}=this;u&&(u.set({end:ox(l,c,d,u.start,u.snapToAngle)}),t.update())},s=()=>{this.node?.toggleHandles({topRight:!0}),t.update()},a=({point:l})=>{const{datum:c,node:u}=this,d=Jn(c?.end.y),g=Jn(c?.start.y),{y:f}=l;if(c==null||!Je(g)||!Je(d)||!Je(f))return;const y=d-(f??0),x=g-y;u?.toggleHandles({bottomLeft:!0,bottomRight:!0}),!(!t.validatePoint({x:c.start.x,y:x},{overflowContinuous:!0})||!t.validatePoint({x:c.end.x,y:l.y},{overflowContinuous:!0}))&&(c.set({height:y}),t.update())},o=({point:l})=>{const{datum:c,node:u}=this,d=Jn(c?.end.y),g=Jn(c?.start.y),{y:f}=l;if(c==null||!Je(g)||!Je(d)||!Je(f))return;const y=d-(f??0),x=g-y;u?.toggleHandles(!0),!(!t.validatePoint({x:c.start.x,y:x},{overflowContinuous:!0})||!t.validatePoint({x:c.end.x,y:l.y},{overflowContinuous:!0}))&&(c.set({height:y}),t.recordAction("Create parallel-channel annotation"),t.showAnnotationOptions(),t.update())},r=()=>t.delete();super("start",{start:{click:{target:"waiting-first-render",action:e},drag:{target:"waiting-first-render",action:e},reset:Rt.parent},"waiting-first-render":{render:{target:"end",action:i}},end:{hover:n,drag:n,click:{target:"height",action:s},dragEnd:{target:"height",action:s},reset:{target:Rt.parent,action:r},cancel:{target:Rt.parent,action:r}},height:{hover:a,click:{target:Rt.parent,action:o},drag:{target:Rt.parent,action:o},reset:{target:Rt.parent,action:r},cancel:{target:Rt.parent,action:r}}}),this.debug=Gt.create(!0,"annotations"),this.snapping=!1}};M([Fe()],TA.prototype,"datum");M([Fe()],TA.prototype,"node");M([Fe()],TA.prototype,"snapping");var f_={type:"parallel-channel",datum:Zo,scene:lS,isDatum:Zo.is,translate:(t,e,i,n)=>{Zo.is(e)&&lS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(Zo.is(e)&&Zo.is(i)&&lS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{Zo.is(e)&&lS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new TA({...t,create:e("parallel-channel")}),dragState:t=>new yn(t)},cS=class extends IO{constructor(){super(),this.type="text",this.append([this.label,this.handle])}static is(t){return ns.isCheck(t,"text")}getHandleCoords(t,e){const i=Yi.HANDLE_SIZE/2;return{x:e.x+i,y:e.y+2+i}}},cot=class extends av{createDatum(){return new bc}},m_={type:"text",datum:bc,scene:cS,isDatum:bc.is,translate:(t,e,i,n)=>{bc.is(e)&&cS.is(t)&&t.translate(e,i,n)},copy:(t,e,i,n)=>{if(bc.is(e)&&bc.is(i)&&cS.is(t))return t.copy(e,i,n)},update:(t,e,i)=>{bc.is(e)&&cS.is(t)&&t.update(e,i)},createState:(t,{createDatum:e})=>new cot({...t,create:e("text")}),dragState:t=>new yn(t)},ao={[n_.type]:n_,[XV.type]:XV,[ZV.type]:ZV,[f_.type]:f_,[qV.type]:qV,[i_.type]:i_,[e_.type]:e_,[YV.type]:YV,[$V.type]:$V,[g_.type]:g_,[m_.type]:m_,[s_.type]:s_,[KV.type]:KV,[WV.type]:WV,[h_.type]:h_,[u_.type]:u_,[d_.type]:d_,[p_.type]:p_};function Yd(t){for(const{isDatum:e}of Object.values(ao))if(e(t))return t}var LA=class extends Aj{constructor(t){super(new hot(e=>{this.snapping=e}),new uot(()=>{this.node=this.active==null?void 0:t.node(this.active)}),new Zu(t,e=>{this.active=e,this.datum=this.active==null?void 0:t.datum(this.active),this.node=this.active==null?void 0:t.node(this.active)})),this.snapping=!1}getActive(){return this.active}isActive(t){return t===this.active}};M([Fe()],LA.prototype,"snapping");M([Fe()],LA.prototype,"datum");M([Fe()],LA.prototype,"node");var hot=class extends Rt{constructor(t){super("idle",{idle:{hover:({shiftKey:e})=>t(e),keyDown:({shiftKey:e})=>t(e),keyUp:({shiftKey:e})=>t(e),click:({shiftKey:e})=>t(e),drag:({shiftKey:e})=>t(e)},dragging:{},translating:{},"text-input":{}})}},uot=class extends Rt{constructor(t){super("idle",{idle:{onEnter:t,render:t},dragging:{onEnter:t,render:t},translating:{onEnter:t,render:t},"text-input":{render:t}})}},Zu=class extends Rt{constructor(t,e){const i=I=>w=>{t.create(I,w),this.active=t.selectLast()},n=()=>{this.active!=null&&t.delete(this.active),this.active=void 0,t.select()},s={createDatum:i},a={...t,delete:n,showTextInput:()=>{this.active!=null&&t.showTextInput(this.active)},deselect:()=>{const I=this.active;this.active=void 0,this.hovered=void 0,t.select(this.active,I)},showAnnotationOptions:()=>{this.active!=null&&t.showAnnotationOptions(this.active)}},o=Object.fromEntries(Object.entries(ao).map(([I,w])=>[I,w.createState(a,s)])),r=Object.fromEntries(Object.entries(ao).map(([I,w])=>[I,w.dragState(t,s)])),l=({colorPickerType:I,colorOpacity:w,color:N,opacity:O,isMultiColor:L})=>{this.datum&&(I==="text-color"&&t.updateTextInputColor(N),AA(this.datum,I,w,N,O,L),t.update())},c=I=>{const{datum:w,node:N}=this;!w||!N||(xl(w)?(w.fontSize=I,t.updateTextInputFontSize(I)):uf(w)&&(w.text.fontSize=I),t.update())},u=I=>{const{datum:w,node:N}=this;!w||!N||!Gh(w)||(xK(w,I),t.update())},d=I=>{const{node:w}=this;!w||!("setTextInputBBox"in w)||(w.setTextInputBBox(I),t.update())},g=({textInputValue:I,bbox:w})=>{const{datum:N}=this;if(w!=null&&I!=null&&I.length>0){if(!xl(N))return;const O=SA(N,I,w.width);N.set({text:O}),t.update(),t.recordAction(`Change ${N.type} annotation text`)}else t.delete(this.active),t.recordAction(`Delete ${N?.type} annotation`)},f=()=>{t.updateTextInputBBox(void 0)},y=()=>this.active!=null,x=()=>this.copied!=null,S=()=>{const{active:I,datum:w}=this;return I==null||!w?!1:uf(w)&&w.isWriteable()},D=()=>this.active!=null&&!Xh(this.datum),A=()=>this.hovered!=null;super("idle",{idle:{onEnter:()=>{t.select(this.active,this.active),this.hoverCoords&&(this.hovered=t.hoverAtCoords(this.hoverCoords,this.active,this.hovered))},hover:({offset:I})=>{this.hovered=t.hoverAtCoords(I,this.active,this.hovered),this.hoverCoords=I},translate:{guard:y,target:"translating",action:({translation:I})=>{t.startInteracting(),t.translate(this.active,I),t.update()}},copy:{guard:D,action:()=>{this.copied=t.copy(this.active)}},cut:{guard:D,action:()=>{this.copied=t.copy(this.active),n()}},paste:{guard:x,action:()=>{t.paste(this.copied)}},selectLast:()=>{const I=this.active;this.active=t.selectLast(),t.select(this.active,I)},click:[{guard:()=>{const{active:I,hovered:w,datum:N}=this;return I==null||w!==I||!N?!1:xl(N)&&N.isWriteable()},target:"text-input"},{action:()=>{const I=this.active;this.active=this.hovered,t.select(this.active,I)}}],dblclick:{guard:S,action:({offset:I})=>{const w=t.getNodeAtCoords(I,this.active)==="text"?"text":"line";t.showAnnotationSettings(this.active,void 0,w)}},dragStart:[{guard:A,target:"dragging",action:()=>{const I=this.active;this.active=this.hovered,t.select(this.active,I),t.startInteracting()}},{action:()=>{const I=this.active;this.active=this.hovered,t.select(this.active,I)}}],color:{guard:y,action:l},fontSize:{guard:y,action:c},lineProps:{guard:y,action:I=>{const w=Yd(this.datum);w?.set(I),t.update(),t.recordAction(`Change ${w?.type} ${Object.entries(I).map(([N,O])=>`${N} to ${O}`).join(", ")}`)}},lineStyle:{guard:y,action:u},lineText:{guard:y,action:I=>{const w=Yd(this.datum);uf(w)&&(Nc(w)&&I.position==="center"&&(I.position="inside"),w.text.set(I),t.update())}},updateTextInputBBox:{guard:y,action:d},toolbarPressSettings:{guard:S,action:I=>{t.showAnnotationSettings(this.active,I)}},reset:()=>{this.active!=null&&this.node?.toggleActive(!1),this.hovered=void 0,this.active=void 0,t.select(),t.resetToIdle()},delete:()=>{this.active!=null&&(t.delete(this.active),!Xh(this.datum)&&t.recordAction(`Delete ${this.datum?.type} annotation`))},deleteAll:()=>{t.deleteAll()},...o},dragging:{onEnter:(I,w)=>{if(this.active==null)return;const N=t.getAnnotationType(this.active);N&&(this.transitionRoot(N),this.transitionRoot("dragStart",w))},...r},translating:{onEnter:()=>{},translate:{guard:y,target:"translating",action:({translation:I})=>{t.startInteracting(),t.translate(this.active,I),t.update()}},translateEnd:{guard:y,target:"idle"},onExit:()=>{t.stopInteracting(),t.update(),t.recordAction("Translate annotation")}},"text-input":{onEnter:()=>{if(this.active==null)return;const I=Yd(this.datum);!I||!("getTextInputCoords"in I)||(t.startInteracting(),t.showTextInput(this.active),I.visible=!1,t.update())},updateTextInputBBox:{guard:y,action:d},resize:{target:"idle",action:g},click:{target:"idle",action:g},drag:{target:"idle",action:g},textInput:[{guard:MO,target:"idle",action:f},{guard:DO,target:"idle",action:g}],color:{guard:y,action:l},fontSize:{guard:y,action:c},cancel:{target:"idle",action:f},onExit:()=>{t.stopInteracting(),t.hideTextInput();const I=this.active;if(this.active=this.hovered=void 0,t.select(this.active,I),I==null)return;const w=t.datum(I),N=t.node(I);!w||!N||("setTextInputBBox"in N&&N.setTextInputBBox(),w.visible=!0)}}}),this.setActive=e,this.debug=Gt.create(!0,"annotations"),this.snapping=!1}};M([Pe({changeValue(t){this.setActive(t)}}),Fe()],Zu.prototype,"active");M([Fe()],Zu.prototype,"hovered");M([Fe()],Zu.prototype,"hoverCoords");M([Fe()],Zu.prototype,"copied");M([Fe()],Zu.prototype,"snapping");M([Fe()],Zu.prototype,"datum");M([Fe()],Zu.prototype,"node");var{LayoutElement:dot,Menu:pot}=j,jK=class extends Il{};M([b],jK.prototype,"value");var OA=class extends xt{constructor(t){super(),this.ctx=t,this.enabled=!0,this.padding=20,this.buttons=new ss(jK),this.events=new cr,this.annotationMenu=new pot(this.ctx,"annotations"),this.cleanup=new qe,this.menuMargin=6,this.toolbar=t.sharedToolbar.getSharedToolbar("annotations");const e=this.onKeyDown.bind(this);this.toolbar.addListener("keydown",e),this.cleanup.register(this.toolbar.addToolbarListener("button-pressed",this.onToolbarButtonPress.bind(this)),t.layoutManager.registerElement(dot.ToolbarLeft,this.onLayoutStart.bind(this)),()=>{this.toolbar.removeListener("keydown",e),this.toolbar.destroy()})}destroy(){this.cleanup.flush()}toggleClearButtonEnabled(t){const e=this.buttons.findIndex(i=>i.value==="clear");this.toolbar.toggleButtonEnabledByIndex(e,t)}resetButtonIcons(){for(const[t,e]of this.buttons.entries())switch(e.value){case"line-menu":this.updateButtonByIndex(t,{icon:"trend-line-drawing",value:"line-menu"});break;case"fibonacci-menu":this.updateButtonByIndex(t,{icon:"fibonacci-retracement-drawing",value:"fibonacci-menu"});break;case"text-menu":this.updateButtonByIndex(t,{icon:"text-annotation",value:"text-menu"});break;case"shape-menu":this.updateButtonByIndex(t,{icon:"arrow-drawing",value:"shape-menu"});break;case"measurer-menu":this.updateButtonByIndex(t,{icon:"measurer-drawing",value:"measurer-menu"});break}}hideOverlays(){this.annotationMenu.hide()}clearActiveButton(){this.toolbar.clearActiveButton()}onLayoutStart(t){this.enabled&&(this.toolbar.updateButtons(this.buttons),this.toolbar.layout(t.layoutBox,this.padding))}refreshButtonsEnabled(t){for(const[e,i]of this.buttons.entries())i&&this.toolbar.toggleButtonEnabledByIndex(e,t)}onToolbarButtonPress({event:t,button:e,buttonBounds:i,buttonWidget:n}){const s=this.ctx.axisManager.getAxisContext(z.Y)[0].scale;switch(e.value){case"clear":this.events.emit("pressed-clear",null);break;case"line-menu":this.onToolbarButtonPressShowMenu(t,i,n,e.value,"toolbarAnnotationsLineAnnotations",Cat.filter(a=>a.visible?a.visible(s):!0));break;case"fibonacci-menu":this.onToolbarButtonPressShowMenu(t,i,n,e.value,"toolbarAnnotationsFibonacciAnnotations",wat);break;case"text-menu":this.onToolbarButtonPressShowMenu(t,i,n,e.value,"toolbarAnnotationsTextAnnotations",Tat);break;case"shape-menu":this.onToolbarButtonPressShowMenu(t,i,n,e.value,"toolbarAnnotationsShapeAnnotations",Lat);break;case"measurer-menu":this.onToolbarButtonPressShowMenu(t,i,n,e.value,"toolbarAnnotationsMeasurerAnnotations",Oat);break}}onToolbarButtonPressShowMenu(t,e,i,n,s,a){this.events.emit("pressed-show-menu",null);const o=this.buttons.findIndex(l=>l.value===n);this.toolbar.toggleActiveButtonByIndex(o);const r=this.ctx.domManager.isRtl?e.x-this.menuMargin:e.x+e.width+this.menuMargin;this.annotationMenu.setAnchor({x:r,y:e.y}),this.annotationMenu.show(i,{items:a,ariaLabel:this.ctx.localeManager.t(s),class:"ag-charts-annotations__toolbar-menu",sourceEvent:t.sourceEvent,onPress:this.onButtonPressMenuCreateAnnotation.bind(this,n)})}onButtonPressMenuCreateAnnotation(t,e){const i=this.buttons.findIndex(n=>n.value===t);this.updateButtonByIndex(i,{icon:e.icon}),this.events.emit("pressed-create-annotation",{annotation:e.value}),this.annotationMenu.hide()}onKeyDown({sourceEvent:t}){t.key==="Escape"&&this.events.emit("cancel-create-annotation",null)}updateButtonByIndex(t,e){const i=this.buttons.at(t);i&&(i.set({...i.toJson(),...e,value:e.value??i.value}),this.toolbar.updateButtonByIndex(t,{...i.toJson()}))}};M([b,Pe({changeValue(t){this.toolbar?.setHidden(!t)}})],OA.prototype,"enabled");M([b],OA.prototype,"padding");M([b],OA.prototype,"buttons");var{InteractionState:Vy}=j,rb="ag-charts-annotations__axis-button",GK=class extends Ln{constructor(t,e,i,n){super(),this.ctx=t,this.axisCtx=e,this.onButtonClick=i,this.seriesRect=n,this.enabled=!0,this.snap=!1,this.padding=0,this.button=this.setup(),this.toggleVisibility(!1),this.updateButtonElement(),this.snap=!!e.scale.bandwidth,t.domManager.addEventListener("focusin",({target:s})=>{const a=s instanceof HTMLElement?s:void 0;!(a&&t.domManager.contains(a,"series-area"))&&a!==this.button.getElement()&&this.hide()}),this.cleanup.register(t.widgets.seriesWidget.addListener("drag-move",s=>this.onMouseDrag(s)),t.widgets.seriesWidget.addListener("mousemove",s=>this.onMouseMove(s)),t.widgets.seriesWidget.addListener("mouseleave",()=>this.onMouseLeave()),t.widgets.seriesDragInterpreter?.events.on("click",s=>this.onClick(s)),t.eventsHub.on("series:focus-change",()=>this.onKeyPress()),t.eventsHub.on("zoom:pan-start",()=>this.hide()),t.eventsHub.on("zoom:change-complete",()=>this.hide()),()=>this.destroyElements(),()=>this.button.destroy())}update(t,e){this.seriesRect=t,this.padding=e}setup(){const t=new RM.ButtonWidget;return t.addClass(rb),t.setTabIndex(-1),t.setAriaLabel(this.ctx.localeManager.t("ariaLabelAddHorizontalLine")),this.ctx.widgets.seriesWidget.getElement().appendChild(t.getElement()),t}destroyElements(){this.ctx.domManager.removeChild("canvas-overlay",rb)}onMouseMove(t){this.ctx.interactionManager.isState(Vy.Hoverable)&&this.show(t)}onMouseDrag(t){this.ctx.interactionManager.isState(Vy.AnnotationsMoveable)&&this.show(t)}onMouseLeave(){this.ctx.interactionManager.isState(Vy.Hoverable)&&this.hide()}onClick(t){this.ctx.interactionManager.isState(Vy.Clickable)&&t.device==="touch"&&this.show(t)}show(t){const{sourceEvent:e,currentX:i,currentY:n}=t;if(!(this.enabled&&this.ctx.widgets.seriesWidget.getElement().contains(e.target))){this.hide();return}this.toggleVisibility(!0);const s=this.getButtonCoordinates({x:i,y:n});this.coords={x:s.x+this.button.clientWidth/2,y:s.y+this.button.clientHeight/2},this.updatePosition(s)}hide(){this.toggleVisibility(!1)}onKeyPress(){this.snap&&this.ctx.interactionManager.isState(Vy.Default)||this.hide()}getButtonCoordinates({x:t,y:e}){const{axisCtx:{direction:i,position:n},seriesRect:s,snap:a,axisCtx:o,padding:r}=this,{clientWidth:l,clientHeight:c}=this.button,[u,d]=[0,s.height],[g,f]=[0,s.width];if(a&&(t=vc(BM(t-s.x,o),o)+s.x,e=vc(BM(e-s.y,o),o)+s.y),i===z.X){const x=c-Math.max(0,r-5);t=t-l/2,e=n==="top"?u-c+x:d-x}else{const x=l-Math.max(0,r-9);t=n==="left"?g-l+x:f-x,e=e-c/2}return{x:t,y:e}}toggleVisibility(t){const{button:e}=this;if(e==null)return;const i=this.enabled&&t;this.toggleClass("-hidden",!i)}toggleClass(t,e){this.button.toggleClass(`${rb}-${t}`,e)}updatePosition({x:t,y:e}){this.button.getElement().style.transform=`translate(${Math.round(t)}px, ${Math.round(e)}px)`}updateButtonElement(){const{button:t}=this;t.addListener("click",()=>this.onButtonClick(this.coords)),t.addListener("touchend",()=>this.onButtonClick(this.coords)),t.addListener("drag-start",()=>{}),t.setInnerHTML(``)}};M([b],GK.prototype,"enabled");var{DraggablePopover:got,NativeWidget:e1}=j,UK=class i1 extends got{constructor(e,i){super(e,i),this.dragHandleDraggingClass="ag-charts-dialog__drag-handle--dragging",this.colorPicker=new vK(this.ctx,{detached:!0}),this.cleanup.register(e.eventsHub.on("layout:complete",this.onLayoutComplete.bind(this)))}showWithChildren(e,i){const n=super.showWithChildren(e,i);return n.classList.add("ag-charts-dialog"),n.setAttribute("role","dialog"),n.addEventListener("mousedown",s=>{s.target.classList?.contains("ag-charts-dialog__color-picker-button")||this.colorPicker.hide()}),n.addEventListener("keydown",this.onKeyDown.bind(this)),this.ctx.agDocument.requestAnimationFrame(()=>this.reposition()),this.colorPicker.attachTo(this),n}updatePosition(e){super.updatePosition(e);const{anchor:i,fallbackAnchor:n}=this.getColorPickerAnchors()??{};i&&this.colorPicker.setAnchor(i,n)}createTabs(e,i,n){const s=$t("div","ag-charts-dialog__tabs"),a=af(n,()=>lu()),o=af(n,()=>lu());for(const[f,y]of Xe(n))Nr(y.panel,{id:o[f],role:"tabpanel","aria-labelledby":a[f]});const r=f=>{for(const[y,x]of Xe(n))x.panel.classList.toggle("ag-charts-dialog__tab-panel--active",y===f),u[y].classList.toggle("ag-charts-dialog__tab-button--active",y===f),ye(u[y],"aria-selected",y===f),y===f&&x.onShow?.()},l=new e1($t("div","ag-charts-dialog__header"));l.addListener("drag-start",f=>{const{sourceEvent:y}=f;y.target instanceof Element&&y.target.classList.contains("ag-charts-dialog__header")&&this.onDragStart(f)}),l.addListener("drag-move",f=>this.onDragMove(f)),l.addListener("drag-end",()=>this.onDragEnd());const c=new mot;this.setDragHandle(c);const u=af(n,(f,y)=>Xy({label:this.ctx.localeManager.t(f.label),onPress:()=>r(y)},{id:a[y],class:"ag-charts-dialog__tab-button",role:"tab","aria-controls":o[y]})),d=$t("div","ag-charts-dialog__tab-list");Nr(d,{role:"tablist","aria-label":this.ctx.localeManager.t(e)}),d.append(...Object.values(u));const g=this.createHeaderCloseButton();return l.getElement().append(c.getElement(),d,g),s.append(l.getElement(),...Object.values(n).map(f=>f.panel)),r(i),cN({orientation:"horizontal",buttons:Object.values(u)}),{tabs:s,initialFocus:u[i]}}createTabPanel(){return $t("div","ag-charts-dialog__tab-panel")}createInputGroupLine(){return $t("div","ag-charts-dialog__input-group-line")}createRadioGroup({label:e,options:i,value:n,onChange:s}){const a=this.createInputGroup(e);Nr(a,{role:"radiogroup",tabindex:-1,"aria-label":this.ctx.localeManager.t(e)});const o="ag-charts-dialog__button--active",r=[];for(const l of i){const{icon:c,altText:u}=l,d=this.ctx.localeManager.t(u),g=Xy({icon:c,altText:d,onPress:()=>{for(const f of Array.from(a.children))f.classList.remove(o),f.ariaChecked="false";g.classList.add(o),g.ariaChecked="true",s(l.value)}},{"aria-checked":l.value===n,class:"ag-charts-dialog__button",role:"radio",title:d});l.value===n&&g.classList.add(o),a.appendChild(g),r.push(g)}return cN({orientation:"horizontal",buttons:r}),a}createSelect({altText:e,label:i,options:n,value:s,onChange:a}){const o=this.createInputGroup(i),r=this.ctx.localeManager.t(e),l=Jj({value:s,options:n,onChange:a},{class:"ag-charts-dialog__select","aria-label":r,title:r});return o.append(l),o}createTextArea({placeholder:e,value:i,onChange:n}){const s=e?this.ctx.localeManager.t(e):void 0;return tG({value:i,onChange:n},{placeholder:s})}createCheckbox({label:e,checked:i,onChange:n}){const s=lu(),a=this.createInputGroup(e,{for:s}),o=Qj({checked:i,onChange:n},{class:"ag-charts-dialog__checkbox",role:"switch",id:s});return a.append(o),a}createColorPicker({color:e,opacity:i,label:n,altText:s,onChange:a,onChangeHide:o,isMultiColor:r,hasMultiColorOption:l}){const c=this.createInputGroup(n),u=this.ctx.localeManager.t(s),d=Xy({label:u,onPress:g=>{const{anchor:f,fallbackAnchor:y}=this.getColorPickerAnchors(d)??{};this.colorPicker.show({anchor:f,fallbackAnchor:y,color:e,opacity:i,isMultiColor:r,hasMultiColorOption:l,sourceEvent:g,onChange:(x,S,D,A)=>{d.style.setProperty("--color",x),d.classList.toggle("ag-charts-dialog__color-picker-button--multi-color",A),a(x,S,D,A)},onChangeHide:o})}},{"aria-label":u,tabindex:0,class:"ag-charts-dialog__color-picker-button",title:u});if(r)d.classList.toggle("ag-charts-dialog__color-picker-button--multi-color");else if(e){const g=se.fromString(e),f=new se(g.r,g.g,g.b,i);d.style.setProperty("--color",f.toHexString())}return c.append(d),this.hideFns.push(()=>{this.colorPicker.hide()}),c}createHeaderCloseButton(){return Xy({icon:"close",altText:this.ctx.localeManager.t("iconAltTextClose"),onPress:()=>this.hide()},{class:"ag-charts-dialog__close-button"})}createInputGroup(e,i){const n=$t("div","ag-charts-dialog__input-group"),s=$t("label","ag-charts-dialog__input-group-label");return s.innerText=this.ctx.localeManager.t(e),ye(s,"for",i?.for),n.appendChild(s),n}onLayoutComplete(e){this.seriesRect=e.series.paddedRect,this.reposition()}onKeyDown(e){e.altKey||e.ctrlKey||e.metaKey||e.isComposing||e.key!=="Escape"||this.hide()}reposition(){const{seriesRect:e,ctx:i}=this,n=this.getPopoverElement();if(!e||!n)return;const s=i.domManager.getBoundingClientRect(),a=at.from(0,e.y),o=at.from(s.width,e.height),r=at.from(n),l=at.from(.5,1);let c;if(e.width>1e3){const u=at.sub(at.add(a,at.multiply(o,l)),at.multiply(r,l));c=at.sub(u,at.from(0,i1.offset))}else{const u=at.sub(at.add(a,o),r);c=at.sub(u,i1.offset)}this.updatePosition(c)}getColorPickerAnchors(e){if(e&&(this.colorPickerAnchorElement=e),!this.colorPickerAnchorElement)return;const i=this.colorPickerAnchorElement.getBoundingClientRect(),n=this.ctx.domManager.getBoundingClientRect(),s=at.sub(at.from(i.x,i.y),at.from(n.left,n.top)),a=at.add(s,at.from(0,i.height+5)),o=at.sub(s,at.from(0,5));return{anchor:a,fallbackAnchor:o}}};UK.offset=60;var fot=UK,mot=class extends e1{constructor(){super($t("div","ag-charts-dialog__drag-handle"));const t=new e1($t("span",mu("drag-handle")));t.setAriaHidden(!0),this.addChild(t)}},yot=class extends fot{constructor(t){super(t,"settings"),this.events=new cr,this.hideFns.push(()=>this.events.emit("hidden",null))}show(t,e){const i=this.createLinearLineTab(t,e),n=this.createLinearTextTab(t,e);let s="dialogHeaderLine";Nc(t)?s="dialogHeaderChannel":bK(t)?s="dialogHeaderFibonacciRange":t.type==="date-range"?s="dialogHeaderDateRange":t.type==="price-range"?s="dialogHeaderPriceRange":t.type==="date-price-range"&&(s="dialogHeaderDatePriceRange");const{tabs:a,initialFocus:o}=this.createTabs("ariaLabelSettingsTabBar",e.initialSelectedTab,{line:{label:s,panel:i},text:{label:"dialogHeaderText",panel:n.panel,onShow:n.onShow}});e.initialFocus=o,this.showWithChildren([a],e).classList.add("ag-charts-dialog--annotation-settings")}createLinearLineTab(t,e){const i=this.createTabPanel(),n=this.createInputGroupLine(),s=this.createInputGroupLine(),a="isMultiColor"in t,o=this.createColorPickerInput("line-color",t.getDefaultColor("line-color"),t.getDefaultOpacity("line-color"),a?t.isMultiColor:!1,a,e.onChangeLineColor,e.onChangeHideLineColor),r=this.createStrokeWidthSelect(t.strokeWidth??2,e.onChangeLineStyleWidth),l=this.createLineStyleRadioGroup(t.lineStyle??"solid",e.onChangeLineStyleType);if(n.append(o),"background"in t){const c=this.createColorPickerInput("fill-color",t.getDefaultColor("fill-color"),t.getDefaultOpacity("fill-color"),!1,!1,e.onChangeFillColor,e.onChangeHideFillColor);n.append(c),s.append(r)}else"showFill"in t?(n.append(this.createCheckbox({label:"dialogInputShowFill",checked:t.showFill??!0,onChange:c=>e.onChangeLine({showFill:c})})),s.append(r)):n.append(r);return s.append(l),i.append(n,s),"bands"in t&&i.append(this.createFibonacciRatioSelect(t.bands??10,c=>e.onChangeLine({bands:c}))),"extendStart"in t&&"extendEnd"in t&&i.append(this.createCheckbox({label:Nc(t)?"dialogInputExtendChannelStart":"dialogInputExtendLineStart",checked:t.extendStart??!1,onChange:c=>e.onChangeLine({extendStart:c})}),this.createCheckbox({label:Nc(t)?"dialogInputExtendChannelEnd":"dialogInputExtendLineEnd",checked:t.extendEnd??!1,onChange:c=>e.onChangeLine({extendEnd:c})})),"extendAbove"in t&&"extendBelow"in t&&i.append(this.createCheckbox({label:"dialogInputExtendAbove",checked:t.extendAbove??!1,onChange:c=>e.onChangeLine({extendAbove:c})}),this.createCheckbox({label:"dialogInputExtendBelow",checked:t.extendBelow??!1,onChange:c=>e.onChangeLine({extendBelow:c})})),"extendLeft"in t&&"extendRight"in t&&i.append(this.createCheckbox({label:"dialogInputExtendLeft",checked:t.extendLeft??!1,onChange:c=>e.onChangeLine({extendLeft:c})}),this.createCheckbox({label:"dialogInputExtendRight",checked:t.extendRight??!1,onChange:c=>e.onChangeLine({extendRight:c})})),"reverse"in t&&"showFill"in t&&i.append(this.createCheckbox({label:"dialogInputReverse",checked:t.reverse??!1,onChange:c=>e.onChangeLine({reverse:c})})),i}createLinearTextTab(t,e){const i=this.createTabPanel(),n=this.createTextArea({placeholder:"inputTextareaPlaceholder",value:t.text.label,onChange:u=>e.onChangeText({label:u})}),s=this.createFontSizeSelect(t.text.fontSize,e.onChangeTextFontSize),a=this.createColorPickerInput("text-color",t.text.color,1,!1,!1,e.onChangeTextColor,e.onChangeHideTextColor),o=t.text.position==="inside"?"center":t.text.position,r=this.createPositionRadioGroup(o??"top",u=>e.onChangeText({position:u})),l=this.createAlignmentRadioGroup(t.text.alignment??"center",u=>e.onChangeText({alignment:u})),c=this.createInputGroupLine();return c.append(s,a,r,l),i.append(n,c),{panel:i,onShow:()=>b1(n)}}createColorPickerInput(t,e,i,n,s,a,o){const r=t==="fill-color"?"dialogInputFillColorPicker":"dialogInputColorPicker",l=t==="fill-color"?"dialogInputFillColorPickerAltText":"dialogInputColorPickerAltText";return this.createColorPicker({label:r,altText:l,color:e,opacity:i,isMultiColor:n,hasMultiColorOption:s,onChange:a,onChangeHide:o})}createStrokeWidthSelect(t,e){return this.createSelect({label:"dialogInputStrokeWidth",altText:"dialogInputStrokeWidthAltText",options:SK.map(({label:i,value:n})=>({label:i,value:`${n}`})),value:String(t),onChange:i=>e(Number(i))})}createFibonacciRatioSelect(t,e){return this.createSelect({label:"dialogInputFibonacciBands",altText:"dialogInputFibonacciBandsAltText",options:Nat.map(({label:i,value:n})=>({label:i,value:`${n}`})),value:String(t),onChange:i=>e(Number(i))})}createLineStyleRadioGroup(t,e){return this.createRadioGroup({label:"dialogInputLineStyle",options:[{icon:"line-style-solid",altText:"iconAltTextLineStyleSolid",value:"solid"},{icon:"line-style-dashed",altText:"iconAltTextLineStyleDashed",value:"dashed"},{icon:"line-style-dotted",altText:"iconAltTextLineStyleDotted",value:"dotted"}],value:t,onChange:e})}createFontSizeSelect(t,e){return this.createSelect({label:"dialogInputFontSize",altText:"dialogInputFontSizeAltText",options:MK.map(({label:i,value:n})=>({label:i,value:String(n)})),value:String(t),onChange:i=>e(Number(i))})}createPositionRadioGroup(t,e){return this.createRadioGroup({label:"dialogInputPosition",options:[{icon:"position-top",altText:"iconAltTextPositionTop",value:"top"},{icon:"position-center",altText:"iconAltTextPositionCenter",value:"center"},{icon:"position-bottom",altText:"iconAltTextPositionBottom",value:"bottom"}],value:t,onChange:e})}createAlignmentRadioGroup(t,e){const i=[["iconAltTextAlignLeft","left"],["iconAltTextAlignRight","right"]];this.ctx.domManager.isRtl&&i.reverse();const[[n,s],[a,o]]=i;return this.createRadioGroup({label:"dialogInputAlign",options:[{icon:"align-left",altText:n,value:s},{icon:"align-center",altText:"iconAltTextAlignCenter",value:"center"},{icon:"align-right",altText:a,value:o}],value:t,onChange:e})}};function rw(t){return t.gridPadding+t.seriesAreaPadding+t.tickSize+t.label.spacing}function bot(t,e,i){for(const{update:n}of Object.values(ao))n(t,e,i)}var{InteractionState:Ma,keyProperty:xot,valueProperty:vot,Selection:Sot,BBox:Mot}=j,Cm=class WK extends Ln{constructor(e){super(),this.ctx=e,this.toolbar=new OA(this.ctx),this.optionsToolbar=new yO(this.ctx,()=>{const i=this.state.getActive();if(i!=null)return Yd(this.annotationData.at(i))}),this.axesButtons=new nO,this.enabled=!0,this.snap=!1,this.data=void 0,this.xKey=void 0,this.volumeKey=void 0,this.annotationData=new ss(WK.createAnnotationDatum),this.defaults=new Iat,this.container=new j.Group({name:"static-annotations"}),this.annotations=new Sot(this.container,this.createAnnotationScene.bind(this)),this.settingsDialog=new yot(this.ctx),this.textInput=new tat(this.ctx),this.postUpdateFns=[],this.state=this.setupStateMachine(),this.setupListeners(),this.setupDOM(),this.ctx.historyManager.addMementoOriginator(e.annotationManager),this.ctx.historyManager.addMementoOriginator(this.defaults),this.textInput.setKeyDownHandler(this.onTextInput.bind(this)),this.cleanup.register(()=>{this.clear(),this.xAxis?.button?.destroy(),this.yAxis?.button?.destroy(),this.textInput.destroy()})}setupStateMachine(){const{ctx:e}=this;return new LA({resetToIdle:()=>{e.domManager.updateCursor("annotations"),this.popAnnotationState(Ma.Annotations),this.hideOverlays(),this.optionsToolbar.hide(),this.deleteEphemeralAnnotations(),this.update()},hoverAtCoords:(i,n,s)=>{let a;return this.annotations.each((o,r,l)=>{if(!r.isHoverable())return;const c=o.containsPoint(i.x,i.y);c&&(a??(a=l)),o.toggleHovered(c,n===l,r.readOnly)}),a!=null?e.tooltipManager.suppressTooltip("annotations"):this.isAnnotationState()||e.tooltipManager.unsuppressTooltip("annotations"),(a==null||!this.annotationData.at(a)?.readOnly)&&this.ctx.domManager.updateCursor("annotations",a==null?void 0:this.annotations.at(a)?.getCursor()),a!==s&&this.update(),a},getNodeAtCoords:(i,n)=>this.annotations.at(n)?.getNodeAtCoords(i.x,i.y),translate:(i,n)=>{const s=this.annotations.at(i),a=Yd(this.annotationData.at(i));if(!(!s||!a))return this.translateNode(s,a,n)},copy:i=>{const n=this.annotations.at(i),s=Yd(this.annotationData.at(i));if(!(!n||!s))return this.createAnnotationDatumCopy(n,s)},paste:i=>{this.createAnnotation(i.type,i,!1),this.postUpdateFns.push(()=>{this.state.transitionAsync("selectLast"),this.state.transitionAsync("copy")})},select:(i,n)=>{const{annotations:s,optionsToolbar:a}=this;this.hideOverlays(),this.textInput.isVisible()||(this.toolbar.clearActiveButton(),this.toolbar.resetButtonIcons());const o=i==null?null:s.at(i),r=n==null?null:s.at(n),l=i==null?null:this.annotationData.at(i);r===o&&o!=null||(r?.toggleActive(!1),a.hide(),o&&!l?.readOnly?(this.pushAnnotationState(Ma.AnnotationsSelected),o.toggleActive(!0),Xh(l)||(a.updateButtons(this.annotationData.at(i)),this.postUpdateFns.push(()=>{a.show(),a.setAnchorScene(o)}))):(this.popAnnotationState(Ma.AnnotationsSelected),this.popAnnotationState(Ma.Annotations)),Xh(l)||this.deleteEphemeralAnnotations(),this.update())},selectLast:()=>(this.pushAnnotationState(Ma.AnnotationsSelected),this.annotationData.length-1),startInteracting:()=>{this.pushAnnotationState(Ma.Annotations)},stopInteracting:()=>{this.popAnnotationState(Ma.Annotations)},create:(i,n)=>{this.createAnnotation(i,n)},delete:i=>{this.annotationData.splice(i,1)},deleteAll:()=>{const i=this.annotationData.filter(n=>n.readOnly?n:!1);this.annotationData.splice(0,this.annotationData.length,...i)},validatePoint:(i,n)=>{const s=this.getAnnotationContext();return s?VM(s,i,n):!0},getAnnotationType:i=>iat(this.annotationData[i].type),datum:i=>this.annotationData.at(i),node:i=>this.annotations.at(i),recordAction:i=>{this.recordActionAfterNextUpdate(i)},update:()=>{this.postUpdateFns.push(()=>{const i=this.state.getActive(),n=i==null?null:this.annotations.at(i);n!=null&&this.optionsToolbar.setAnchorScene(n)}),this.update()},showTextInput:i=>{const n=Yd(this.annotationData.at(i));if(!this.annotations.at(i)||!n||!("getTextInputCoords"in n)||!("getTextPosition"in n))return;const a={color:n.color,fontFamily:n.fontFamily,fontSize:n.fontSize,fontStyle:n.fontStyle,fontWeight:n.fontWeight,placeholderColor:n.getPlaceholderColor()},o=this.getAnnotationContext(),r=c=>at.add(n.getTextInputCoords(o,c),at.required(this.seriesRect)),l=()=>n.getTextPosition();this.textInput.show({styles:a,layout:{getTextInputCoords:r,getTextPosition:l,alignment:n.alignment,textAlign:n.textAlign,width:n.width},text:n.text,placeholderText:n.placeholderText,onChange:(c,u)=>{this.state.transition("updateTextInputBBox",u)}}),this.ctx.domManager.updateCursor("annotations")},hideTextInput:()=>{this.textInput.hide()},updateTextInputColor:i=>{this.textInput.updateColor(i)},updateTextInputFontSize:i=>{const n=this.textInput.updateFontSize(i);this.state.transition("updateTextInputBBox",n)},updateTextInputBBox:i=>{this.state.transition("updateTextInputBBox",i)},showAnnotationOptions:i=>{const n=this.annotations.at(i);!n||Xh(this.annotationData.at(i))||(this.optionsToolbar.updateButtons(this.annotationData.at(i)),this.optionsToolbar.show(),this.optionsToolbar.setAnchorScene(n))},showAnnotationSettings:(i,n,s="line")=>{const a=this.annotationData.at(i);if(!DA(a)&&!Nc(a)&&!sv(a)||Xh(a))return;const o=c=>(u,d,g,f)=>{this.setColorAndDefault(a.type,c,u,d,g,f),this.optionsToolbar.updateColorPickerColor(c,d,g,f)},r=c=>()=>{this.recordActionAfterNextUpdate(`Change ${a.type} ${c} to ${a.getDefaultColor(c)}`,["annotations","defaults"]),this.update()},l={initialSelectedTab:s,ariaLabel:this.ctx.localeManager.t("ariaLabelAnnotationSettingsDialog"),sourceEvent:n,onChangeLine:c=>{this.state.transition("lineProps",c),c.bands!=null&&this.defaults.setDefaultFibonacciOptions(a.type,"bands",c.bands),c.reverse!=null&&this.defaults.setDefaultFibonacciOptions(a.type,"reverse",c.reverse),c.showFill!=null&&this.defaults.setDefaultFibonacciOptions(a.type,"showFill",c.showFill)},onChangeText:c=>{this.state.transition("lineText",c),c.alignment&&this.defaults.setDefaultLineTextAlignment(a.type,c.alignment),c.position&&this.defaults.setDefaultLineTextPosition(a.type,c.position),this.recordActionAfterNextUpdate(`Change ${a.type} text ${Object.keys(c).map(u=>`${u} to ${c[u]}`).join(", ")}`)},onChangeFillColor:o("fill-color"),onChangeHideFillColor:r("fill-color"),onChangeLineColor:o("line-color"),onChangeHideLineColor:r("line-color"),onChangeLineStyleType:c=>{this.setLineStyleTypeAndDefault(a.type,c),this.optionsToolbar.updateLineStyleType(Nb.find(u=>u.value===c)??Nb[0])},onChangeLineStyleWidth:c=>{this.setLineStyleWidthAndDefault(a.type,c),this.optionsToolbar.updateStrokeWidth({strokeWidth:c,value:c,label:String(c)})},onChangeTextColor:o("text-color"),onChangeHideTextColor:r("text-color"),onChangeTextFontSize:c=>{this.setFontSizeAndDefault(a.type,c)}};this.settingsDialog.show(a,l)}})}setupListeners(){const{ctx:e,optionsToolbar:i,settingsDialog:n,toolbar:s}=this,{seriesWidget:a,seriesDragInterpreter:o,chartWidget:r}=e.widgets;o&&this.cleanup.register(o.events.on("click",this.hoverTouchPreHandler.bind(this)),o.events.on("drag-start",this.hoverTouchPreHandler.bind(this)),o.events.on("drag-move",this.dragMoveTouchPreHandler.bind(this)),o.events.on("mousemove",this.onHover.bind(this)),o.events.on("click",this.onClick.bind(this)),o.events.on("dblclick",this.onDoubleClick.bind(this)),o.events.on("drag-start",this.onDragStart.bind(this)),o.events.on("drag-move",this.onDrag.bind(this)),o.events.on("drag-end",this.onDragEnd.bind(this))),this.cleanup.register(a.addListener("keydown",this.onKeyDown.bind(this)),a.addListener("keyup",this.onKeyUp.bind(this)),r.addListener("click",this.onCancel.bind(this)),e.eventsHub.on("annotations:restore",this.onRestoreAnnotations.bind(this)),e.eventsHub.on("layout:complete",this.onLayoutComplete.bind(this)),e.updateService.addListener("pre-scene-render",this.onPreRender.bind(this)),e.eventsHub.on("zoom:change-complete",()=>this.onResize()),e.eventsHub.on("dom:resize",()=>this.onResize()),s.events.on("cancel-create-annotation",()=>{this.cancel(),this.reset(),this.update()}),s.events.on("pressed-create-annotation",({annotation:l})=>{this.cancel(),this.pushAnnotationState(Ma.Annotations),this.state.transition(l),this.update()}),s.events.on("pressed-clear",()=>{this.clear(),this.recordActionAfterNextUpdate("Clear all")}),s.events.on("pressed-show-menu",()=>{this.cancel(),this.reset()}),s.events.on("pressed-unrelated",()=>{this.reset()}),i.events.on("pressed-delete",()=>{this.cancel(),this.delete(),this.reset()}),i.events.on("pressed-settings",({sourceEvent:l})=>{this.state.transition("toolbarPressSettings",l)}),i.events.on("pressed-lock",({locked:l})=>{this.recordActionAfterNextUpdate(l?"Locked":"Unlocked"),this.update()}),i.events.on("hid-overlays",()=>{this.settingsDialog.hide()}),i.events.on("saved-color",({type:l,colorPickerType:c,color:u})=>{this.recordActionAfterNextUpdate(`Change ${l} ${c} to ${u}`,["annotations","defaults"])}),i.events.on("updated-color",({type:l,colorPickerType:c,colorOpacity:u,color:d,opacity:g,isMultiColor:f})=>{this.setColorAndDefault(l,c,u,d,g,f)}),i.events.on("updated-font-size",({type:l,fontSize:c})=>{this.setFontSizeAndDefault(l,c)}),i.events.on("updated-line-style",({type:l,lineStyleType:c})=>{this.setLineStyleTypeAndDefault(l,c)}),i.events.on("updated-line-width",({type:l,strokeWidth:c})=>{this.setLineStyleWidthAndDefault(l,c)}),n.events.on("hidden",()=>{this.optionsToolbar.clearActiveButton()}))}setupDOM(){const{ctx:e,toolbar:i,optionsToolbar:n}=this;this.cleanup.register(e.annotationManager.attachNode(this.container),()=>{e.domManager.removeStyles(rb),i.destroy(),n.destroy()})}async processData(e){if(!this.enabled||this.data==null||this.xKey==null||this.volumeKey==null)return;const i=[xot(this.xKey,void 0,{id:"date"}),vot(this.volumeKey,"number",{id:"volume"})],n=j.DataSet.wrap(this.data)??j.DataSet.empty(),{dataModel:s,processedData:a}=await e.request("annotations",n,{props:i});this.dataModel=s,this.processedData=a}createAnnotationScene(e){if(e.type in ao)return new ao[e.type].scene;throw new Error(`AG Charts - Cannot create annotation scene of type [${e.type}], expected one of [${Object.keys(ao)}], ignoring.`)}static createAnnotationDatum(e){if(e.type in ao)return new ao[e.type].datum().set(e);throw new Error(`AG Charts - Cannot create annotation datum of unknown type [${e.type}], expected one of [${Object.keys(ao)}], ignoring.`)}createAnnotation(e,i,n=!0){if(this.annotationData.push(i),n){const s=this.ctx.annotationManager.getAnnotationTypeStyles(e);s&&i.set(s),this.defaults.applyDefaults(i)}this.injectDatumDependencies(i),this.update()}injectDatumDependencies(e){"setLocaleManager"in e&&e.setLocaleManager(this.ctx.localeManager),"getVolume"in e&&(e.getVolume=this.getDatumRangeVolume.bind(this))}getDatumRangeVolume(e,i){const{dataModel:n,processedData:s}=this;let a=Jn(e),o=Jn(i);if(!Ac(a)||!Ac(o)||!n||!s||this.volumeKey==null)return;a>o&&([a,o]=[o,a]);const r=n.resolveKeysById({id:"annotations"},"date",s),l=n.resolveColumnById({id:"annotations"},"volume",s);let c=0;for(let u=0;u=a&&d<=o&&(c+=l[u])}return c}translateNode(e,i,n){const s=this.getAnnotationConfig(i),a=this.getAnnotationContext();a&&s.translate(e,i,n,a)}createAnnotationDatumCopy(e,i){const n=this.getAnnotationConfig(i),s=new n.datum;s.set(i.toJson());const a=this.getAnnotationContext();if(a)return n.copy(e,i,s,a)}getAnnotationConfig(e){if(e.type in ao)return ao[e.type];throw new Error(`AG Charts - Cannot get annotation config of unknown type [${e.type}], expected one of [${Object.keys(ao)}], ignoring.`)}onRestoreAnnotations(e){if(!this.enabled)return;const{annotations:i}=e;if(this.annotationData.length===i.length&&i.every((s,a)=>{const o=this.annotationData.at(a);return o!=null&&o.type===s.type}))for(let s=0;s{this.ctx.annotationManager.fireChangedEvent()}),this.update()}onLayoutComplete(e){if(!this.enabled)return;const i=e.series.paddedRect;this.seriesRect=i,this.container.setClipRect(i),this.xAxis=this.getAxis(e.axes[z.X],i,this.xAxis?.button),this.yAxis=this.getAxis(e.axes[z.Y],i,this.yAxis?.button),this.showAnnotations()?this.animateAnnotations({from:0,to:1,phase:"trailing"}):this.animateAnnotations({from:1,to:0,phase:"remove"})}showAnnotations(){if(!this.yAxis||!this.xAxis)return!1;const e=this.ctx.chartService.series.some(s=>s.hasData),n=this.yAxis.context.seriesIds().some(s=>this.ctx.chartService.series.find(o=>o.id===s)?.visible);return e&&n}animateAnnotations({from:e,to:i,phase:n}){const{annotations:s}=this;this.ctx.animationManager?.animate({from:e,to:i,id:"chart-annotations",phase:n,groupId:"opacity",onUpdate(a){s.each(o=>{o.opacity=a,"setAxisLabelOpacity"in o&&o.setAxisLabelOpacity(a)})},onStop(){s.each(a=>{a.opacity=i,"setAxisLabelOpacity"in a&&a.setAxisLabelOpacity(i)})}})}onPreRender(){this.enabled&&(this.updateAnnotations(),this.state.transition("render"))}getAxis(e,i,n){const s=this.ctx.axisManager.getAxisContext(e.direction)[0],{position:a="bottom",direction:o}=s,r=e.gridPadding+e.seriesAreaPadding,l=new Mot(0,0,i.width,i.height).grow(r,a),c=o===z.X?"vertical":"horizontal",{axesButtons:u,snap:d}=this;if(this.enabled&&u.enabled&&(u.axes==="xy"||u.axes===o)){n??(n=new GK(this.ctx,{...s,snapToGroup:d},y=>this.onAxisButtonClick(y,c),i));const f=rw(e);n.update(i,f)}else n?.destroy(),n=void 0;return{layout:e,context:s,bounds:l,button:n}}recordActionAfterNextUpdate(e,i=["annotations"]){const{defaults:n,ctx:{annotationManager:s,historyManager:a}}=this,o=i.map(r=>r==="defaults"?n:s);this.postUpdateFns.push(()=>{a.record(e,...o),s.fireChangedEvent()})}setColorAndDefault(e,i,n,s,a,o){this.state.transition("color",{colorPickerType:i,colorOpacity:n,color:s,opacity:a,isMultiColor:o}),this.defaults.setDefaultColor(e,i,n,s,a,o)}setFontSizeAndDefault(e,i){this.state.transition("fontSize",i),this.defaults.setDefaultFontSize(e,i),this.recordActionAfterNextUpdate(`Change ${e} font size to ${i}`,["annotations","defaults"])}setLineStyleTypeAndDefault(e,i){this.state.transition("lineStyle",{type:i}),this.defaults.setDefaultLineStyleType(e,i),this.recordActionAfterNextUpdate(`Change ${e} line style to ${i}`,["annotations","defaults"])}setLineStyleWidthAndDefault(e,i){this.state.transition("lineStyle",{strokeWidth:i}),this.defaults.setDefaultLineStyleWidth(e,i),this.recordActionAfterNextUpdate(`Change ${e} stroke width to ${i}`,["annotations","defaults"])}updateAnnotations(){const{annotationData:e,annotations:i,seriesRect:n,ctx:{annotationManager:s}}=this,a=this.getAnnotationContext();if(!n||!a)return;s.updateData(e.toJson());const o=this.showAnnotations();this.toolbar.refreshButtonsEnabled(o),this.toolbar.toggleClearButtonEnabled(e.length>0&&o),i.update(e??[],void 0,r=>r.id).each((r,l)=>{if(!o){r.visible=!1,"setAxisLabelVisible"in r&&r.setAxisLabelVisible(!1);return}"setAxisLabelVisible"in r&&r.setAxisLabelVisible(!0),this.injectDatumDependencies(l),bot(r,l,a)});for(const r of this.postUpdateFns)r();this.postUpdateFns=[]}getAnnotationContext(){const{seriesRect:e,xAxis:i,yAxis:n,snap:s,ctx:a}=this;if(!(!e||!i||!n))return{seriesRect:e,isRtl:a.domManager.isRtl,xAxis:{...i.context,bounds:i.bounds,labelPadding:rw(i.layout),snapToGroup:s},yAxis:{...n.context,bounds:n.bounds,labelPadding:rw(i.layout),snapToGroup:s}}}onHover(e){const{state:i}=this,n=this.getAnnotationContext();if(!n)return;const s=e.sourceEvent.shiftKey,a=at.from(e),o=na(a,n);i.transition("hover",{offset:a,point:o,shiftKey:s,context:n})}onClick(e){const{state:i}=this,n=this.getAnnotationContext();if(!n)return;const s=e.sourceEvent.shiftKey,a=na(at.from(e),n),o=this.textInput.getValue(),r=this.textInput.getBBox();i.transition("click",{point:a,shiftKey:s,textInputValue:o,bbox:r})}onDoubleClick(e){const{state:i}=this;if(!this.getAnnotationContext())return;const s=at.from(e);i.transition("dblclick",{offset:s})}onAxisButtonClick(e,i){this.cancel(),this.reset();const n=this.getAnnotationContext();if(!this.annotationData||!n)return;const{state:s}=this;this.pushAnnotationState(Ma.Annotations);const a=i==="horizontal";if(s.transition(a?"horizontal-line":"vertical-line"),this.optionsToolbar.hide(),!e)return;const o=na(e,n);VM(n,o)&&(s.transition("click",{point:o,shiftKey:!1}),this.update())}onResize(){const e=this.textInput.getValue(),i=this.textInput.getBBox();this.state.transition("resize",{textInputValue:e,bbox:i})}hoverTouchPreHandler(e){e.device==="touch"&&this.onHover(e)}dragMoveTouchPreHandler(e){e.device==="touch"&&this.ctx.interactionManager.isState(Ma.AnnotationsSelected)&&e.sourceEvent.preventDefault()}onDragStart(e){if(!this.ctx.interactionManager.isState(Ma.AnnotationsDraggable))return;const i=this.getAnnotationContext();if(!i)return;const n=at.from(e),s=na(n,i),a=this.textInput.getValue(),o=this.textInput.getBBox();this.state.transition("dragStart",{context:i,offset:n,point:s,textInputValue:a,bbox:o})}onDrag(e){if(!this.ctx.interactionManager.isState(Ma.AnnotationsDraggable))return;const i=this.getAnnotationContext();if(!i)return;const n=at.from(e),s=na(n,i),a=e.sourceEvent.shiftKey,o=this.textInput.getValue(),r=this.textInput.getBBox();this.state.transition("drag",{context:i,offset:n,point:s,shiftKey:a,textInputValue:o,bbox:r})}onDragEnd(){this.state.transition("dragEnd")}onCancel(e){const{sourceEvent:i}=e??{};i?.currentTarget===i?.target&&(this.cancel(),this.reset())}onDelete(){this.textInput.isVisible()||(this.cancel(),this.delete(),this.reset(),this.update())}onTextInput(e){const{state:i}=this,n=this.getAnnotationContext();if(!n)return;const{key:s,shiftKey:a}=e,o=this.textInput.getValue(),r=this.textInput.getBBox();i.transition("textInput",{key:s,shiftKey:a,textInputValue:o,bbox:r,context:n})}onKeyDown(e){const{state:i}=this,n=this.getAnnotationContext();if(!n)return;const{sourceEvent:s}=e,{shiftKey:a,ctrlKey:o,metaKey:r}=s,l=o||r,c=o||a;i.transition("keyDown",{shiftKey:a,context:n});const u={x:0,y:0},d=Math.max(n?.xAxis.scale.bandwidth??0,c?10:1),g=Math.max(n?.yAxis.scale.bandwidth??0,c?10:1);switch(s.key){case"ArrowDown":u.y=g;break;case"ArrowUp":u.y=-g;break;case"ArrowLeft":u.x=-d;break;case"ArrowRight":u.x=d;break;case"Escape":this.onCancel();return;case"Backspace":case"Delete":this.onDelete();return}if((u.x||u.y)&&(i.transition("translate",{translation:u}),s.stopPropagation(),s.preventDefault()),!!l)switch(s.key){case"c":i.transition("copy");return;case"x":i.transition("cut"),this.recordActionAfterNextUpdate("Cut annotation");return;case"v":i.transition("paste"),this.recordActionAfterNextUpdate("Paste annotation");return}}onKeyUp(e){const{shiftKey:i}=e.sourceEvent,n=this.getAnnotationContext();n&&(this.state.transition("keyUp",{shiftKey:i,context:n}),this.state.transition("translateEnd"))}clear(){this.cancel(),this.deleteAll(),this.reset()}reset(){this.state.transition("reset")}cancel(){this.state.transition("cancel")}delete(){this.state.transition("delete")}deleteAll(){this.state.transition("deleteAll")}deleteEphemeralAnnotations(){let e=!1;for(const[i,n]of this.annotationData.entries())Xh(n)&&(this.annotationData.splice(i,1),e=!0);e&&this.recordActionAfterNextUpdate("Delete ephemeral annotations")}hideOverlays(){this.settingsDialog.hide(),this.toolbar.hideOverlays(),this.optionsToolbar.hideOverlays()}pushAnnotationState(e){this.ctx.interactionManager.pushState(e),this.ctx.tooltipManager.suppressTooltip("annotations")}popAnnotationState(e){this.ctx.interactionManager.popState(e),this.ctx.tooltipManager.unsuppressTooltip("annotations")}isAnnotationState(){return this.ctx.interactionManager.isState(Ma.Annotations)||this.ctx.interactionManager.isState(Ma.AnnotationsSelected)}update(e=Ct.PRE_SCENE_RENDER){this.ctx.eventsHub.emit("chart:request-update",{type:e})}};M([b],Cm.prototype,"toolbar");M([b],Cm.prototype,"optionsToolbar");M([b],Cm.prototype,"axesButtons");M([b,Bi((t,e)=>{const i=e??!0;t.toolbar.enabled=i,t.optionsToolbar.enabled=i,t.axesButtons.enabled=i})],Cm.prototype,"enabled");M([b],Cm.prototype,"snap");var Dot=Cm,Wo={stroke:{$ref:"foregroundColor"},strokeOpacity:1,strokeWidth:2},ms={fill:vx,strokeOpacity:1,strokeWidth:2},gp={color:{$ref:"chartBackgroundColor"},fontSize:{$rem:Cn.LARGE},fontFamily:{$ref:"fontFamily"}},y_={...gp,enabled:!0,fill:{$ref:"foregroundColor"},fontSize:{$ref:"fontSize"}},hS={...gp,textAlign:"start"},_d={...gp,position:"top",alignment:"center",color:{$ref:"textColor"}},b_={...gp,position:"top",alignment:"center",color:{$ref:"textColor"}},n1={...gp,fontSize:{$ref:"fontSize"},color:Dx,fill:Sx,stroke:Mx,strokeWidth:1,divider:{stroke:Ax,strokeWidth:1,strokeOpacity:.5}},lw={...Wo,background:{fill:{$ref:"foregroundColor"},fillOpacity:.075},handle:{...ms},text:{..._d},statistics:{...n1}},Aot={buttons:{$shallowSimple:[{icon:"text-annotation",tooltip:"toolbarAnnotationsTextAnnotations",value:"text-menu"},{icon:"trend-line-drawing",tooltip:"toolbarAnnotationsLineAnnotations",value:"line-menu"},{icon:"arrow-drawing",tooltip:"toolbarAnnotationsShapeAnnotations",value:"shape-menu"},{icon:"delete",tooltip:"toolbarAnnotationsClearAll",value:"clear"}]},padding:{$ref:"chartPadding"}},Iot={buttons:{$shallowSimple:[{icon:"text-annotation",tooltip:"toolbarAnnotationsTextColor",value:"text-color"},{icon:"line-color",tooltip:"toolbarAnnotationsLineColor",value:"line-color"},{icon:"fill-color",tooltip:"toolbarAnnotationsFillColor",value:"fill-color"},{tooltip:"toolbarAnnotationsTextSize",value:"text-size"},{tooltip:"toolbarAnnotationsLineStrokeWidth",value:"line-stroke-width"},{icon:"line-style-solid",tooltip:"toolbarAnnotationsLineStyle",value:"line-style-type"},{icon:"settings",tooltip:"toolbarAnnotationsSettings",value:"settings"},{icon:"unlocked",tooltip:"toolbarAnnotationsLock",ariaLabel:"toolbarAnnotationsLock",checkedOverrides:{icon:"locked",tooltip:"toolbarAnnotationsUnlock"},value:"lock"},{icon:"delete",tooltip:"toolbarAnnotationsDelete",value:"delete"}]}},kot={enabled:!1,line:{...Wo,handle:{...ms},text:{..._d}},"horizontal-line":{...Wo,handle:{...ms},axisLabel:{...y_},text:{..._d}},"vertical-line":{...Wo,handle:{...ms},axisLabel:{...y_},text:{..._d}},"disjoint-channel":{...Wo,background:{fill:{$ref:"foregroundColor"},fillOpacity:.075},handle:{...ms},text:{...b_}},"parallel-channel":{...Wo,middle:{lineDash:[6,5],strokeWidth:1},background:{fill:{$ref:"foregroundColor"},fillOpacity:.075},handle:{...ms},text:{...b_}},"fibonacci-retracement":{...Wo,strokes:jb,rangeStroke:{$ref:"foregroundColor"},handle:{...ms},text:{..._d,position:"center"},label:{...gp,color:void 0,fontSize:{$rem:Cn.SMALLER}}},"fibonacci-retracement-trend-based":{...Wo,strokes:jb,rangeStroke:{$ref:"foregroundColor"},handle:{...ms},text:{..._d,position:"center"},label:{...gp,color:void 0,fontSize:{$rem:Cn.SMALLER}}},callout:{...Wo,...hS,color:{$ref:"textColor"},handle:{...ms},fill:{$ref:"foregroundColor"},fillOpacity:.075},comment:{...hS,fontWeight:700,handle:{...ms},fill:{$ref:"foregroundColor"}},note:{...hS,color:Cx,fill:ra,stroke:{$ref:"chartBackgroundColor"},strokeWidth:1,strokeOpacity:1,handle:{...ms},background:{fill:Ix,stroke:kx,strokeWidth:1}},text:{...hS,color:{$ref:"textColor"},handle:{...ms}},arrow:{...Wo,handle:{...ms},text:{..._d}},"arrow-up":{fill:{$palette:"up.fill"},handle:{...ms,stroke:{$ref:"foregroundColor"}}},"arrow-down":{fill:{$palette:"down.fill"},handle:{...ms,stroke:{$ref:"foregroundColor"}}},"date-range":{...lw},"price-range":{...lw},"date-price-range":{...lw},"quick-date-price-range":{up:{...Wo,fill:Ws,fillOpacity:.2,handle:{...ms},statistics:{...n1,color:"#fff",fill:Ws,strokeWidth:0,divider:{stroke:"#fff",strokeWidth:1,strokeOpacity:.5}}},down:{...Wo,stroke:Ub,fill:Gb,fillOpacity:.2,handle:{...ms,stroke:Ub},statistics:{...n1,color:"#fff",fill:Gb,strokeWidth:0,divider:{stroke:"#fff",strokeWidth:1,strokeOpacity:.5}}}},axesButtons:{},toolbar:Aot,optionsToolbar:Iot},Cot={type:"plugin",name:"annotations",chartType:"cartesian",enterprise:!0,version:oi,options:j.annotationOptionsDef,themeTemplate:kot,create:t=>new Dot(t),patchContext:t=>{t.sharedToolbar||(t.sharedToolbar=new Qst(t),t.cleanup.register(()=>t.sharedToolbar.destroy()))}},{Range:wot,TranslatableGroup:Not,BBox:Tot,FillGradientDefaults:Lot,FillImageDefaults:Oot,FillPatternDefaults:Eot,getShapeFill:Rot,InteractionState:uS}=j,dr=class extends Ln{constructor(t){super(),this.ctx=t,this.id=Nn(this),this.enabled=!1,this.stroke="rgb(195, 195, 195)",this.lineDash=[6,3],this.lineDashOffset=0,this.strokeWidth=1,this.strokeOpacity=1,this.fill="#c16068",this.fillOpacity=1,this.fillGradientDefaults=new Lot,this.fillPatternDefaults=new Eot,this.fillImageDefaults=new Oot,this.bounds=new Tot(0,0,0,0),this.bandHighlightGroup=new Not({name:"bandHighlight",zIndex:pe.AXIS_BAND_HIGHLIGHT}),this.rangeNode=this.bandHighlightGroup.appendChild(new wot),this.activeAxisHighlight=void 0,this.axisCtx=t.parent,this.hideBand(),t.domManager.addEventListener("focusin",({target:a})=>{const o=a instanceof HTMLElement&&t.domManager.contains(a,"series-area");this.bandHighlightGroup.visible&&!o&&(this.hideBand(),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}))});const{widgets:{seriesWidget:e,seriesDragInterpreter:i},animationManager:n,eventsHub:s}=t;this.cleanup.register(t.scene.attachNode(this.bandHighlightGroup),e.addListener("mousemove",a=>this.onHoverLikeEvent(a)),e.addListener("mouseleave",()=>this.clearAllHighlight()),n.addListener("animation-start",()=>this.clearAllHighlight()),s.on("layout:complete",a=>this.layout(a)),s.on("series:focus-change",()=>this.onKeyPress()),s.on("zoom:pan-start",()=>this.clearAllHighlight()),s.on("zoom:change-complete",()=>this.clearAllHighlight()),s.on("dom:resize",()=>this.clearAllHighlight()),s.on("axis:change",()=>this.axisChange())),i&&this.cleanup.register(i.events.on("drag-move",a=>this.onHoverLikeEvent(a)),i.events.on("click",a=>this.onClick(a)))}axisChange(){this.onHighlightChange()}isHover(t){return t.type==="mousemove"||t.type==="click"||t.device==="touch"&&this.ctx.chartService.touch.dragAction==="hover"}onClick(t){t.device==="touch"&&this.onHoverLikeEvent(t)}clearAllHighlight(){this.ctx.interactionManager.isState(uS.Hoverable)&&this.onHighlightChange()}onKeyPress(){this.ctx.interactionManager.isState(uS.Default)&&this.onHighlightChange()}onHoverLikeEvent(t){const e=this.isHover(t)?uS.Hoverable:uS.AnnotationsMoveable;this.ctx.interactionManager.isState(e)&&this.handleHoverHighlight(t)}handleHoverHighlight(t){if(!t)return;const{currentX:e,currentY:i}=t;this.onHighlightChange(this.axisCtx.pickBand({x:e,y:i}))}layout({series:{rect:t,visible:e},axes:i}){if(!e||!i||!this.enabled)return;const{position:n="left",axisId:s}=this.axisCtx,a=i[s];if(!a)return;this.axisLayout=a,this.bounds=t.clone().grow(a.gridPadding,n);const{bandHighlightGroup:o,bounds:r}=this;o.translationX=Math.round(r.x),o.translationY=Math.round(r.y),this.updateBand()}updateBand(){const{rangeNode:t,stroke:e,strokeWidth:i,strokeOpacity:n,lineDash:s,fill:a,fillOpacity:o,fillGradientDefaults:r,fillPatternDefaults:l,fillImageDefaults:c,lineDashOffset:u,axisLayout:d}=this;d&&(t.stroke=e,t.strokeWidth=i,t.strokeOpacity=n,t.lineDash=s,t.lineDashOffset=u,t.fill=Rot(a,r,l,c),t.fillOpacity=o,t.startLine=!0,t.endLine=!0)}isVertical(){return this.axisCtx.direction===z.X}onHighlightChange(t){this.enabled&&(this.activeAxisHighlight=t,this.activeAxisHighlight?this.showBand():this.hideBand(),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}))}updateBandPosition(){const{rangeNode:t,bounds:e}=this,{band:i}=this.activeAxisHighlight??{};if(i==null){this.hideBand();return}let n=Math.min(...i),s=Math.max(...i);if(s-n<1){const a=(n+s)/2;n=a-.5,s=a+.5}this.isVertical()?(t.y1=0,t.y2=e.height,t.x1=n,t.x2=s,t.horizontal=!0):(t.y1=n,t.y2=s,t.x1=0,t.x2=e.width,t.horizontal=!1)}showBand(){this.updateBandPosition(),this.bandHighlightGroup.visible=!0}hideBand(){this.bandHighlightGroup.visible=!1}};dr.className="BandHighlight";M([b],dr.prototype,"enabled");M([b],dr.prototype,"stroke");M([b],dr.prototype,"lineDash");M([b],dr.prototype,"lineDashOffset");M([b],dr.prototype,"strokeWidth");M([b],dr.prototype,"strokeOpacity");M([b],dr.prototype,"fill");M([b],dr.prototype,"fillOpacity");M([b],dr.prototype,"fillGradientDefaults");M([b],dr.prototype,"fillPatternDefaults");M([b],dr.prototype,"fillImageDefaults");var{LayoutElement:Pot,Menu:zot}=j,cw=[{label:"toolbarSeriesTypeOHLC",icon:"ohlc-series",value:"ohlc"},{label:"toolbarSeriesTypeCandles",icon:"candlestick-series",value:"candlestick"},{label:"toolbarSeriesTypeHollowCandles",icon:"hollow-candlestick-series",value:"hollow-candlestick"},{label:"toolbarSeriesTypeLine",icon:"line-series",value:"line"},{label:"toolbarSeriesTypeStepLine",icon:"step-line-series",value:"step-line"},{label:"toolbarSeriesTypeHLC",icon:"hlc-series",value:"hlc"},{label:"toolbarSeriesTypeHighLow",icon:"high-low-series",value:"high-low"}],Bot=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!1,this.menuMargin=6,this.menu=new zot(this.ctx,"chart-toolbar"),this.menuShowing=!1,this.toolbar=t.sharedToolbar.getSharedToolbar("chartToolbar"),this.cleanup.register(this.toolbar.addToolbarListener("button-pressed",this.onButtonPressed.bind(this)),t.layoutManager.registerElement(Pot.ToolbarLeft,this.onLayoutStart.bind(this)),t.eventsHub.on("series-area:click",()=>this.hidePopover()),()=>this.toolbar.destroy())}onLayoutStart(t){this.enabled&&(this.updateButton(),this.toolbar.layout(t.layoutBox))}onButtonPressed({event:t,buttonBounds:e,buttonWidget:i}){const n=this.ctx.domManager.isRtl?e.x-this.menuMargin:e.x+e.width+this.menuMargin;this.menu.setAnchor({x:n,y:e.y}),this.menu.show(i,{items:cw,menuItemRole:"menuitemradio",ariaLabel:this.ctx.localeManager.t("toolbarSeriesTypeDropdown"),class:"ag-charts-chart-toolbar__menu",value:this.getChartType(),sourceEvent:t.sourceEvent,onPress:s=>{this.setChartType(s.value),this.hidePopover()},onHide:()=>{this.toolbar.clearActiveButton(),this.menuShowing=!1}}),this.menuShowing=!0,this.toolbar.toggleActiveButtonByIndex(0)}updateButton(){const t=this.getChartType(),e=cw.find(i=>i.value===t)?.icon;e!=null&&this.toolbar.updateButtons([{icon:e,tooltip:"toolbarSeriesTypeDropdown",value:"menu"}])}hidePopover(){this.menuShowing&&(this.menuShowing=!1,this.toolbar.clearActiveButton()),this.menu.hide()}setChartType(t){const e={chartType:t};this.ctx.chartService.publicApi?.updateDelta(e).catch(i=>pt.error(i))}getChartType(){const t=this.ctx.chartService.publicApi?.getOptions()?.chartType;return t==null||!cw.some(e=>e.value===t)?"candlestick":t}};M([b,Pe({changeValue(t){this.toolbar?.setHidden(!t)}})],Bot.prototype,"enabled");function s1(t,e){return t==="always"?!0:t==="series-area"?e==="series-area"||e==="series-node":t===e}function KK(t,e,i){let n=!0;if(e.type==="separator"){const s=i.at(-1);n=s!==void 0&&s.type!=="separator"}if(n&&(n=s1(e.showOn??"always",t)),n){const s=new Fot(e);return i.push(s),s}}function x_(t,e,i,n){e.isVisible(i)&&KK(t,e.builtins.items[i],n)}function Vot(t,e,i,n){const{builtins:s}=e;if(jd(i,s.lists))for(const a of s.lists[i])x_(t,e,a,n);else x_(t,e,i,n)}function _ot(t,e,i){const n=[],{builtins:s}=i;for(const a of e)if(typeof a=="string"&&jd(a,s.lists))for(const o of s.lists[a])n.push(o);else n.push(a);return n.filter(a=>{if(typeof a=="string"){const o=i.builtins.items[a].showOn??"always";return i.isVisible(a)&&s1(o,t)}else return s1(a.showOn??"always",t)})}function YK(t,e,i,n){for(const s of i)if(typeof s=="string")Vot(t,e,s,n);else{const a=KK(t,s,n);s.items&&a&&s.items.length>0&&YK(t,e,s.items,a.items)}n.at(-1)?.type==="separator"&&n.pop()}var Fot=class{constructor(t){this.type="action",this.showOn="always",this.label="",this.iconUrl=void 0,this.enabled=!0,this.items=[],this.action=void 0,t&&this.setOptions(t),this.items=[]}setField(t,e,i){e[t]=i}setOptions(t){let e;for(e in t)t[e]!==void 0&&this.setField(e,this,t[e])}},uc="ag-charts-context-menu",{getItemId:Hot,ContextMenuRegistry:_y}=j,hw="context-menu",jot=["angleKey","calloutLabelKey","colorKey","labelKey","radiusKey","sectorLabelKey","sizeKey","xKey","yKey"],ov=class extends Ln{constructor(t){if(super(),this.ctx=t,this.enabled=!0,this.darkTheme=!1,this.items=["defaults"],this.pickedNode=void 0,this.showEvent=void 0,this.x=0,this.y=0,this.collapsingSubMenus=0,this.menuWidget=new RM.MenuWidget,this.interactionManager=t.interactionManager,this.element=t.domManager.addChild("canvas-overlay",hw),this.element.classList.add(uc),this.element.style.display="none",this.element.addEventListener("contextmenu",e=>e.preventDefault()),this.element.addEventListener("focusout",({relatedTarget:e})=>{this.collapsingSubMenus>0||(e==null||e instanceof Node&&!this.element.contains(e))&&this.hide()}),this.cleanup.register(()=>this.element.remove(),()=>this.menuWidget.destroy(),t.eventsHub.on("dom:hidden",()=>this.hide()),this.menuWidget.addListener("collapse-widget",()=>this.onCollapse())),this.menuWidget.addClass(`${uc}__menu`),typeof MutationObserver<"u"){const e=new MutationObserver(()=>{this.element.contains(this.menuWidget.getElement())&&this.reposition()});e.observe(this.element,{childList:!0}),this.mutationObserver=e,this.cleanup.register(()=>e.disconnect())}this.ctx.contextMenuRegistry.builtins.items.download.action=()=>{const e=t.chartService.title;let i="image";e?.enabled&&(i=e.node.getPlainText().replace(/\.+/,"")),this.ctx.chartService.publicApi?.download({fileName:i}).catch(n=>{pt.error("Unable to download chart",n)})},this.cleanup.register(this.ctx.eventsHub.on("context-menu:complete",e=>this.onContext(e)))}makeGetItemsParams(t){const{showOn:e}=t,{context:i}=this.ctx.chartService,n=_ot(e,this.items,this.ctx.contextMenuRegistry);switch(e){case"always":case"series-area":return{showOn:e,context:i,defaultItems:n};case"series-node":{if(this.pickedNode==null)throw new Error("this.pickedNode is null");const c={showOn:e,context:i,seriesId:this.pickedNode.series.id,itemId:Hot(this.pickedNode,this.pickedNode.series.data?.dataIdKey),datum:this.pickedNode.datum,defaultItems:n};for(const u of jot)this.pickedNode[u]!==void 0&&(c[u]=this.pickedNode[u]);return c}case"legend-item":if(this.pickedLegendItem==null)throw new Error("this.pickedLegendItem is null");const{itemId:s,seriesId:a,label:o,enabled:r}=this.pickedLegendItem,l=ce(o.text);return{showOn:e,context:i,itemId:s,seriesId:a,text:l,visible:r,defaultItems:n};default:return e}}expandItemsOptions(t){const e=[];let i;if(this.getItems){const n=this.makeGetItemsParams(t);i=this.getItems(n)}return i??(i=this.items),YK(t.showOn,this.ctx.contextMenuRegistry,i,e),e}onContext(t){if(!this.enabled)return;t.widgetEvent.sourceEvent.preventDefault(),this.showEvent=t.widgetEvent.sourceEvent,this.x=t.x,this.y=t.y,this.pickedNode=void 0,this.pickedLegendItem=void 0,_y.check("series-node",t)?this.pickedNode=t.context.pickedNode:_y.check("legend-item",t)&&(this.pickedLegendItem=t.context.legendItem);const e=this.expandItemsOptions(t);e.length!==0&&this.show(t.widgetEvent,e)}show(t,e){const{sourceEvent:i}=t;this.interactionManager.pushState(j.InteractionState.ContextMenu),this.element.style.display="block";const n=i.pointerType==="touch"?!1:void 0;n!==void 0&&this.ctx.chartService.overrideFocusVisible(n),this.createMenu(e),this.element.appendChild(this.menuWidget.getElement()),this.menuWidget.expand({sourceEvent:i,overrideFocusVisible:n})}hide(){this.menuWidget.collapse()}onCollapse(){this.interactionManager.popState(j.InteractionState.ContextMenu),this.menuWidget.getElement().remove(),this.element.style.display="none"}onSubMenuExpand(t,e){const i=t.getBounds();t.setFocusOverride(!0),t.getElement().insertAdjacentElement("afterend",e.getElement()),e.getElement().style.position="absolute";const{isRtl:n}=this.ctx.domManager,s=this.ctx.domManager.getBoundingClientRect(),a=t.getBoundingClientRect(),o=s.right-a.right,r=a.left-s.left,{offsetWidth:l,offsetHeight:c}=e.getElement();let u=i.y;if(s.height>c){const f=s.bottom-a.top;f=l){const f=d==="right"?i.x+i.width:i.x-l;e.setBounds({x:f,y:u})}else{const f=d==="right"?i.x-l:i.x+i.width,y=(d==="right"?r:o)-l;y>=0?e.setBounds({x:f,y:u}):e.setBounds({x:f+(d==="right"?-y:y),y:u})}}onSubMenuCollapse(t,e){t.setFocusOverride(void 0),this.collapsingSubMenus++,e.remove(),this.collapsingSubMenus--}createMenu(t){const{menuWidget:e}=this;e.clear(),e.setTabIndex(-1),this.createMenuItems(e,t)}createMenuItems(t,e){for(const i of e)switch(i.type){case"separator":{t.addSeparator().classList.add(`${uc}__divider`);break}case"action":{if(i.items.length===0){const n=new RM.MenuItemWidget;this.initButtonElement(n,i),t.addChild(n)}else{const{subMenuButton:n,subMenu:s}=t.addSubMenu();s.addClass(`${uc}__menu`),s.addListener("expand-widget",()=>this.onSubMenuExpand(n,s)),s.addListener("collapse-widget",()=>this.onSubMenuCollapse(n,s)),this.initButtonElement(n,i),this.createMenuItems(s,i.items)}break}default:throw new Error("unhandled case")}}createButtonOnClick(t,e){return _y.checkCallback("legend-item",t,e)?i=>{const n=i.sourceEvent;if(this.pickedLegendItem){const{seriesId:s,itemId:a,label:o}=this.pickedLegendItem,{chartService:r}=this.ctx,c=[r.series.find(d=>d.id===s)?.properties,r],u={type:"contextmenu",seriesId:s,itemId:a,text:ce(o.text),event:n};js(c,e,u),this.hide()}else pt.error("legend item not found")}:_y.checkCallback("series-area",t,e)?()=>{const i=this.ctx.chartService,n={type:"seriesContextMenuAction",event:this.showEvent};js(i,e,n),this.hide()}:_y.checkCallback("series-node",t,e)?()=>{const{showEvent:i}=this,{chartService:n}=this.ctx,s=this.pickedNode,a=[s?.series.properties,n],o=s?.series.createNodeContextMenuActionEvent(i,s);o?js(a,e,o):pt.error("series node not found"),this.hide()}:()=>{const i=this.ctx.chartService,n={type:"contextMenuEvent",event:this.showEvent};js(i,e,n),this.hide()}}initTableCells(t){const e=$t("div"),i=$t("div"),n=$t("div");return e.classList.toggle(`${uc}__icon`,!0),i.classList.toggle(`${uc}__cell`,!0),n.classList.toggle(`${uc}__cell`,!0),e.ariaHidden="true",i.role="presentation",n.ariaHidden="true",t.append(e,i,n),{cellIcon:e,cellLabel:i,cellArrow:n}}initButtonElement(t,e){t.addClass(`${uc}__item`),t.setEnabled(e.enabled);const i=this.ctx.localeManager.t(e.label),n=`${uc}__cellpadding`,{cellIcon:s,cellLabel:a,cellArrow:o}=this.initTableCells(t.getElement());if(a.textContent=i,a.classList.add(n),e.iconUrl!=null){const c=$t("img");c.src=e.iconUrl,s.append(c),s.classList.add(n)}if(e.items.length>0){const c=$t("span",mu("chevron-right"));o.append(c),o.classList.add(n)}const{showOn:r,action:l}=e;l!=null&&t.addListener("click",this.createButtonOnClick(r,l)),e.items.length===0&&(t.addListener("mouseleave",()=>t.setFocusOverride(!1)),t.addListener("mouseenter",()=>t.setFocusOverride(void 0)))}reposition(){const{isRtl:t}=this.ctx.domManager;let{x:e,y:i}=this;this.element.style.top="unset",this.element.style.bottom="unset";const n=this.ctx.domManager.getBoundingClientRect(),{offsetWidth:s,offsetHeight:a}=this.element;e=Nt(0,t?e-s:e,n.width-s),i=Nt(0,i,n.height-a),this.element.style.left=`${e}px`,this.element.style.top=`calc(${i}px - 0.5em)`}destroy(){super.destroy(),this.mutationObserver?.disconnect(),this.ctx.domManager.removeStyles(hw),this.ctx.domManager.removeChild("canvas-overlay",hw)}};M([b],ov.prototype,"enabled");M([b],ov.prototype,"darkTheme");M([b],ov.prototype,"items");M([b],ov.prototype,"getItems");var $K={type:"plugin",name:"contextMenu",enterprise:!0,version:oi,options:{enabled:J,items:aM,getItems:Is(aM,"a menu items array")},themeTemplate:{enabled:!0,darkTheme:Qd},create:t=>new ov(t)};$K.options.darkTheme=Mt(J);function FM(t){return typeof t?.datum=="object"?t.datum:null}var{FormatManager:Got}=j,Uot="ag-charts-crosshair-label",qu=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.xOffset=0,this.yOffset=0,this.format=void 0,this.renderer=void 0,this._cachedFormatter=void 0}formatValue(t,e,i,n){const{formatter:s,format:a}=this,{domain:o,boundSeries:r}=n;let l;if(s!=null){const c=n.type==="number"?n.fractionDigits:void 0,u=n.type==="date"?n.unit:void 0,d=n.type==="date"?n.step:void 0;l=t(s,{value:i,domain:o,fractionDigits:c,unit:u,step:d,boundSeries:r})}if(a!=null){let c=this._cachedFormatter;(c?.type!==e||c?.format!==a)&&(c={type:e,format:a,formatter:Got.getFormatter(e,a)},this._cachedFormatter=c),l??(l=c.formatter?.(i))}return l==null?void 0:String(l)}};M([b],qu.prototype,"enabled");M([b],qu.prototype,"xOffset");M([b],qu.prototype,"yOffset");M([b],qu.prototype,"formatter");M([b],qu.prototype,"format");M([b],qu.prototype,"renderer");var XK=class extends qu{constructor(t,e,i){super(),this.domManager=t,this.id=Nn(this),this.elementProxy=t.addDeferredProxyChild("canvas-overlay",`crosshair-label-${this.id}`),this.elementProxy.toggleClass(Uot,!0),this.elementProxy.setAttr("aria-hidden","true"),this.elementProxy.setAttr("data-key",e),this.elementProxy.setAttr("data-axis-id",i)}show(t){const e=Math.round(t.x+this.xOffset),i=Math.round(t.y+this.yOffset);this.elementProxy.setProperty("left",`${e}px`),this.elementProxy.setProperty("top",`${i}px`);const n=t.translateX||t.translateY?`${t.translateX??"0"} ${t.translateY??"0"}`:"";this.elementProxy.setProperty("translate",n),this.toggle(!0)}setLabelHtml({html:t,styles:e}){t!==void 0&&this.elementProxy.setInnerHTML(t),e!==void 0&&this.elementProxy.setContentStyles(e)}toggle(t){this.elementProxy.toggleClass("ag-charts-crosshair-label--hidden",!t)}destroy(){this.domManager.removeChild("canvas-overlay",`crosshair-label-${this.id}`)}toLabelHtml(t,e){if(typeof t=="string")return{html:t,styles:{}};e=e??{};const{text:i=e.text??"",color:n=e.color,backgroundColor:s=e.backgroundColor,opacity:a=e.opacity??1}=t,o={opacity:a,"background-color":s?.toLowerCase(),color:n};return{html:`
+ ${i} +
`,styles:o}}};XK.className="CrosshairLabel";var{Group:Wot,TranslatableGroup:Kot,Line:Yot,BBox:v_,InteractionState:Ph}=j,Fl=class extends Ln{constructor(t){super(),this.ctx=t,this.id=Nn(this),this.enabled=!1,this.stroke="rgb(195, 195, 195)",this.lineDash=[6,3],this.lineDashOffset=0,this.strokeWidth=1,this.strokeOpacity=1,this.snap=!0,this.label=new qu,this.seriesRect=new v_(0,0,0,0),this.bounds=new v_(0,0,0,0),this.crosshairGroup=new Kot({name:"crosshairs",zIndex:pe.SERIES_CROSSHAIR}),this.lineGroup=this.crosshairGroup.appendChild(new Wot({name:`${this.id}-crosshair-lines`,zIndex:pe.SERIES_CROSSHAIR})),this.lineGroupSelection=j.Selection.select(this.lineGroup,Yot,!1),this.activeHighlight=void 0,this.activeHighlightInViewport=!1,this.axisCtx=t.parent,this.labels={},this.hideCrosshairs(),t.domManager.addEventListener("focusin",({target:i})=>{if(this.checkInteractionState())return;const n=i instanceof HTMLElement&&t.domManager.contains(i,"series-area");this.crosshairGroup.visible&&!n&&(this.hideCrosshairs(),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}))});const{seriesDragInterpreter:e}=t.widgets;this.cleanup.register(t.scene.attachNode(this.crosshairGroup),t.widgets.seriesWidget.addListener("mousemove",i=>this.onMouseHoverLike(i)),t.widgets.seriesWidget.addListener("mouseleave",()=>this.onMouseOut()),t.eventsHub.on("series:focus-change",()=>this.onKeyPress()),t.eventsHub.on("zoom:pan-start",()=>this.onMouseOut()),t.eventsHub.on("zoom:change-complete",()=>this.onMouseOut()),t.eventsHub.on("highlight:change",i=>this.onHighlightChange(i)),t.eventsHub.on("layout:complete",i=>this.layout(i)),()=>{for(const i of Object.values(this.labels))i.destroy()}),e&&this.cleanup.register(e.events.on("drag-move",i=>this.onMouseHoverLike(i)),e.events.on("click",i=>this.onClick(i)))}checkInteractionState(){return this.ctx.interactionManager.isState(Ph.Frozen)}layout({series:{rect:t,visible:e},axes:i}){if(!e||!i||!this.enabled)return;this.seriesRect=t;const{position:n="left",axisId:s}=this.axisCtx,a=i[s];if(!a)return;this.axisLayout=a,this.bounds=t.clone().grow(a.gridPadding+a.seriesAreaPadding,n);const{crosshairGroup:o,bounds:r}=this;o.translationX=Math.round(r.x),o.translationY=Math.round(r.y);const l=["pointer",...this.axisCtx.seriesKeyProperties()];this.updateSelections(l),!(!this.snap&&this.activeHighlight)&&(this.updateLines(),this.updateLabels(l),!(this.snap&&!this.activeHighlightInViewport)&&this.refreshPositions())}updateSelections(t){this.lineGroupSelection.update(t,void 0,e=>e)}updateLabels(t){const{labels:e,ctx:i}=this;for(const n of t)this.label.enabled&&(e[n]??(e[n]=new XK(i.domManager,n,this.axisCtx.axisId))),e[n]&&this.updateLabel(e[n])}updateLabel(t){const{enabled:e,xOffset:i,yOffset:n,format:s,renderer:a}=this.label;t.enabled=e,t.xOffset=i,t.yOffset=n,t.format=s,t.renderer=a}updateLines(){const{lineGroupSelection:t,bounds:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,axisLayout:r}=this;if(!r)return;const l=this.isVertical();t.each(c=>{c.stroke=i,c.strokeWidth=n,c.strokeOpacity=s,c.lineDash=a,c.lineDashOffset=o,c.y1=0,c.y2=l?e.height:0,c.x1=0,c.x2=l?0:e.width})}isVertical(){return this.axisCtx.direction===z.X}isHover(t){return t.type==="mousemove"||t.type==="click"||t.device==="touch"&&this.ctx.chartService.touch.dragAction==="hover"}formatValue(t){return ce(this.axisCtx.formatScaleValue(t,"crosshair",this.label))}onClick(t){t.device==="touch"&&this.onMouseHoverLike(t)}onMouseHoverLike(t){if(!this.enabled||this.snap)return;const e=this.isHover(t)?Ph.Hoverable|Ph.Frozen:Ph.AnnotationsMoveable;this.ctx.interactionManager.isState(e)&&(this.updatePositions(this.getData(t)),this.crosshairGroup.visible=!0,this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}))}onMouseOut(){const t=this.snap?Ph.Hoverable:Ph.Hoverable|Ph.Frozen;this.ctx.interactionManager.isState(t)&&(this.hideCrosshairs(),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}))}onKeyPress(){this.enabled&&!this.snap&&this.ctx.interactionManager.isState(Ph.Default)&&this.hideCrosshairs()}onHighlightChange(t){if(!this.enabled)return;const{crosshairGroup:e,axisCtx:i}=this,{datum:n,series:s}=t.currentHighlight??{},a=n&&(s?.axes.x?.id===i.axisId||s?.axes.y?.id===i.axisId);if(this.activeHighlight=a?t.currentHighlight:void 0,this.activeHighlightInViewport=t.highlightInViewport,!this.activeHighlight)this.hideCrosshairs();else if(this.snap)if(t.highlightInViewport){const o=this.getActiveHighlightData(this.activeHighlight);this.updatePositions(o),e.visible=!0}else this.hideCrosshairs();this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER})}isInRange(t){return this.axisCtx.inRange(t)}refreshPositions(){this.activeHighlight&&this.updatePositions(this.getActiveHighlightData(this.activeHighlight))}updatePositions(t){const{seriesRect:e,lineGroupSelection:i}=this;i.each((n,s)=>{const a=t[s];if(!a){n.visible=!1,this.hideLabel(s);return}n.visible=!0;const{value:o,position:r}=a;let l=0,c=0;this.isVertical()?(l=r,n.x=Math.round(l)):(c=r,n.y=Math.round(c)),this.label.enabled?this.showLabel(l+e.x,c+e.y,o,s):this.hideLabel(s)})}getData(t){const{axisCtx:e}=this,i="pointer",{xKey:n="",yKey:s=""}=this.activeHighlight??{},{currentX:a,currentY:o}=t,r=FM(this.activeHighlight),l=this.isVertical(),c=l?a:o;let u=r?.[l?n:s]??"";return e.continuous&&(u=e.scaleInvert(c)),{[i]:{position:c,value:u}}}getActiveHighlightData(t){const{axisCtx:e}=this,{series:i,xKey:n="",aggregatedValue:s,cumulativeValue:a,midPoint:o}=t,r=FM(t),l=i.getKeyProperties(e.direction),c=(e.scale.bandwidth??0)/2,u=i.axes[e.direction]?.id===e.axisId,d=l.includes("yKey")&&u,g=l.includes("xKey")&&u,f=s??a;if(d&&f!==void 0){const x=e.scale.convert(f)+c;return this.isInRange(x)?{yKey:{value:f,position:x}}:{}}if(g){const x=(this.isVertical()?o?.x:o?.y)??0,S=e.continuous?e.scaleInvert(x):r?.[n];return this.isInRange(x)?{xKey:{value:S,position:x}}:{}}const y={};for(const x of l){const S=i.properties[x],D=r?.[S],A=e.scale.convert(D)+c;this.isInRange(A)&&(y[x]={value:D,position:A})}return y}getLabelHtml(t,e){const i=this.axisLayout?.label?.fractionDigits??0,n={text:this.formatValue(t)};return this.label.renderer?e.toLabelHtml(this.label.renderer({value:t,fractionDigits:i}),n):e.toLabelHtml(n)}showLabel(t,e,i,n){if(!this.axisLayout)return;const{bounds:s}=this,a=this.labels[n],o=this.getLabelHtml(i,a);a.setLabelHtml(o);const r=this.axisCtx.position;let l=this.axisLayout.label.spacing+this.axisLayout.tickSize;if(this.axisCtx.direction===z.X){l-=4;const c=r==="bottom";a.show({x:t,y:c?s.y+s.height+l:s.y-l,translateX:"-50%",translateY:c?"0":"-100%"})}else{l-=8;const c=r==="right";a.show({x:c?s.x+s.width+l:s.x-l,y:e,translateX:c?"0":"-100%",translateY:"-50%"})}}hideCrosshairs(){this.crosshairGroup.visible=!1;for(const t of Object.keys(this.labels))this.hideLabel(t)}hideLabel(t){this.labels[t]?.toggle(!1)}};Fl.className="Crosshair";M([b],Fl.prototype,"enabled");M([b],Fl.prototype,"stroke");M([b],Fl.prototype,"lineDash");M([b],Fl.prototype,"lineDashOffset");M([b],Fl.prototype,"strokeWidth");M([b],Fl.prototype,"strokeOpacity");M([b],Fl.prototype,"snap");M([b],Fl.prototype,"label");var $ot={type:"axis:plugin",name:"crosshair",chartType:"cartesian",enterprise:!0,version:oi,themeTemplate:{enabled:{$if:[{$or:[{$eq:[{$path:"../type"},"number"]},{$eq:[{$path:"../type"},"log"]},{$eq:[{$path:"../type"},"time"]},{$eq:[{$path:"../type"},"unit-time"]},{$eq:[{$path:"../type"},"ordinal-time"]}]},!0,!1]},snap:!0,stroke:{$ref:"subtleTextColor"},strokeWidth:1,strokeOpacity:1,lineDash:[5,6],lineDashOffset:0,label:{enabled:!0}},create:t=>new Fl(t)},rv=class extends Ln{constructor(t){super(),this.enabled=!0,this.getData=()=>Promise.resolve(),this.dataService=t.dataService;let e=!1;this.cleanup.register(t.eventsHub.on("data:load",()=>{e=!0}),t.eventsHub.on("layout:complete",()=>{e&&t.zoomManager.updateZoom({source:"data-update",sourceDetail:"dataSource"})}))}updateCallback(t,e){this.dataService&&(t&&e!=null?this.dataService.updateCallback(e):this.dataService.clearCallback())}};M([Pe({newValue(t){this.updateCallback(t,this.getData)}}),b],rv.prototype,"enabled");M([Pe({newValue(t){this.updateCallback(this.enabled,t)}}),b],rv.prototype,"getData");M([Pe({newValue(t){this.dataService.requestThrottle=t}})],rv.prototype,"requestThrottle");M([Pe({newValue(t){this.dataService.dispatchThrottle=t}})],rv.prototype,"updateThrottle");M([Pe({newValue(t){this.dataService.dispatchOnlyLatest=!t}})],rv.prototype,"updateDuringInteraction");Mt(X),Mt(X),Mt(J);var{BBox:Uh}=j,Xot=class{constructor(t){this.components=t,this.union=Uh.merge(t)}containsPoint(t,e){if(!this.union.containsPoint(t,e))return!1;for(const i of this.components)if(i.containsPoint(t,e))return!0;return!1}};(class extends j.Group{constructor(){super(),this.capLength=Number.NaN,this._datum=void 0,this.whiskerPath=new j.Path,this.capsPath=new j.Path,this.bboxes=new Xot([]),this.append([this.whiskerPath,this.capsPath])}get datum(){return this._datum}set datum(t){this._datum=t}calculateCapLength(t,e){const{lengthRatio:i=1,length:n}=t,{lengthRatioMultiplier:s,lengthMax:a}=e,o=n??i*s;return Math.min(o,a)}getItemStylerParams(t,e,i,n){const{datum:s}=this;if(s==null||t.itemStyler==null)return;const{xLowerKey:a,xUpperKey:o,yLowerKey:r,yUpperKey:l}=t;return{...e,datum:s.datum,seriesId:s.series.id,xKey:s.xKey,yKey:s.yKey,xLowerKey:a,xUpperKey:o,yLowerKey:r,yUpperKey:l,highlighted:i,highlightState:n}}formatStyles(t,e,i,n,s){let{cap:a,...o}=t;const r=this.getItemStylerParams(e,t,n,s);if(r!=null&&e.itemStyler!=null){const l=i.callWithContext(e.itemStyler,r);o=Et(l,o),a=Et(l?.cap,l,a)}return{whiskerStyle:o,capsStyle:a}}applyStyling(t,e){rM(["visible","stroke","strokeWidth","strokeOpacity","lineDash","lineDashOffset"],t,e)}update(t,e,i,n,s){if(this.datum===void 0)return;const{whiskerStyle:a,capsStyle:o}=this.formatStyles(t,e,i,n,s),{xBar:r,yBar:l,capDefaults:c}=this.datum,u=this.whiskerPath;this.applyStyling(u,a),u.path.clear(!0),l!==void 0&&(u.path.moveTo(l.lowerPoint.x,l.lowerPoint.y),u.path.lineTo(l.upperPoint.x,l.upperPoint.y)),r!==void 0&&(u.path.moveTo(r.lowerPoint.x,r.lowerPoint.y),u.path.lineTo(r.upperPoint.x,r.upperPoint.y)),u.path.closePath(),this.capLength=this.calculateCapLength(o??{},c);const d=this.capLength/2,g=this.capsPath;this.applyStyling(g,o),g.path.clear(!0),l!==void 0&&(g.path.moveTo(l.lowerPoint.x-d,l.lowerPoint.y),g.path.lineTo(l.lowerPoint.x+d,l.lowerPoint.y),g.path.moveTo(l.upperPoint.x-d,l.upperPoint.y),g.path.lineTo(l.upperPoint.x+d,l.upperPoint.y)),r!==void 0&&(g.path.moveTo(r.lowerPoint.x,r.lowerPoint.y-d),g.path.lineTo(r.lowerPoint.x,r.lowerPoint.y+d),g.path.moveTo(r.upperPoint.x,r.upperPoint.y-d),g.path.lineTo(r.upperPoint.x,r.upperPoint.y+d)),g.path.closePath()}updateBBoxes(){const{capLength:t,whiskerPath:e,capsPath:i}=this,{yBar:n,xBar:s}=this.datum??{},a=t/2,o=[];if(n!==void 0){const r=n.lowerPoint.y-n.upperPoint.y;o.push(new Uh(n.lowerPoint.x,n.upperPoint.y,e.strokeWidth,r),new Uh(n.lowerPoint.x-a,n.lowerPoint.y,t,i.strokeWidth),new Uh(n.upperPoint.x-a,n.upperPoint.y,t,i.strokeWidth))}if(s!==void 0){const r=s.upperPoint.x-s.lowerPoint.x;o.push(new Uh(s.lowerPoint.x,s.upperPoint.y,r,e.strokeWidth),new Uh(s.lowerPoint.x,s.lowerPoint.y-a,i.strokeWidth,t),new Uh(s.upperPoint.x,s.upperPoint.y-a,i.strokeWidth,t))}this.bboxes.components=o,this.bboxes.union=Uh.merge(o)}containsPoint(t,e){return this.bboxes.containsPoint(t,e)}pickNode(t,e){return this.containsPoint(t,e)?this:void 0}nearestSquared(t,e,i){const{bboxes:n}=this;if(n.union.distanceSquared(t,e)>i)return{nearest:void 0,distanceSquared:1/0};const{distanceSquared:s}=Tx(t,e,n.components);return{nearest:this,distanceSquared:s}}});(class extends j.Group{nearestSquared(t,e){const{nearest:i,distanceSquared:n}=Mj(t,e,{children:this.children()});if(i!==void 0&&!Number.isNaN(n))return{datum:i.datum,distanceSquared:n}}});var qc=class extends xt{};M([b],qc.prototype,"visible");M([b],qc.prototype,"stroke");M([b],qc.prototype,"strokeWidth");M([b],qc.prototype,"strokeOpacity");M([b],qc.prototype,"lineDash");M([b],qc.prototype,"lineDashOffset");M([b],qc.prototype,"length");M([b],qc.prototype,"lengthRatio");var Js=class extends xt{constructor(){super(...arguments),this.visible=!0,this.stroke="black",this.strokeWidth=1,this.strokeOpacity=1,this.cap=new qc}};M([b],Js.prototype,"yLowerKey");M([b],Js.prototype,"yLowerName");M([b],Js.prototype,"yUpperKey");M([b],Js.prototype,"yUpperName");M([b],Js.prototype,"xLowerKey");M([b],Js.prototype,"xLowerName");M([b],Js.prototype,"xUpperKey");M([b],Js.prototype,"xUpperName");M([b],Js.prototype,"visible");M([b],Js.prototype,"stroke");M([b],Js.prototype,"strokeWidth");M([b],Js.prototype,"strokeOpacity");M([b],Js.prototype,"lineDash");M([b],Js.prototype,"lineDashOffset");M([b],Js.prototype,"itemStyler");M([b],Js.prototype,"cap");var{fixNumericExtent:fbt,groupAccumulativeValueProperty:mbt,valueProperty:ybt}=j,{Group:Zot,Rect:S_,Selection:qot,TranslatableGroup:Qot}=j,M_=2,D_=1,Jot=2,trt=1e-6,A_={remove:0,update:1,add:2};function ert(t,e,i,n){for(const s of e)!t.has(s)&&!n?.has(s)&&t.set(s,i)}function irt(t,e){const i=new Map;for(const n of t.flatMap(s=>Object.values(s))){const s=e?n.moved:void 0;ert(i,n.updated,"update",s);for(const a of n.removed)i.set(a,"remove");for(const a of n.added)i.set(a,"add")}return i}function nrt(t){for(const e of[z.X,z.Y])for(const i of t.axisManager.getAxisContext(e))if(j.BandScale.is(i.scale))return i}function srt(t,e){return e>0&&t>0&&e/t{const u=A_[l.phase]-A_[c.phase];return u==0?l.bounds[n]-c.bounds[n]:u}),o=[a[0]];let r=o[0];for(let l=1;lnew S_({name:"flash-on-update-band"})),this.cleanup.register(this.ctx.scene.attachNode(this.flashGroup),this.ctx.eventsHub.on("layout:complete",e=>this.onLayoutComplete(e)),this.ctx.eventsHub.on("datamodel:diff",e=>this.onDataModelDiff(e)),this.ctx.updateService.addListener("pre-scene-render",e=>this.onPreSceneRender(e)))}destroy(){this.ctx.animationManager.stopByAnimationGroupId(this.id),this.cleanup.flush()}onLayoutComplete({chart:t,series:e}){this.enabled&&(this.chartFlashRect.x=0,this.chartFlashRect.y=0,this.chartFlashRect.width=t.width,this.chartFlashRect.height=t.height,this.seriesRect=e.rect.clone(),this.bandGroup.translationX=Math.round(this.seriesRect.x),this.bandGroup.translationY=Math.round(this.seriesRect.y),this.bandGroup.setClipRect(this.seriesRect),this.axisCtx=nrt(this.ctx))}resolveDomainValue(t){const e=this.axisCtx?.scale.domain;if(!e?.length||!Array.isArray(e[0]))return t;for(const i of e)if(String(i)===t)return i;return t}onDataModelDiff({diff:t}){this.enabled&&(this.pendingDiffs.push(t),this.item==="category"&&this.cachePreviousBounds(t))}onPreSceneRender({apiUpdate:t}){const e=this.pendingDiffs.length>0;if(!this.enabled||!t){this.pendingDiffs.length=0;return}if(!e)return;const i=this.pendingDiffs.some(o=>Object.values(o).some(r=>r.changed)),n=this.ctx.animationManager.isSkipped(),s=i?irt(this.pendingDiffs,n):void 0;if(this.pendingDiffs.length=0,!i)return;this.stopFlash();const a=s!=null&&s.size>0;this.item==="category"&&a?this.flashCategoryBands(s):this.flashChart()}flashChart(){!this.chartFlashRect.width||!this.chartFlashRect.height||(this.chartFlashRect.fill=this.fill,this.chartFlashRect.fillOpacity=0,this.animate([this.chartFlashRect],"update"))}cacheBounds(t){const e=this.measureBandBounds(t);e&&(this.previousBoundsCache??(this.previousBoundsCache=new Map),this.previousBoundsCache.set(t,e))}cachePreviousBounds(t){let e=!1;for(const i of Object.values(t)){(i.added.size>0||i.removed.size>0)&&(e=!0);for(const n of[...i.removed,...i.updated,...i.moved])this.cacheBounds(n)}if(e)for(const i of this.axisCtx?.scale.domain??[])this.previousBoundsCache?.has(String(i))||this.cacheBounds(String(i))}measureBandBounds(t){if(!this.axisCtx||!this.seriesRect)return;const e=this.axisCtx.measureBand(this.resolveDomainValue(t))?.band;if(!e)return;const[i,n]=e,s=Math.max(n-i,D_);return this.axisCtx.direction===z.X?{x:i,y:0,width:s,height:this.seriesRect.height}:{x:0,y:i,width:this.seriesRect.width,height:s}}flashCategoryBands(t){const e=this.ctx.animationManager.isSkipped();if(e)for(const[n,s]of t)s==="remove"&&t.delete(n);if(!e&&this.hasScaleChange(t)){const n=this.axisCtx?.scale.domain??[];for(const s of n){const a=String(s);t.has(a)||t.set(a,"update")}}const i=this.createBandFlashData(t);i&&(this.updateSelection(i,e),this.animateBands())}hasScaleChange(t){for(const e of t.values())if(e==="add"||e==="remove")return!0;return!1}createBandFlashData(t){if(!this.axisCtx||!this.seriesRect){pt.warnOnce("flashOnUpdate item 'category' requires a cartesian category based axis such as 'category', 'ordinal-time', 'unit-time'");return}const{direction:e}=this.axisCtx,i=this.axisCtx.scale,n=e===z.X,s=n?this.seriesRect.width:this.seriesRect.height,a=this.measureBandsBatch(i,t,n);if(this.previousBoundsCache=void 0,a.length!==0)return art(a,n,s)}measureBandsBatch(t,e,i){const n=t.bandwidth??0,a=((t.step??0)-n)/2,[o,r]=t.range,l=Math.min(o,r),c=Math.max(o,r),u=(i?this.seriesRect?.height:this.seriesRect?.width)??0,d=[];for(const[g,f]of e){if(f==="remove"){const w=this.previousBoundsCache?.get(g);w&&d.push({firstKey:g,lastKey:g,bounds:w,phase:f});continue}const y=t.convert(this.resolveDomainValue(g)),x=Math.max(y-a,l),S=Math.min(y+n+a,c),D=Math.max(S-x,D_),A=i?{x,y:0,width:D,height:u}:{x:0,y:x,width:u,height:D},I=this.previousBoundsCache?.get(g);d.push({firstKey:g,lastKey:g,bounds:A,prevBounds:I,phase:f})}return d}updateSelection(t,e){this.bandSelection.update(t),this.bandSelection.each((i,n)=>{const s=e?n.bounds:n.prevBounds??n.bounds;i.fill=this.fill,i.fillOpacity=0,i.x=s.x,i.y=s.y,i.width=s.width,i.height=s.height})}animateBands(){const t=Array.from(this.bandSelection.nodes());if(this.ctx.animationManager.isSkipped()){this.animate(t,"update");return}const e=[],i=[],n=[];for(const s of t)s.datum.phase==="remove"?e.push(s):s.datum.phase==="add"?n.push(s):i.push(s);this.animate(e,"remove"),this.animate(i,"update"),this.animate(n,"add")}stopFlash(){this.ctx.animationManager.stopByAnimationGroupId(this.id)}animate(t,e){if(t.length===0)return;const{animationManager:i}=this.ctx,n=this.getCustomTiming(e),s=n?.duration,a=n?.ease;i.animate({id:`${this.id}_${e}`,groupId:this.id,forceAnimation:!0,phase:e,duration:s,ease:a,from:{fillOpacity:this.fillOpacity},to:{fillOpacity:0},onUpdate:({fillOpacity:o},r)=>{if(!r)for(const l of t)l.fillOpacity=o},onStop:()=>{for(const o of t)o.fillOpacity=0}}),e==="update"&&!i.isSkipped()&&i.animate({id:`${this.id}_${e}_position`,groupId:this.id,forceAnimation:!0,phase:e,ease:Lc,from:{t:0},to:{t:1},onUpdate:({t:o},r)=>{if(!r)for(const l of t){const c=l.datum?.prevBounds;if(c){const u=l.datum.bounds;l.x=c.x+(u.x-c.x)*o,l.y=c.y+(u.y-c.y)*o,l.width=c.width+(u.width-c.width)*o,l.height=c.height+(u.height-c.height)*o}}}})}getCustomTiming(t){const{flashDuration:e,fadeOutDuration:i}=this;if(e==null&&i==null)return;const{animationManager:n}=this.ctx,{defaultDuration:s}=n,a=e??0,r=a+(i??0);if(r<=0)return;let l;if(n.isSkipped())l=Math.min(r,M_*s)/s;else{const u=j.PHASE_METADATA[t].animationDuration;l=Math.min(r/s,M_)*u}const c=a/r;return{duration:l,ease:c>=1?()=>0:u=>u<=c?0:(u-c)/(1-c)}}};Hp.className="FlashOnUpdate";M([b],Hp.prototype,"enabled");M([b],Hp.prototype,"item");M([b],Hp.prototype,"fill");M([b],Hp.prototype,"fillOpacity");M([b],Hp.prototype,"flashDuration");M([b],Hp.prototype,"fadeOutDuration");fx()("chart","category");var{TranslatableGroup:ort}=j,CO=class extends ort{constructor(){super(...arguments),this.inset=0,this.cornerRadius=0}applyClip(t,e){const{cornerRadius:i,inset:n}=this,{x:s,y:a,width:o,height:r}=e;t.beginPath(),t.roundRect(s+n,a+n,o-2*n,r-2*n,i),t.clip()}};M([ut()],CO.prototype,"inset");M([ut()],CO.prototype,"cornerRadius");var{CategoryAxis:rrt,Group:Od,BBox:k_,stackCartesianSeries:lrt}=j,wO=class{constructor(){this.top=0,this.bottom=0}};M([b],wO.prototype,"top");M([b],wO.prototype,"bottom");var wm=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!1,this.padding=new wO,this.root=new Od({name:"root"}),this.seriesRoot=this.root.appendChild(new CO({name:"Series-root",zIndex:pe.SERIES_LAYER,renderToOffscreenCanvas:!0})),this.axisGridGroup=this.root.appendChild(new Od({name:"Axes-Grids",zIndex:pe.AXIS_GRID})),this.axisGroup=this.root.appendChild(new Od({name:"Axes-Grids",zIndex:pe.AXIS_GRID})),this.axisLabelGroup=this.root.appendChild(new Od({name:"Axes-Labels",zIndex:pe.SERIES_LABEL})),this.axisCrosslineRangeGroup=this.root.appendChild(new Od({name:"Axes-Crosslines-Range",zIndex:pe.SERIES_CROSSLINE_RANGE})),this.axisCrosslineLineGroup=this.root.appendChild(new Od({name:"Axes-Crosslines-Line",zIndex:pe.SERIES_CROSSLINE_LINE})),this.axisCrosslineLabelGroup=this.root.appendChild(new Od({name:"Axes-Crosslines-Label",zIndex:pe.SERIES_LABEL})),this.data=[],this._destroyed=!1,this.miniChartAnimationPhase="initial",this.seriesRect=void 0,this.axes=new j.ChartAxes,this.series=[],this.cleanup.register(this.ctx.eventsHub.on("data:update",e=>this.updateData(e)))}destroy(){this._destroyed||(super.destroy(),this.destroySeries(this.series),this.axes.destroy(),this._destroyed=!0)}onSeriesChange(t,e){const i=e?.filter(n=>!t.includes(n))??[];this.destroySeries(i);for(const n of t)e?.includes(n)||(n.attachSeries(this.seriesRoot,this.seriesRoot,void 0),n.chart={},Object.defineProperty(n.chart,"mode",{get:()=>"standalone"}),Object.defineProperty(n.chart,"isMiniChart",{get:()=>!0}),Object.defineProperty(n.chart,"flashOnUpdateEnabled",{get:()=>!1}),Object.defineProperty(n.chart,"seriesRect",{get:()=>this.seriesRect}),n.resetAnimation(this.miniChartAnimationPhase==="initial"?"initial":"disabled"));this.seriesRect=void 0}destroySeries(t){if(t)for(const e of t)e.destroy(),e.detachSeries(this.seriesRoot,this.seriesRoot,void 0),e.chart=void 0}assignSeriesToAxes(){for(const t of this.axes)t.boundSeries=this.series.filter(e=>e.axes[t.direction]===t)}assignAxesToSeries(){const t={};for(const e of this.axes){const i=e.direction;(t[i]??(t[i]=[])).push(e)}for(const e of this.series)for(const i of e.directions){const n=e.getKeyAxis(i)??i,s=this.axes.findById(n);if(!s){pt.warnOnce(`no matching axis for direction [${i}] and id [${n}]; check series and axes configuration.`);return}e.axes[i]=s}}updateData(t){for(const e of this.series)e.setChartData(t);this.miniChartAnimationPhase==="initial"&&this.ctx.animationManager.onBatchStop(()=>{this.miniChartAnimationPhase="ready";for(const e of this.series)e.resetAnimation("disabled")})}async processData(t){this.series.some(e=>e.canHaveAxes)&&(this.assignAxesToSeries(),this.assignSeriesToAxes()),await Promise.all(this.series.map(async e=>(e.resetDatumCallbackCache(),e.processData(t))));for(const e of this.axes)e.processData()}computeAxisPadding(){const t=new zu;if(!this.enabled)return t;for(const{position:e,thickness:i,line:n,label:s}of this.axes){if(e==null)continue;let a;i?a=i:a=(n.enabled?n.width:0)+(s.enabled?nr(s.fontSize??0)+s.spacing:0),t[e]=Math.ceil(a)}return t}async layout(t,e){var i;const{padding:n}=this,s=this.seriesRect!=null,a=new k_(0,0,t,e-(n.top+n.bottom)),o=this.seriesRect?.width!==t||this.seriesRect?.height!==e;this.seriesRect=a,this.seriesRoot.translationY=n.top,this.seriesRoot.setClipRectCanvasSpace(new k_(0,-n.top,t,e));for(const r of this.axes){const{position:l="left"}=r;switch(l){case"top":case"bottom":r.range=[0,a.width],r.gridLength=a.height;break;case"right":case"left":{const c=r instanceof rrt;r.range=c?[0,a.height]:[a.height,0],r.gridLength=a.width;break}}if(r.gridPadding=0,r.translation.x=0,r.translation.y=0,l==="right"?r.translation.x=t:l==="bottom"&&(r.translation.y=e),s||r.resetAnimation("initial"),r.crossLines)for(const c of r.crossLines)c instanceof j.CartesianCrossLine&&(c.position=r.position??"top",(i=c.label).parallel??(i.parallel=r.label?.parallel));r.calculateLayout(),r.update()}o&&lrt(this.series),await Promise.all(this.series.map(async r=>r.update({seriesRect:a})))}};M([b],wm.prototype,"enabled");M([qi(["seriesRoot","inset"])],wm.prototype,"inset");M([qi(["seriesRoot","cornerRadius"])],wm.prototype,"cornerRadius");M([Pe({changeValue(t,e=new j.ChartAxes){const i={axisNode:this.axisGroup,gridNode:this.axisGridGroup,labelNode:this.axisLabelGroup,crossLineLineNode:this.axisCrosslineLineGroup,crossLineRangeNode:this.axisCrosslineRangeGroup,crossLineLabelNode:this.axisCrosslineLabelGroup};for(const n of e)t.includes(n)||(n.detachAxis(),n.destroy());for(const n of t)e?.includes(n)||n.attachAxis(i)}})],wm.prototype,"axes");M([Pe({changeValue(t,e){this.onSeriesChange(t,e)}})],wm.prototype,"series");var{SliderWidget:C_}=j,crt=class{constructor(t,e){this.ctx=t,this.sliderHandlers=e,this._min=0,this._max=1,this.minRange=.001,this.dragStartX=0,this.ctx=t,this.toolbar=t.proxyInteractionService.createProxyContainer({type:"toolbar",domManagerId:"navigator-toolbar",classList:["ag-charts-proxy-navigator-toolbar"],orientation:"vertical",ariaLabel:{id:"ariaLabelNavigator"}}),this.sliders=[t.proxyInteractionService.createProxyElement({type:"slider",domIndex:1,ariaLabel:{id:"ariaLabelNavigatorMinimum"},parent:this.toolbar,cursor:"ew-resize"}),t.proxyInteractionService.createProxyElement({type:"slider",domIndex:-1/0,ariaLabel:{id:"ariaLabelNavigatorRange"},parent:this.toolbar,cursor:"grab"}),t.proxyInteractionService.createProxyElement({type:"slider",domIndex:2,ariaLabel:{id:"ariaLabelNavigatorMaximum"},parent:this.toolbar,cursor:"ew-resize"})];for(const[i,n]of["min","pan","max"].entries()){const s=this.sliders[i];s.step=C_.STEP_HUNDRETH,s.keyboardStep=C_.STEP_ONE,s.orientation="horizontal",s.setPreventsDefault(!1),s.addListener("focus",()=>this.clearFocusOverride(s)),s.addListener("keydown",()=>this.clearFocusOverride(s)),s.addListener("drag-start",a=>this.onDragStart(i,a,n)),s.addListener("drag-move",a=>this.onDrag(s,a,n)),s.addListener("drag-end",()=>this.updateSliderRatios()),s.addListener("contextmenu",a=>this.onContextMenu(s,a))}this.sliders[0].addListener("change",()=>this.onMinSliderChange()),this.sliders[1].addListener("change",()=>this.onPanSliderChange()),this.sliders[2].addListener("change",()=>this.onMaxSliderChange()),this.updateSliderRatios(),this.updateVisibility(!1)}destroy(){this.toolbar.destroy()}updateVisibility(t){this.toolbar.setHidden(!t)}updateZoom(){const{_min:t,_max:e}=this;t==null||e==null||this.ctx.zoomManager.updateZoom({source:"user-interaction",sourceDetail:"navigatorDOM"},{x:{min:t,max:e}})}updateBounds(t){this.toolbar.setBounds(t)}updateSliderBounds(t,e){this.sliders[t].setBounds(e)}updateMinMax(t,e){this._min=t,this._max=e,this.updateSliderRatios()}updateSliderRatios(){let{_min:t,_max:e}=this;t=Math.round(t*100)/100,e=Math.round(e*100)/100;const i=this.ctx.localeManager.t("ariaValuePanRange",{min:t,max:e});this.sliders[0].setValueRatio(t),this.sliders[1].setValueRatio(t,{ariaValueText:i}),this.sliders[2].setValueRatio(e)}toCanvasOffsets(t){return{offsetX:this.dragStartX+t.originDeltaX}}moveToFront(t){if(t===1)return;const e=this.sliders[t],i=this.sliders[2-t];this.toolbar.moveChild(i,e.domIndex-1)}clearFocusOverride(t){t.setFocusOverride(void 0)}onDragStart(t,e,i){const n=this.sliders[t],s=this.toolbar.cssLeft(),a=n.cssLeft();this.dragStartX=s+a+e.offsetX,this.moveToFront(t),e.sourceEvent.preventDefault(),n.focus(),n.setFocusOverride(!1),this.sliderHandlers.onDragStart(i,this.toCanvasOffsets(e))}onDrag(t,e,i){e.sourceEvent.preventDefault(),this.sliderHandlers.onDrag(i,this.toCanvasOffsets(e))}onContextMenu(t,e){const{offsetX:i,offsetY:n}=e,{x:s,y:a}=this.toolbar.getBounds(),{x:o,y:r}=t.getBounds(),l=i+s+o,c=n+a+r;this.ctx.contextMenuRegistry.dispatchContext("always",{widgetEvent:e,canvasX:l,canvasY:c},void 0)}onPanSliderChange(){const t=this.sliders[1].getValueRatio(),e=this._max-this._min;this._min=Nt(0,t,1-e),this._max=this._min+e,this.updateZoom()}onMinSliderChange(){this._min=this.sliders[0].clampValueRatio(0,this._max-this.minRange),this.updateZoom()}onMaxSliderChange(){this._max=this.sliders[2].clampValueRatio(this._min+this.minRange,1),this.updateZoom()}},{BBox:hrt,ExtendedPath2D:urt}=j,fu=class extends j.Path{constructor(){super(...arguments),this.zIndex=3,this.centerX=0,this.centerY=0,this.width=8,this.height=16,this.cornerRadius=4,this.grip=!0,this.gripPath=new urt}setCenter(t,e){this.dirtyPath=!0,(this.centerX!==t||this.centerY!==e)&&(this.centerX=t,this.centerY=e,this.markDirty("center"))}static align(t,e,i,n,s,a,o,r,l){const c=t.align(i+s*o)+l,u=c+t.align(i+s*o,s*(r-o))-2*l,d=t.align(n+a/2);t.setCenter(c,d),e.setCenter(u,d)}computeBBox(){const{centerX:t,centerY:e,width:i,height:n}=this,s=t-i/2,a=e-n/2;return new hrt(s,a,i,n)}isPointInPath(t,e){return this.getBBox().containsPoint(t,e)}updatePath(){const{centerX:t,centerY:e,path:i,gripPath:n,strokeWidth:s,cornerRadius:a,grip:o}=this,r=s/2,l=this.layerManager?.canvas?.pixelRatio??1;i.clear(),n.clear();const c=Math.floor(this.width/2*l)/l,u=Math.floor(this.height/2*l)/l;i.roundRect(t-c+r,e-u+r,2*(c-r),2*(u-r),a);const d=3;if(o)for(let g=-.5;g<=.5;g+=1)for(let f=-1;f<=1;f+=1)n.arc(t+g*d,e+f*d,1,0,2*Math.PI),n.closePath()}renderFill(t,e){const{stroke:i}=this;super.renderFill(t,e),t.fillStyle=typeof i=="string"?i:"black",t.fill(this.gripPath.getPath2D())}};fu.className="RangeHandle";M([b,ut()],fu.prototype,"width");M([b,ut()],fu.prototype,"height");M([b,ut()],fu.prototype,"cornerRadius");M([b,ut()],fu.prototype,"grip");var{Path:drt,BBox:uw,ExtendedPath2D:prt,clippedRoundRect:grt}=j,NO=class extends drt{constructor(){super(...arguments),this.cornerRadius=4,this.zIndex=2,this.x=0,this.y=0,this.width=200,this.height=30,this.min=0,this.max=1,this.visiblePath=new prt}layout(t,e,i,n,s,a){s=Number.isNaN(s)?this.min:s,a=Number.isNaN(a)?this.max:a,(t!==this.x||e!==this.y||i!==this.width||this.height!==n||s!==this.min||a!==this.max)&&(this.x=t,this.y=e,this.width=i,this.height=n,this.min=s,this.max=a,this.dirtyPath=!0,this.markDirty("RangeMask.layout"))}computeBBox(){const{x:t,y:e,width:i,height:n}=this;return new uw(t,e,i,n)}computeVisibleRangeBBox(){const{x:t,y:e,width:i,height:n,min:s,max:a}=this,o=t+i*s,r=t+i*a;return new uw(o,e,r-o,n)}updatePath(){const{path:t,visiblePath:e,x:i,y:n,width:s,height:a,min:o,max:r,strokeWidth:l,cornerRadius:c}=this,u=l/2;t.clear(),e.clear();const d=this.align(i)+u,g=this.align(n)+u,f=this.align(i,s)-2*u,y=this.align(n,a)-2*u,x=this.align(i+s*o)+u,S=x+this.align(i+s*o,s*(r-o))-2*u,D={topLeft:c,topRight:c,bottomRight:c,bottomLeft:c},A=(I,w,N)=>{if(N-w<1)return;const O=new uw(w,g,N-w,y);grt(I,d,g,f,y,D,O)};A(t,d,x),A(t,S,f+d),A(e,x,S)}renderStroke(t,e){super.renderStroke(t,e),super.renderStroke(t,this.visiblePath.getPath2D())}};NO.className="RangeMask";M([b,ut()],NO.prototype,"cornerRadius");var frt=class extends j.Group{constructor(t){super({name:"rangeSelectorGroup",zIndex:pe.NAVIGATOR}),this.x=0,this.y=0,this.width=200,this.height=30,this.lOffset=0,this.rOffset=0,this.background=this.appendChild(new j.TranslatableGroup({name:"navigator-background",zIndex:1})),this.append(t)}layout(t,e,i,n,s,a){this.x=t,this.y=e,this.width=i,this.height=n,this.lOffset=s,this.rOffset=a,this.background.translationX=t,this.background.translationY=e,this.markDirty("RangeSelector")}updateBackground(t,e){t?.remove(),e!=null&&this.background.appendChild(e),this.markDirty("RangeSelector")}computeBBox(){const{x:t,y:e,width:i,height:n,lOffset:s,rOffset:a}=this;return new j.BBox(t-s,e,i+(s+a),n)}},lv=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!1,this.mask=new NO,this.minHandle=new fu,this.maxHandle=new fu,this.maskVisibleRange={id:"navigator-mask-visible-range",getBBox:()=>this.mask.computeVisibleRangeBBox(),toCanvasBBox:()=>this.mask.computeVisibleRangeBBox(),fromCanvasPoint:(e,i)=>({x:e,y:i})},this.height=30,this.cornerRadius=0,this.spacing=10,this.x=0,this.y=0,this.width=0,this.rangeSelector=new frt([this.mask,this.minHandle,this.maxHandle]),this.cleanup.register(t.scene.attachNode(this.rangeSelector),t.eventsHub.on("locale:change",()=>this.updateZoom()),t.layoutManager.registerElement(j.LayoutElement.Navigator,e=>this.onLayoutStart(e)),t.eventsHub.on("layout:complete",e=>this.onLayoutComplete(e)),t.eventsHub.on("zoom:change-complete",e=>this.onZoomChange(e))),this.domProxy=new crt(t,this),this.updateGroupVisibility(),this.miniChart=new wm(t)}updateBackground(t,e){this.rangeSelector?.updateBackground(t,e)}updateGroupVisibility(){const{enabled:t}=this;this.rangeSelector==null||t===this.rangeSelector.visible||(this.rangeSelector.visible=t,this.domProxy.updateVisibility(t),t?this.updateZoom():this.ctx.zoomManager.updateZoom({source:"chart-update",sourceDetail:"navigator"},{x:{min:0,max:1}}))}onLayoutStart({layoutBox:t}){if(this.enabled){const e=this.height+this.spacing;t.shrink(e,"bottom"),this.y=t.y+t.height+this.spacing}else this.y=0;if(this.enabled&&this.miniChart){const{top:e,bottom:i}=this.miniChart.computeAxisPadding();t.shrink(e+i,"bottom"),this.y-=i,this.miniChart.inset=this.mask.strokeWidth/2,this.miniChart.cornerRadius=this.mask.cornerRadius}}onLayoutComplete(t){const{x:e,width:i}=t.series.rect,{y:n,height:s}=this;if(this.domProxy.updateVisibility(this.enabled),this.enabled){const{_min:a,_max:o}=this.domProxy;this.layoutNodes(e,n,i,s,a,o),this.domProxy.updateBounds({x:e,y:n,width:i,height:s})}this.x=e,this.width=i,this.miniChart?.layout(i,s).catch(a=>pt.error(a))}canDrag(){return this.enabled&&this.ctx.interactionManager.isState(j.InteractionState.ZoomDraggable)}onDragStart(t,{offsetX:e}){this.canDrag()&&(t==="pan"&&(this.panStart=(e-this.x)/this.width-this.domProxy._min),this.ctx.zoomManager.fireZoomPanStartEvent("navigator"))}onDrag(t,{offsetX:e}){if(!this.canDrag())return;const{panStart:i,x:n,width:s}=this,{minRange:a}=this.domProxy;let{_min:o,_max:r}=this.domProxy;const l=(e-n)/s;if(t==="min")o=Nt(0,l,r-a);else if(t==="max")r=Nt(o+a,l,1);else if(t==="pan"&&i!=null){const c=r-o;o=Nt(0,l-i,1-c),r=o+c}this.domProxy._min=o,this.domProxy._max=r,this.updateZoom()}onZoomChange(t){const{x:e}=t;if(!e)return;const{x:i,y:n,width:s,height:a}=this,{min:o,max:r}=e;this.domProxy.updateMinMax(o,r),this.layoutNodes(i,n,s,a,o,r)}layoutNodes(t,e,i,n,s,a){const{rangeSelector:o,mask:r,minHandle:l,maxHandle:c}=this;r.layout(t,e,i,n,s,a),o.layout(t,e,i,n,l.width/2,c.width/2),fu.align(l,c,t,e,i,n,s,a,r.strokeWidth/2),s+(a-s)/2<.5?(l.zIndex=3,c.zIndex=4):(l.zIndex=4,c.zIndex=3);for(const[u,d]of[l,this.maskVisibleRange,c].entries()){const g=d.getBBox(),f={x:g.x-t,y:g.y-e,height:g.height,width:g.width};this.domProxy.updateSliderBounds(u,f)}}updateZoom(){this.enabled&&this.domProxy.updateZoom()}async processData(t){return this.miniChart?.processData(t)}};M([Bi((t,e,i)=>{t.updateBackground(i?.root,e?.root)})],lv.prototype,"miniChart");M([b,Bi((t,e)=>{t.ctx.zoomManager.setNavigatorEnabled(!!e),t.updateGroupVisibility()})],lv.prototype,"enabled");M([b],lv.prototype,"height");M([b,Bi((t,e)=>{t.mask.cornerRadius=e})],lv.prototype,"cornerRadius");M([b],lv.prototype,"spacing");function mrt(t){return{from:t?{scalingX:1,scalingY:0}:{scalingX:0,scalingY:1},to:{scalingX:1,scalingY:1}}}function yrt(t){return(e,i)=>t?{scalingCenterY:i.scaledValues.medianValue}:{scalingCenterX:i.scaledValues.medianValue}}var{Path:brt,Scalable:xrt,ExtendedPath2D:vrt,BBox:Fd,clippedRoundRect:w_}=j,Gn=class extends xrt(brt){constructor(){super(...arguments),this.wickPath=new vrt,this.horizontal=!1,this.center=0,this.thickness=0,this.min=0,this.q1=0,this.median=0,this.q3=0,this.max=0,this.cornerRadius=0,this.crisp=!1,this.strokeAlignment=0,this.wickStroke=void 0,this.wickStrokeWidth=void 0,this.wickStrokeOpacity=void 0,this.capLengthRatio=1,this.wickStrokeAlignment=0}computeBBox(){const{horizontal:t,center:e,thickness:i,min:n,max:s}=this;return t?new Fd(Math.min(n,s),e-i/2,Math.abs(s-n),i):new Fd(e-i/2,Math.min(n,s),i,Math.abs(s-n))}computeDefaultGradientFillBBox(){const{horizontal:t,center:e,thickness:i,q1:n,q3:s}=this;return t?new Fd(Math.min(n,s),e-i/2,Math.abs(s-n),i):new Fd(e-i/2,Math.min(n,s),i,Math.abs(s-n))}isPointInPath(t,e){return this.getBBox().containsPoint(t,e)}distanceSquared(t,e){return this.getBBox().distanceSquared(t,e)}get midPoint(){return this.horizontal?{x:(this.min+this.max)/2,y:this.center}:{x:this.center,y:(this.min+this.max)/2}}alignedCoordinates(){const{thickness:t,crisp:e}=this;let{center:i,min:n,q1:s,median:a,q3:o,max:r}=this,l=i-t/2,c=i+t/2;if(e&&t>1){n=this.align(n),s=this.align(s),a=this.align(a),o=this.align(o),r=n+this.align(n,r-n);const u=this.align(t/2);i=this.align(i),l=i-u,c=i+u}return{center:i,x0:l,x1:c,min:n,max:r,q1:s,median:a,q3:o}}updatePath(){const{path:t,stroke:e,strokeWidth:i,strokeOpacity:n,lineDash:s,lineDashOffset:a,wickStroke:o,wickStrokeWidth:r,wickStrokeOpacity:l,wickLineDash:c,wickLineDashOffset:u,strokeAlignment:d,cornerRadius:g,capLengthRatio:f,horizontal:y}=this,{center:x,x0:S,x1:D,min:A,max:I,q1:w,median:N,q3:O}=this.alignedCoordinates(),L=this.layerManager?.canvas.pixelRatio??1,R=this.wickStrokeAlignment>0?L/this.wickStrokeAlignment/2%1:0;this.path.clear(),this.wickPath.clear();const B=o!=null&&o!==e||r!=null&&r!==i||l!=null&&l!==n||c!=null&&c!==s||u!=null&&u!==a?this.wickPath:t;if(Math.abs(D-S)<=3){zg(B,y,x,A),Bg(B,y,x,I);return}const F=Math.min(A,I),H=Math.max(A,I),$=Math.min(w,O),Y=Math.max(w,O),U=x-Math.abs((D-S)*f)/2,V=x+Math.abs((D-S)*f)/2;zg(B,y,U,F-R),Bg(B,y,V,F-R),zg(B,y,x-R,F-R),Bg(B,y,x-R,$+i/2),zg(B,y,x-R,H+R),Bg(B,y,x-R,Y-i/2),zg(B,y,U,H+R),Bg(B,y,V,H+R);const Z=i/2+d,W=i/2-d,q=Y-$-2*W;if(q>0){const nt=S+Z,G=$+W,et=D-S-2*Z,st={topLeft:g,topRight:g,bottomRight:g,bottomLeft:g};N_(t,y,nt,G,et,q,st,new Fd(nt,G,et,N-G)),N_(t,y,nt,G,et,q,st,new Fd(nt,N,et,G+q-N))}else{const nt=($+Y)/2;zg(t,y,S,nt),Bg(t,y,D,nt)}}drawPath(t){super.drawPath(t);const{wickPath:e}=this;if(e.isEmpty())return;const{stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,wickStroke:r=i,wickStrokeWidth:l=n,wickStrokeOpacity:c=s,wickLineDash:u=a,wickLineDashOffset:d=o}=this;l!==0&&(t.globalAlpha*=c,typeof r=="string"&&(t.strokeStyle=r),t.lineWidth=l,u!=null&&t.setLineDash([...u]),t.lineDashOffset=d,t.stroke(e.getPath2D()))}};M([ut()],Gn.prototype,"horizontal");M([ut()],Gn.prototype,"center");M([ut()],Gn.prototype,"thickness");M([ut()],Gn.prototype,"min");M([ut()],Gn.prototype,"q1");M([ut()],Gn.prototype,"median");M([ut()],Gn.prototype,"q3");M([ut()],Gn.prototype,"max");M([ut()],Gn.prototype,"cornerRadius");M([ut()],Gn.prototype,"crisp");M([ut()],Gn.prototype,"strokeAlignment");M([ut()],Gn.prototype,"wickStroke");M([ut()],Gn.prototype,"wickStrokeWidth");M([ut()],Gn.prototype,"wickStrokeOpacity");M([Vx()],Gn.prototype,"wickLineDash");M([ut()],Gn.prototype,"wickLineDashOffset");M([ut()],Gn.prototype,"capLengthRatio");M([ut()],Gn.prototype,"wickStrokeAlignment");function zg(t,e,i,n){e?t.moveTo(n,i):t.moveTo(i,n)}function Bg(t,e,i,n){e?t.lineTo(n,i):t.lineTo(i,n)}function N_(t,e,i,n,s,a,o,r){e?w_(t,n,i,a,s,o,r==null?void 0:new Fd(r.y,r.x,r.height,r.width)):w_(t,i,n,s,a,o,r)}var{AbstractBarSeriesProperties:Srt,makeSeriesTooltip:Mrt}=j,ZK=class extends xt{constructor(){super(...arguments),this.lengthRatio=.5}};M([b],ZK.prototype,"lengthRatio");var Nm=class extends xt{};M([b],Nm.prototype,"stroke");M([b],Nm.prototype,"strokeWidth");M([b],Nm.prototype,"strokeOpacity");M([b],Nm.prototype,"lineDash");M([b],Nm.prototype,"lineDashOffset");var fi=class extends Srt{constructor(){super(...arguments),this.fill="#c16068",this.fillOpacity=1,this.stroke="#333",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.cap=new ZK,this.whisker=new Nm,this.tooltip=Mrt()}toJson(){const{stroke:t,strokeWidth:e,strokeOpacity:i,lineDash:n,lineDashOffset:s}=this,a=super.toJson();return a.whisker=Et(a.whisker,{stroke:t,strokeWidth:e,strokeOpacity:i,lineDash:n,lineDashOffset:s}),a}};M([b],fi.prototype,"xKey");M([b],fi.prototype,"minKey");M([b],fi.prototype,"q1Key");M([b],fi.prototype,"medianKey");M([b],fi.prototype,"q3Key");M([b],fi.prototype,"maxKey");M([b],fi.prototype,"xName");M([b],fi.prototype,"yName");M([b],fi.prototype,"minName");M([b],fi.prototype,"q1Name");M([b],fi.prototype,"medianName");M([b],fi.prototype,"q3Name");M([b],fi.prototype,"maxName");M([b],fi.prototype,"fill");M([b],fi.prototype,"fillOpacity");M([b],fi.prototype,"stroke");M([b],fi.prototype,"strokeWidth");M([b],fi.prototype,"strokeOpacity");M([b],fi.prototype,"lineDash");M([b],fi.prototype,"lineDashOffset");M([b],fi.prototype,"cornerRadius");M([b],fi.prototype,"styler");M([b],fi.prototype,"itemStyler");M([b],fi.prototype,"cap");M([b],fi.prototype,"whisker");M([b],fi.prototype,"tooltip");var{fixNumericExtent:Drt,keyProperty:Art,SeriesNodePickMode:T_,SMALLEST_KEY_INTERVAL:Irt,valueProperty:Fy,diff:krt,animationValidation:Crt,computeBarFocusBounds:wrt,createDatumId:L_,HighlightState:dw,motion:O_,getItemStyles:Nrt,calculateSegments:Trt,toHighlightString:Lrt,processedDataIsAnimatable:Ort,upsertNodeDatum:Ert}=j,Rrt=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.xKey=n.properties.xKey,this.minKey=n.properties.minKey,this.q1Key=n.properties.q1Key,this.medianKey=n.properties.medianKey,this.q3Key=n.properties.q3Key,this.maxKey=n.properties.maxKey}},qK=class extends j.AbstractBarSeries{constructor(t){super({moduleCtx:t,pickModes:[T_.NEAREST_NODE,T_.EXACT_SHAPE_MATCH],propertyKeys:{x:["xKey"],y:["medianKey","q1Key","q3Key","minKey","maxKey"]},propertyNames:{x:["xName"],y:["medianName","q1Name","q3Name","minName","maxName"]},categoryKey:"xValue",pathsPerSeries:[]}),this.properties=new fi,this.NodeEvent=Rrt}async processData(t){if(!this.visible)return;const{xKey:e,minKey:i,q1Key:n,medianKey:s,q3Key:a,maxKey:o}=this.properties,r=!this.ctx.animationManager.isSkipped(),l=this.getCategoryAxis()?.scale,c=this.getValueAxis()?.scale,{isContinuousX:u,xScaleType:d,yScaleType:g}=this.getScaleInformation({xScale:l,yScale:c}),f=[];this.needsDataModelDiff()&&this.processedData&&f.push(krt(this.id,this.processedData)),r&&f.push(Crt());const y=this.properties.allowNullKeys??!1,{processedData:x}=await this.requestDataModel(t,this.data,{props:[Art(e,d,{id:"xValue",allowNullKey:y}),Fy(i,g,{id:"minValue"}),Fy(n,g,{id:"q1Value"}),Fy(s,g,{id:"medianValue"}),Fy(a,g,{id:"q3Value"}),Fy(o,g,{id:"maxValue"}),...u?[Irt]:[],...f]});this.smallestDataInterval=x.reduced?.smallestKeyInterval,this.animationState.transition("updateData")}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(!(e&&i))return{domain:[]};if(t!==this.getBarDirection()){const{index:s,def:a}=i.resolveProcessedDataDefById(this,"xValue"),o=e.domain.keys[s];if(a.type==="key"&&a.valueType==="category"){const r=i.getKeySortMetadata(this,"xValue",e);return{domain:o,sortMetadata:r}}return{domain:this.padBandExtent(o)}}const n=this.domainForClippedRange(t,["minValue","maxValue"],"xValue");return{domain:Drt(n)}}getSeriesRange(t,e){return this.domainForVisibleRange(z.Y,["maxValue","minValue"],"xValue",e)}createNodeDatumContext(t,e){const{dataModel:i,processedData:n,contextNodeData:s}=this;if(!i||!n)return;const a=s?.nodeData!=null&&n.changeDescription!=null,o=!this.ctx.animationManager.isSkipped(),{groupOffset:r,barOffset:l,barWidth:c}=this.getBarDimensions();return{xAxis:t,yAxis:e,rawData:n.dataSources.get(this.id)?.data??[],xValues:i.resolveKeysById(this,"xValue",n),minValues:i.resolveColumnById(this,"minValue",n),q1Values:i.resolveColumnById(this,"q1Value",n),medianValues:i.resolveColumnById(this,"medianValue",n),q3Values:i.resolveColumnById(this,"q3Value",n),maxValues:i.resolveColumnById(this,"maxValue",n),xScale:t.scale,yScale:e.scale,groupOffset:r,barOffset:l,barWidth:c,isVertical:this.isVertical(),xKey:this.properties.xKey,animationEnabled:o,canIncrementallyUpdate:a,nodes:a?s.nodeData:[],nodeIndex:0}}validateBoxPlotValues(t,e,i,n,s){return[t,e,i,n,s].every(a=>typeof a=="number")&&t<=e&&e<=i&&i<=n&&n<=s}computeScaledValues(t,e,i){const n=t.xScale.convert(t.xValues[i]);return Number.isFinite(n)?(e.xValue=n+t.groupOffset+t.barOffset+t.barWidth/2,e.minValue=t.yScale.convert(t.minValues[i]),e.q1Value=t.yScale.convert(t.q1Values[i]),e.medianValue=t.yScale.convert(t.medianValues[i]),e.q3Value=t.yScale.convert(t.q3Values[i]),e.maxValue=t.yScale.convert(t.maxValues[i]),!0):!1}createSkeletonNodeDatum(t,e){return{series:this,datum:e.datum,datumIndex:e.datumIndex,xKey:t.xKey,bandwidth:t.barWidth,scaledValues:{xValue:0,minValue:0,q1Value:0,medianValue:0,q3Value:0,maxValue:0},midPoint:{x:0,y:0},focusRect:{x:0,y:0,width:0,height:0}}}updateNodeDatum(t,e,i){const{isVertical:n,barWidth:s}=t,a=i.scaledValues,o=e;o.datum=i.datum,o.datumIndex=i.datumIndex,o.bandwidth=s;const r=o.scaledValues;r.xValue=a.xValue,r.minValue=a.minValue,r.q1Value=a.q1Value,r.medianValue=a.medianValue,r.q3Value=a.q3Value,r.maxValue=a.maxValue;const l=Math.abs(a.q3Value-a.q1Value),c=a.xValue,u=Math.min(a.q3Value,a.q1Value)+l/2,d=n?c:u,g=n?u:c;o.midPoint?(o.midPoint.x=d,o.midPoint.y=g):o.midPoint={x:d,y:g};const f=o.focusRect;n?(f.x=d-s/2,f.y=a.minValue,f.width=s,f.height=a.maxValue-a.minValue):(f.x=a.minValue,f.y=g-s/2,f.width=a.maxValue-a.minValue,f.height=s)}createNodeDatum(t,e){const i=this.createSkeletonNodeDatum(t,e);return this.updateNodeDatum(t,i,e),i}initializeResult(t){return{itemId:this.properties.xKey,nodeData:t.nodes,labelData:[],scales:this.calculateScaling(),visible:this.visible,groupScale:void 0,styles:void 0,segments:void 0}}populateNodeData(t){const e={xValue:0,minValue:0,q1Value:0,medianValue:0,q3Value:0,maxValue:0},i={datumIndex:0,datum:void 0,scaledValues:e};for(let n=0;nthis.createNodeDatum(d,g),(d,g,f)=>this.updateNodeDatum(d,g,f)))}}finalizeNodeData(t){t.canIncrementallyUpdate&&t.nodeIndexL_(i.datumIndex)):t.datumSelection.update(e)}makeStylerParams(t){const{id:e}=this,{cornerRadius:i,cap:{lengthRatio:n},fill:s,fillOpacity:a,lineDash:o,lineDashOffset:r,stroke:l,strokeOpacity:c,strokeWidth:u,maxKey:d,maxName:g,medianKey:f,medianName:y,minKey:x,minName:S,q1Key:D,q1Name:A,q3Key:I,q3Name:w,whisker:{lineDash:N,lineDashOffset:O,stroke:L,strokeOpacity:R,strokeWidth:P},xKey:B,xName:F,yName:H}=this.properties,$=Lrt(t??dw.None);return{cap:{lengthRatio:n},cornerRadius:i,fill:s,fillOpacity:a,highlightState:$,lineDash:o,lineDashOffset:r,maxKey:d,maxName:g??d,medianKey:f,medianName:y??f,minKey:x,minName:S??x,q1Key:D,q1Name:A??D,q3Key:I,q3Name:w??I,seriesId:e,stroke:l,strokeOpacity:c,strokeWidth:u,whisker:{lineDash:N??o,lineDashOffset:O??r,stroke:L??l,strokeOpacity:R??c,strokeWidth:P??u},xKey:B,xName:F??B,yName:H}}getStyle(t,e){const{cap:i,cornerRadius:n,fill:s,fillOpacity:a,lineDash:o,lineDashOffset:r,stroke:l,strokeOpacity:c,strokeWidth:u,styler:d,whisker:g}=this.properties;let f={};if(!t&&d){const y=this.makeStylerParams(e);f=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.cachedCallWithContext(d,y)??{},{pick:!1})??{}}return{cornerRadius:f.cornerRadius??n,fill:f.fill??s,fillOpacity:f.fillOpacity??a,lineDash:f.lineDash??o,lineDashOffset:f.lineDashOffset??r,opacity:1,stroke:f.stroke??l,strokeOpacity:f.strokeOpacity??c,strokeWidth:f.strokeWidth??u,cap:{lengthRatio:f.cap?.lengthRatio??i.lengthRatio},whisker:{lineDash:f.whisker?.lineDash??g.lineDash,lineDashOffset:f.whisker?.lineDashOffset??g.lineDashOffset,stroke:f.whisker?.stroke??g.stroke,strokeOpacity:f.whisker?.strokeOpacity??g.strokeOpacity,strokeWidth:f.whisker?.strokeWidth??g.strokeWidth}}}getItemStyle(t,e,i){const{properties:n}=this,{itemStyler:s}=n,a=this.getHighlightStyle(e,t,i);let o=Et(a,this.getStyle(t===void 0,i));if(s!=null&&t!=null){const g=this.cachedDatumCallback(L_(t,e?"highlight":"node"),()=>{const f=this.makeItemStylerParams(t,e,o);return this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.callWithContext(s,f))});g&&(o=Et(g,o))}const{stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}=o;return o.whisker=Et(o.whisker,{stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}),o}makeItemStylerParams(t,e,i){const{id:n}=this,{xKey:s,minKey:a,q1Key:o,medianKey:r,q3Key:l,maxKey:c}=this.properties,u=this.processedData?.dataSources.get(n)?.data[t],d=this.ctx.highlightManager?.getActiveHighlight(),g=this.getHighlightStateString(d,e,t),f=this.filterItemStylerFillParams(i.fill)??i.fill;return{seriesId:n,datum:u,xKey:s,minKey:a,q1Key:o,medianKey:r,q3Key:l,maxKey:c,highlightState:g,...i,fill:f}}updateDatumStyles({datumSelection:t,isHighlight:e}){const i=this.ctx.highlightManager.getActiveHighlight();t.each((n,s)=>{const a=this.getHighlightState(i,e,s.datumIndex);s.style=this.getItemStyle(s.datumIndex,e,a)})}updateDatumNodes({datumSelection:t,isHighlight:e}){const{contextNodeData:i,properties:n}=this;if(!i)return;const s=this.isVertical(),a=this.ctx.highlightManager.getActiveHighlight(),o=this.getShapeFillBBox(),r=this.getStyle(!1,dw.None).strokeWidth/2,l=n.whisker.strokeWidth??n.strokeWidth;t.each((c,u)=>{const d=u.style??i.styles[this.getHighlightState(a,e,u.datumIndex)];c.setFillProperties(d.fill,o);const g=d.opacity??1,f=d.whisker?.strokeOpacity??d.strokeOpacity;c.fill=d.fill,c.fillOpacity=d.fillOpacity*g,c.stroke=d.stroke,c.strokeWidth=d.strokeWidth,c.strokeOpacity=d.strokeOpacity*g,c.lineDash=d.lineDash,c.lineDashOffset=d.lineDashOffset,c.wickStroke=d.whisker.stroke,c.wickStrokeWidth=d.whisker.strokeWidth,c.wickStrokeOpacity=f*g,c.wickLineDash=d.whisker.lineDash,c.wickLineDashOffset=d.whisker.lineDashOffset,c.cornerRadius=d.cornerRadius,c.crisp=!0,c.horizontal=!s,c.center=u.scaledValues.xValue,c.thickness=u.bandwidth,c.min=u.scaledValues.minValue,c.q1=u.scaledValues.q1Value,c.median=u.scaledValues.medianValue,c.q3=u.scaledValues.q3Value,c.max=u.scaledValues.maxValue,c.capLengthRatio=d.cap.lengthRatio,c.strokeAlignment=r,c.wickStrokeAlignment=l})}updateLabelNodes(){}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t;return i.update(e)}nodeFactory(){return new Gn}computeFocusBounds({datumIndex:t}){return wrt(this,this.contextNodeData?.nodeData[t].focusRect)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.styler!=null}};qK.className="BoxPlotSeries";qK.type="box-plot";var{boxPlotSeriesThemeableOptionsDef:Prt}=j,zrt={..._e,...Prt,type:ht(Jt("box-plot")),xKey:ht(K),minKey:ht(K),q1Key:ht(K),medianKey:ht(K),q3Key:ht(K),maxKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,minName:K,q1Name:K,medianName:K,q3Name:K,maxName:K,grouped:J,legendItemName:K,segmentation:Pc,width:bo,widthRatio:Ot};ie.NUMBER+"",ie.CATEGORY+"";var{predictCartesianNonPrimitiveAxis:bbt}=j,Brt={options:zrt,axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},axisKeysFlipped:{[z.X]:"yKeyAxis",[z.Y]:"xKeyAxis"}};function Vrt(t,e,i,n,s,a,o,r){const[l,c]=gn(t,s);return Eu([l,c],e,i,n,{smallestKeyInterval:a,xNeedsValueOf:o,yNeedsValueOf:r})}var _rt=Pu(Vrt);function Frt(t,e,i,n,s){const a=e.resolveKeysById(n,"xValue",i),o=e.resolveColumnById(n,"highValue",i),r=e.resolveColumnById(n,"lowValue",i),l=e.getDomain(n,"xValue","key",i),c=e.resolveColumnNeedsValueOf(n,"xValue",i),u=e.resolveColumnNeedsValueOf(n,"highValue",i)??e.resolveColumnNeedsValueOf(n,"lowValue",i);if(s){const[d,g]=gn(t,l);return Eu([d,g],a,o,r,{smallestKeyInterval:i.reduced?.smallestKeyInterval,xNeedsValueOf:c,yNeedsValueOf:u,existingFilters:s})}return _rt(t,a,o,r,l,i.reduced?.smallestKeyInterval,c,u)}function Hrt(t,e,i,n,s,a){const o=e.resolveKeysById(n,"xValue",i),r=e.resolveColumnById(n,"highValue",i),l=e.resolveColumnById(n,"lowValue",i),c=e.getDomain(n,"xValue","key",i),u=e.resolveColumnNeedsValueOf(n,"xValue",i),d=e.resolveColumnNeedsValueOf(n,"highValue",i)??e.resolveColumnNeedsValueOf(n,"lowValue",i),[g,f]=gn(t,c);return bD([g,f],o,r,l,{smallestKeyInterval:i.reduced?.smallestKeyInterval,targetRange:s,xNeedsValueOf:u,yNeedsValueOf:d,existingFilters:a})}var{Path:jrt,BBox:Grt}=j,Qc=class extends jrt{constructor(){super(...arguments),this.centerX=0,this.y=0,this.width=0,this.height=0,this.yOpen=0,this.yClose=0,this.crisp=!1}setStaticProperties(t,e,i,n,s,a,o){this.__centerX=t,this.__width=e,this.__y=i,this.__height=n,this.__yOpen=s,this.__yClose=a,this.__crisp=o,this.dirtyPath=!0,this.markDirty()}computeBBox(){const{__centerX:t,__y:e,__width:i,__height:n}=this;return new Grt(t-i/2,e,i,n)}isPointInPath(t,e){return this.getBBox().containsPoint(t,e)}distanceSquared(t,e){return this.getBBox().distanceSquared(t,e)}get midPoint(){return{x:this.__centerX,y:this.__y+this.__height/2}}alignedCoordinates(){const{__y:t,__width:e,__height:i,__crisp:n}=this;let{__centerX:s,__yOpen:a,__yClose:o}=this,r=s-e/2,l=s+e/2,c=t,u=t+i;if(n&&e>1){if(s=this.align(s),a<=o){const g=this.align(a,o-a);a=this.align(a),o=a+g}else{const g=this.align(o,a-o);o=this.align(o),a=o+g}const d=this.align(e/2);r=s-d,l=s+d,c=this.align(t),u=c+this.align(c,i)}return{centerX:s,x0:r,x1:l,y0:c,y1:u,yOpen:a,yClose:o}}executeStroke(t,e){const{__width:i,strokeWidth:n}=this;i0?l/this.__strokeAlignment/2%1:0;t.clear(),t.moveTo(e-c,s),t.lineTo(e-c,a),Math.abs(n-i)>1&&(t.moveTo(i,o-c),t.lineTo(e-c,o-c),t.moveTo(e-c,r-c),t.lineTo(n,r-c))}};M([fe()],QK.prototype,"strokeAlignment");var Urt=Ca,Wrt=Ta,Krt=Na,E_=wa,R_=er,{AggregationManager:Yrt,fixNumericExtent:$rt,keyProperty:Xrt,createDatumId:pw,SeriesNodePickMode:P_,SMALLEST_KEY_INTERVAL:Zrt,valueProperty:dS,diff:qrt,animationValidation:Qrt,computeBarFocusBounds:Jrt,visibleRangeIndices:z_,BandScale:tlt,processedDataIsAnimatable:gw,getItemStylesPerItemId:elt}=j,ilt=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.xKey=n.properties.xKey,this.openKey=n.properties.openKey,this.closeKey=n.properties.closeKey,this.highKey=n.properties.highKey,this.lowKey=n.properties.lowKey}};function nlt(t){for(const e of t){const i=e.nodes();e.batchedUpdate(function(){for(const s of i){const a=s.datum;a!=null&&s.setStaticProperties(a.centerX,a.width,a.y,a.height,a.yOpen,a.yClose,a.crisp)}e.cleanup()})}}var JK=class extends j.AbstractBarSeries{constructor(t){super({moduleCtx:t,pickModes:[P_.AXIS_ALIGNED,P_.EXACT_SHAPE_MATCH],propertyKeys:{x:["xKey"],y:["lowKey","highKey","openKey","closeKey"]},propertyNames:{x:["xName"],y:["lowName","highName","openName","closeName"]},categoryKey:"xValue",pathsPerSeries:[]}),this.NodeEvent=ilt,this.aggregationManager=new Yrt}async processData(t){if(!this.visible)return;const{xKey:e,openKey:i,closeKey:n,highKey:s,lowKey:a}=this.properties,o=!this.ctx.animationManager.isSkipped(),r=this.getCategoryAxis()?.scale,l=this.getValueAxis()?.scale,{isContinuousX:c,xScaleType:u,yScaleType:d}=this.getScaleInformation({xScale:r,yScale:l}),g=[];this.needsDataModelDiff()&&this.processedData&&g.push(qrt(this.id,this.processedData)),o&&g.push(Qrt()),i&&g.push(dS(i,d,{id:"openValue",invalidValue:void 0,missingValue:void 0}));const f=this.properties.allowNullKeys??!1,{dataModel:y,processedData:x}=await this.requestDataModel(t,this.data,{props:[Xrt(e,u,{id:"xValue",allowNullKey:f}),dS(n,d,{id:"closeValue"}),dS(s,d,{id:"highValue"}),dS(a,d,{id:"lowValue"}),...c?[Zrt]:[],...g]});this.smallestDataInterval=x.reduced?.smallestKeyInterval,this.aggregateData(y,x),this.animationState.transition("updateData")}aggregateData(t,e){if(this.aggregationManager.markStale(e.input.count),e.type!=="ungrouped"||gw(e))return;const i=this.axes[z.X];if(i==null)return;const n=this.estimateTargetRange();this.aggregationManager.aggregate({computePartial:a=>Hrt(i.scale.type,t,e,this,n,a),computeFull:a=>Frt(i.scale.type,t,e,this,a),targetRange:n});const s=this.aggregationManager.filters;s&&s.length>0&&Vr.record(`${this.type}:aggregation`,s.map(a=>a.maxRange))}estimateTargetRange(){const t=this.axes[z.X];if(!t)return-1;const[e,i]=t.scale.range;return Math.abs(i-e)}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(!(e&&i))return{domain:[]};if(t!==this.getBarDirection()){const{def:s}=i.resolveProcessedDataDefById(this,"xValue"),a=i.getDomain(this,"xValue","key",e);return s.type==="key"&&s.valueType==="category"?a:{domain:this.padBandExtent(a.domain)}}const n=this.domainForClippedRange(t,["highValue","lowValue"],"xValue");return{domain:$rt(n)}}getSeriesRange(t,e){return this.domainForVisibleRange(z.Y,["highValue","lowValue"],"xValue",e)}getZoomRangeFittingItems(t,e,i){return this.zoomFittingVisibleItems("xValue",["highValue","lowValue"],t,e,i)}getVisibleItems(t,e,i){return this.countVisibleItems("xValue",["highValue","lowValue"],t,e,i)}buildDatumContext(t,e){const{dataModel:i,processedData:n}=this;if(!i||!n)return;const s=n.dataSources.get(this.id)?.data??[];if(s.length===0)return;const a=t.scale,o=e.scale,r=tlt.is(a),[l,c]=a.range,u=Math.abs(c-l);this.aggregationManager.ensureLevelForRange(u);const d=this.aggregationManager.getFilterForRange(u),g=d==null,f=this.contextNodeData?.nodeData!=null&&(n.changeDescription!=null||!gw(n)||d!=null),{groupOffset:y,barOffset:x,barWidth:S}=this.getBarDimensions();return{rawData:s,xValues:i.resolveKeysById(this,"xValue",n),openValues:i.resolveColumnById(this,"openValue",n),closeValues:i.resolveColumnById(this,"closeValue",n),highValues:i.resolveColumnById(this,"highValue",n),lowValues:i.resolveColumnById(this,"lowValue",n),xScale:a,yScale:o,xAxis:t,yAxis:e,groupOffset:y,barOffset:x,barWidth:S,applyWidthOffset:r,crisp:g,xKey:this.properties.xKey,openKey:this.properties.openKey,closeKey:this.properties.closeKey,highKey:this.properties.highKey,lowKey:this.properties.lowKey,dataAggregationFilter:d,range:u,nodeDatumStateScratch:{datum:void 0,xValue:void 0,openValue:0,closeValue:0,highValue:0,lowValue:0,isRising:!0,itemType:"up"},canIncrementallyUpdate:f,nodeIndex:0,nodeData:f?this.contextNodeData.nodeData:[]}}prepareOhlcNodeDatumState(t,e){const i=t.xValues[e];if(i===void 0&&!this.properties.allowNullKeys)return;const n=t.openValues[e],s=t.closeValues[e],a=t.highValues[e],o=t.lowValues[e],r=o!=null&&o<=n&&o<=s,l=a!=null&&a>=n&&a>=s;if(!r){pt.warnOnce(`invalid low value for key [${t.lowKey}] in data element, low value cannot be higher than datum open or close values`);return}if(!l){pt.warnOnce(`invalid high value for key [${t.highKey}] in data element, high value cannot be lower than datum open or close values.`);return}const c=t.rawData[e],u=s>n,d=u?"up":"down",g=t.nodeDatumStateScratch;return g.datum=c,g.xValue=i,g.openValue=n,g.closeValue=s,g.highValue=a,g.lowValue=o,g.isRising=u,g.itemType=d,g}createSkeletonNodeDatum(t,e,i,n,s,a){const o=t.applyWidthOffset?s/2:0,r=n+o,l=t.yScale.convert(e.openValue),c=t.yScale.convert(e.closeValue),u=t.yScale.convert(e.highValue),d=t.yScale.convert(e.lowValue),g=Math.min(u,d),f=Math.max(u,d)-g;return{series:this,itemType:e.itemType,datum:e.datum,datumIndex:i,xKey:t.xKey,xValue:e.xValue,openValue:e.openValue,closeValue:e.closeValue,highValue:e.highValue,lowValue:e.lowValue,midPoint:{x:r,y:g+f/2},aggregatedValue:e.closeValue,isRising:e.isRising,centerX:r,width:s,y:g,height:f,yOpen:l,yClose:c,crisp:a}}updateNodeDatum(t,e,i,n,s,a,o){const r=e,l=t.applyWidthOffset?a/2:0,c=s+l,u=t.yScale.convert(i.openValue),d=t.yScale.convert(i.closeValue),g=t.yScale.convert(i.highValue),f=t.yScale.convert(i.lowValue),y=Math.min(g,f),x=Math.max(g,f)-y;r.datum=i.datum,r.datumIndex=n,r.itemType=i.itemType,r.xValue=i.xValue,r.openValue=i.openValue,r.closeValue=i.closeValue,r.highValue=i.highValue,r.lowValue=i.lowValue,r.aggregatedValue=i.closeValue,r.isRising=i.isRising,r.centerX=c,r.width=a,r.y=y,r.height=x,r.yOpen=u,r.yClose=d,r.crisp=o;const S=r.midPoint;S.x=c,S.y=y+x/2}upsertNodeDatum(t,e,i,n,s){const a=this.prepareOhlcNodeDatumState(t,e);if(!a)return;if(t.canIncrementallyUpdate&&t.nodeIndex{const r=n.xScale.convert(n.xValues[o]);return Number.isFinite(r)?r+n.groupOffset+(n.applyWidthOffset?n.barOffset:0):Number.NaN};if(n.dataAggregationFilter==null){const o=this.processedData.invalidData?.get(this.id);let[r,l]=z_(1,n.rawData.length,n.xAxis.range,c=>{const u=n.applyWidthOffset?0:-n.barWidth/2,d=a(c)+u;return[d,d+n.barWidth]});this.processedData.input.count<1e3&&(r=0,l=this.processedData.input.count);for(let c=r;c{const g=d*R_,f=r[g+E_],y=l[d];if(y===-1)return;const x=n.applyWidthOffset?0:-n.barWidth/2;return[a(y)+x,a(f)+x+n.barWidth]});for(let d=c;dA.openValue,A.itemType=A.isRising?"up":"down";const I=a(D),w=Math.abs(a(y)-a(f))+n.barWidth;if(n.canIncrementallyUpdate&&n.nodeIndexpw(i.xValue)):t.datumSelection.update(e)}updateLabelNodes(t){}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t;return i.update(e)}getItemStyle(t,e,i,n="up"){const{properties:s,dataModel:a,processedData:o}=this,{itemStyler:r}=s,l=this.getHighlightStyle(e,t,i);let u=Et(l,s.getStyle(n));if(r&&a!=null&&o!=null&&t!=null){const d=a.resolveKeysById(this,"xValue",o)[t],g=this.cachedDatumCallback(pw(pw(d),e?"highlight":"node"),()=>{const f=this.makeItemStylerParams(n,t,e,u);return this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`,"item",n],this.callWithContext(r,f))});g&&(u=Et(g,u))}return u}makeItemStylerParams(t,e,i,n){const{id:s,properties:a,processedData:o}=this,{xKey:r,openKey:l,closeKey:c,highKey:u,lowKey:d}=a,g=o.dataSources.get(s)?.data[e],f=this.ctx.highlightManager?.getActiveHighlight(),y=this.getHighlightStateString(f,i,e),x={seriesId:s,datum:g,itemType:t,xKey:r,openKey:l,closeKey:c,highKey:u,lowKey:d,highlightState:y,...n};return"fill"in x&&"fill"in n&&(x.fill=this.filterItemStylerFillParams(n.fill)??n.fill),x}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s}=this,{xKey:a,xName:o,yName:r,openKey:l,openName:c,highKey:u,highName:d,lowKey:g,lowName:f,closeKey:y,closeName:x,legendItemName:S,tooltip:D}=s,A=this.getCategoryAxis(),I=this.getValueAxis();if(!i||!n||!A||!I)return;const w=n.dataSources.get(this.id)?.data[t],N=i.resolveKeysById(this,"xValue",n)[t],O=i.resolveColumnById(this,"openValue",n)[t],L=i.resolveColumnById(this,"highValue",n)[t],R=i.resolveColumnById(this,"lowValue",n)[t],P=i.resolveColumnById(this,"closeValue",n)[t],B=this.properties.allowNullKeys??!1;if(N===void 0&&!B)return;const F=P>=O?"up":"down",H=this.properties.item[F],$=this.getItemStyle(t,!1),Y={fill:H.fill??H.stroke,fillOpacity:H.fillOpacity??H.strokeOpacity??1,stroke:H.stroke,strokeWidth:H.strokeWidth??1,strokeOpacity:H.strokeOpacity??1,lineDash:H.lineDash??[0],lineDashOffset:H.lineDashOffset??0};return this.formatTooltipWithContext(D,{heading:this.getAxisValueText(A,"tooltip",N,w,a,S),title:S,symbol:{marker:Y},data:[{label:c,fallbackLabel:l,value:this.getAxisValueText(I,"tooltip",O,w,l,S),missing:j.isTooltipValueMissing(O)},{label:d,fallbackLabel:u,value:this.getAxisValueText(I,"tooltip",L,w,u,S),missing:j.isTooltipValueMissing(L)},{label:f,fallbackLabel:g,value:this.getAxisValueText(I,"tooltip",R,w,g,S),missing:j.isTooltipValueMissing(R)},{label:x,fallbackLabel:y,value:this.getAxisValueText(I,"tooltip",P,w,y,S),missing:j.isTooltipValueMissing(P)}]},{seriesId:e,datum:w,title:r,itemType:F,xKey:a,xName:o,yName:r,openKey:l,openName:c,highKey:u,highName:d,lowKey:g,lowName:f,closeKey:y,closeName:x,...$})}computeFocusBounds(t){const e=this.getNodeData()?.at(t.datumIndex);if(e==null)return;const{centerX:i,y:n,width:s,height:a}=e,o={x:i-s/2,y:n,width:s,height:a};return Jrt(this,o)}},{ExtendedPath2D:slt,BBox:alt}=j,jp=class extends Qc{constructor(){super(...arguments),this.wickPath=new slt,this.wickStroke=void 0,this.wickStrokeWidth=void 0,this.wickStrokeOpacity=void 0,this.wickStrokeAlignment=0}setWickProperties(t,e,i,n,s){this.__wickStroke=t,this.__wickStrokeWidth=e,this.__wickStrokeOpacity=i,this.wickLineDash=n,this.__wickLineDashOffset=s,this.dirtyPath=!0,this.markDirty()}computeDefaultGradientFillBBox(){const{__width:t,__centerX:e,__yOpen:i,__yClose:n}=this,s=Math.min(i,n),o=Math.max(i,n)-s,r=e-t/2,l=e+t/2;return new alt(r,s,l-r,o)}updatePath(){const{path:t,stroke:e,strokeWidth:i,strokeOpacity:n,lineDash:s,lineDashOffset:a,__wickStroke:o,__wickStrokeWidth:r,__wickStrokeOpacity:l,wickLineDash:c,__wickLineDashOffset:u}=this,{centerX:d,x0:g,x1:f,y0:y,y1:x,yOpen:S,yClose:D}=this.alignedCoordinates(),A=this.layerManager?.canvas.pixelRatio??1,I=this.__wickStrokeAlignment>0?A/this.__wickStrokeAlignment/2%1:0;this.path.clear(),this.wickPath.clear();const N=o!=null&&o!==e||r!=null&&r!==i||l!=null&&l!==n||c!=null&&c!==s||u!=null&&u!==a?this.wickPath:t;if(Math.abs(f-g)<=3){N.moveTo(d-I,y),N.lineTo(d-I,x);return}const O=Math.min(S,D),L=Math.max(S,D),R=i/2;N.moveTo(d-I,y),N.lineTo(d-I,O+R),N.moveTo(d-I,x),N.lineTo(d-I,L-R);const P=L-O-2*R;if(P>0)t.rect(g+R,O+R,f-g-2*R,P);else{const B=(O+L)/2;t.moveTo(g,B),t.lineTo(f,B)}}drawPath(t){super.drawPath(t);const{wickPath:e}=this;if(e.isEmpty())return;const{stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,__wickStroke:r=i,__wickStrokeWidth:l=n,__wickStrokeOpacity:c=s,wickLineDash:u=a,__wickLineDashOffset:d=o}=this;l!==0&&(t.globalAlpha*=c,typeof r=="string"&&(t.strokeStyle=r),t.lineWidth=l,u!=null&&t.setLineDash([...u]),t.lineDashOffset=d,t.stroke(e.getPath2D()))}};M([fe()],jp.prototype,"wickStroke");M([fe()],jp.prototype,"wickStrokeWidth");M([fe()],jp.prototype,"wickStrokeOpacity");M([Vx()],jp.prototype,"wickLineDash");M([fe()],jp.prototype,"wickLineDashOffset");M([fe()],jp.prototype,"wickStrokeAlignment");var{AbstractBarSeriesProperties:olt,makeSeriesTooltip:rlt}=j,fp=class extends xt{constructor(){super(...arguments),this.stroke="#333",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}};M([b],fp.prototype,"stroke");M([b],fp.prototype,"strokeWidth");M([b],fp.prototype,"strokeOpacity");M([b],fp.prototype,"lineDash");M([b],fp.prototype,"lineDashOffset");var TO=class extends xt{constructor(){super(...arguments),this.up=new fp,this.down=new fp}};M([b],TO.prototype,"up");M([b],TO.prototype,"down");var Io=class extends olt{};M([b],Io.prototype,"xKey");M([b],Io.prototype,"openKey");M([b],Io.prototype,"closeKey");M([b],Io.prototype,"highKey");M([b],Io.prototype,"lowKey");M([b],Io.prototype,"xName");M([b],Io.prototype,"yName");M([b],Io.prototype,"openName");M([b],Io.prototype,"closeName");M([b],Io.prototype,"highName");M([b],Io.prototype,"lowName");var EA=class extends Io{constructor(){super(...arguments),this.tooltip=rlt(),this.item=new TO}getStyle(t){const{strokeWidth:e,strokeOpacity:i,stroke:n,lineDash:s,lineDashOffset:a}=this.item[t];return{stroke:n,strokeWidth:e,strokeOpacity:i,lineDash:s,lineDashOffset:a,opacity:1}}};M([b],EA.prototype,"tooltip");M([b],EA.prototype,"item");M([b],EA.prototype,"itemStyler");var{makeSeriesTooltip:llt}=j,Tm=class extends xt{};M([b],Tm.prototype,"stroke");M([b],Tm.prototype,"strokeWidth");M([b],Tm.prototype,"strokeOpacity");M([b],Tm.prototype,"lineDash");M([b],Tm.prototype,"lineDashOffset");var zr=class extends xt{constructor(){super(...arguments),this.fill="#c16068",this.fillOpacity=1,this.stroke="#333",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.wick=new Tm}};M([b],zr.prototype,"fill");M([b],zr.prototype,"fillOpacity");M([b],zr.prototype,"stroke");M([b],zr.prototype,"strokeWidth");M([b],zr.prototype,"strokeOpacity");M([b],zr.prototype,"lineDash");M([b],zr.prototype,"lineDashOffset");M([b],zr.prototype,"cornerRadius");M([b],zr.prototype,"wick");var LO=class extends xt{constructor(){super(...arguments),this.up=new zr,this.down=new zr}};M([b],LO.prototype,"up");M([b],LO.prototype,"down");var RA=class extends Io{constructor(){super(...arguments),this.item=new LO,this.tooltip=llt()}getStyle(t){const{fill:e,fillOpacity:i,strokeWidth:n,strokeOpacity:s,stroke:a,lineDash:o,lineDashOffset:r,cornerRadius:l,wick:c}=this.item[t];return{fill:e,fillOpacity:i,stroke:a,strokeWidth:n,strokeOpacity:s,lineDash:o,lineDashOffset:r,cornerRadius:l,opacity:1,wick:c}}};M([b],RA.prototype,"item");M([b],RA.prototype,"tooltip");M([b],RA.prototype,"itemStyler");var t5=class extends JK{constructor(){super(...arguments),this.properties=new RA}nodeFactory(){const t=new jp;return t.lineCap="butt",t}updateDatumStyles({datumSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getItemStyle(n.datumIndex,e,void 0,n.itemType)})}updateDatumNodes({datumSelection:t,isHighlight:e}){const{contextNodeData:i,properties:n}=this;if(!i)return;const s=this.ctx.highlightManager.getActiveHighlight(),{up:a,down:o}=n.item,r=this.getShapeFillBBox(),l=this;t.each(function(u,d){const{centerX:g,width:f,y,height:x,yOpen:S,yClose:D,crisp:A}=d,I=d.isRising?a:o,w=l.getHighlightState(s,e,d.datumIndex),N=d.style??i.styles[d.itemType][w];u.setStaticProperties(g,f,y,x,S,D,A),u.setStyleProperties(N,r);const O=N?.wick;u.setWickProperties(O?.stroke,O?.strokeWidth,O?.strokeOpacity,O?.lineDash,O?.lineDashOffset),u.wickStrokeAlignment=I.wick.strokeWidth??I.strokeWidth})}legendItemSymbol(){const{up:t,down:e}=this.properties.item,i=an(t.fill)?t.fill.colorStops.map(o=>typeof o=="string"?o:{color:o.color,stop:o.stop==null?void 0:o.stop*.5}):[{color:ir(t.fill)||ml(t.fill)?t.stroke:t.fill,stop:0},{color:ir(t.fill)||ml(t.fill)?t.stroke:t.fill,stop:.5}],n=an(e.fill)?e.fill.colorStops.map(o=>typeof o=="string"?o:{color:o.color,stop:o.stop==null?void 0:o.stop*.5}):[{color:ir(e.fill)||ml(e.fill)?e.stroke:e.fill,stop:.5}],s={type:"gradient",gradient:"linear",rotation:90,colorStops:[...i,...n],reverse:!1},a={type:"gradient",gradient:"linear",rotation:90,colorStops:[{color:t.stroke,stop:0},{color:t.stroke,stop:.5},{color:e.stroke,stop:.5}],reverse:!1};return{marker:{fill:s,fillOpacity:t.fillOpacity,stroke:a,strokeWidth:t.strokeWidth??1,strokeOpacity:t.strokeOpacity??1,lineDash:t.lineDash,lineDashOffset:t.lineDashOffset}}}getLegendData(t){const{id:e,data:i,visible:n,ctx:{legendManager:s}}=this,{xKey:a,yName:o,showInLegend:r,legendItemName:l}=this.properties;return!i?.data.length||!a||t!=="category"?[]:[{legendType:"category",id:e,itemId:e,seriesId:e,enabled:n&&s.getItemEnabled({seriesId:e,itemId:e}),label:{text:l??o??e},symbol:this.legendItemSymbol(),legendItemName:l,hideInLegend:!r}]}hasItemStylers(){return this.properties.itemStyler!=null}};t5.className="CandleStickSeries";t5.type="candlestick";var{candlestickSeriesThemeableOptionsDef:clt}=j,OO={..._e,...clt,type:ht(Jt("candlestick")),xKey:ht(K),openKey:ht(K),highKey:ht(K),lowKey:ht(K),closeKey:ht(K),xName:K,yName:K,openName:K,highName:K,lowName:K,closeName:K,xKeyAxis:K,yKeyAxis:K};OO.pickOutsideVisibleMinorAxis=Mt(J);OO.focusPriority=Mt(gt);function B_(t){return{fill:{$applySwitch:[{$path:"type"},{$if:[{$eq:[{$palette:"type"},"user-indexed"]},t==="up"?"transparent":{$palette:"fill"},{$palette:`${t}.fill`}]},["gradient",B1(t)],["image",$s],["pattern",V1(t)]]},stroke:{$if:[{$eq:[{$palette:"type"},"user-indexed"]},{$palette:"stroke"},{$palette:`${t}.stroke`}]}}}B_("up"),B_("down"),ie.NUMBER+"",ie.ORDINAL_TIME+"";var{predictCartesianFinancialAxis:xbt}=j,hlt={options:OO,defaultAxes:{y:{type:ie.NUMBER,position:he.LEFT},x:{type:ie.ORDINAL_TIME,position:he.BOTTOM}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"}};function ult(t,e){const{fontSize:i,minimumFontSize:n=i}=t,{fontSize:s,minimumFontSize:a=s}=e,o=i-n,r=s-a;let l=t.fontSize,c=e.fontSize;const u=[{labelFontSize:i,secondaryLabelFontSize:s}];for(;l>n||c>a;){const d=o>0?(l-n)/o:-1,g=r>0?(c-a)/r:-1;d>g?l--:c--,u.push({labelFontSize:l,secondaryLabelFontSize:c})}return u.reverse(),u}function e5(t,e,i,n,{padding:s},a){const{spacing:o=0}=e,r=2*s,l=2*s+o,c=(e.minimumFontSize??e.fontSize)+(n.minimumFontSize??n.fontSize);if(c>a(c+l,!1).height-l)return;const u=ult(e,n),d={fontFamily:e.fontFamily,fontStyle:e.fontStyle,fontWeight:e.fontWeight},g={fontFamily:n.fontFamily,fontStyle:n.fontStyle,fontWeight:n.fontWeight};let f,y;return nT(0,u.length-1,x=>{const{labelFontSize:S,secondaryLabelFontSize:D}=u[x],A=x===0,I={...d,fontSize:S},w={...g,fontSize:D},N=Ve(I).lineHeight(),O=Ve(w).lineHeight(),L=a(N+O+l,A),R=L.width-r,P=L.height-l;if(N+O>P||(f?.fontSize!==S&&(f=__(e,t,R,P,I,e.wrapping,A?e.overflowStrategy:"hide")),f==null||f.width>R||f.height>P)||(y?.fontSize!==D&&(y=__(n,i,R,P,w,n.wrapping,A?n.overflowStrategy:"hide")),y==null))return;const B=f.height+y.height;if(!(y.width>R||B>P))return{width:Math.max(f.width,y.width),height:B+o,meta:L.meta,label:f,secondaryLabel:y}})}function rx(t,e,{padding:i},n){const s=2*i,a=Math.min(e.minimumFontSize??e.fontSize,e.fontSize),o={fontFamily:e.fontFamily,fontStyle:e.fontStyle,fontWeight:e.fontWeight};return nT(a,e.fontSize,r=>{const l={...o,fontSize:r},c=Ve(l),u=r===a,d=e.lineHeight??c.lineHeight(),g=n(d+s,u),f=g.width-s,y=g.height-s;if(d>y||f<0)return;const x=Ox(t,{maxWidth:f,maxHeight:y,font:l,textWrap:e.wrapping,overflow:(u?e.overflowStrategy:null)??"hide"});if(!x.length)return;const{width:S,height:D}=c.measureLines(x),A=x.join(` +`);return[{width:S,height:D,text:A,fontSize:r,lineHeight:d},g.meta]})}function V_(t){return t?.minimumFontSize!=null&&t?.fontSize!=null&&t?.minimumFontSize>t?.fontSize}function EO(t,e,i,n,s,a){const o=e.enabled?t:void 0,r=n.enabled?i:void 0;(V_(e)||V_(n))&&pt.warnOnce("minimumFontSize should be set to a value less than or equal to the font size");let l;o!=null&&r!=null&&(l=e5(o,e,r,n,s,a));let c;if(l==null&&o!=null&&(c=rx(o,e,s,a)),c!=null){const[d,g]=c;l={width:d.width,height:d.height,meta:g,label:d,secondaryLabel:void 0}}let u;if(l==null&&o==null&&r!=null&&(u=rx(r,n,s,a)),u!=null){const[d,g]=u;l={width:d.width,height:d.height,meta:g,label:void 0,secondaryLabel:d}}return l}function __(t,e,i,n,s,a,o){const r=Ox(e,{maxWidth:i,maxHeight:n,font:s,textWrap:a,overflow:o});if(!r.length)return;const l=Ve(s),c=t.lineHeight??l.lineHeight(),{width:u}=l.measureLines(r);return{width:u,lineHeight:c,text:r.join(` +`),height:r.length*c,fontSize:s.fontSize}}var Lm=class extends j.Label{constructor(){super(...arguments),this.wrapping="on-space",this.overflowStrategy="ellipsis"}};M([b],Lm.prototype,"wrapping");M([b],Lm.prototype,"overflowStrategy");M([b],Lm.prototype,"lineHeight");M([b],Lm.prototype,"minimumFontSize");var Om=class extends Lm{constructor(){super(...arguments),this.spacing=0}};M([b],Om.prototype,"spacing");var PA=class extends Lm{},{CartesianSeriesProperties:dlt,makeSeriesTooltip:plt}=j,as=class extends dlt{constructor(){super(...arguments),this.colorRange=["black","black"],this.stroke="black",this.strokeOpacity=1,this.strokeWidth=0,this.textAlign="center",this.verticalAlign="middle",this.itemPadding=0,this.label=new Om,this.tooltip=plt()}};M([b],as.prototype,"title");M([b],as.prototype,"xKey");M([b],as.prototype,"yKey");M([b],as.prototype,"colorKey");M([b],as.prototype,"xName");M([b],as.prototype,"yName");M([b],as.prototype,"colorName");M([b],as.prototype,"colorRange");M([b],as.prototype,"stroke");M([b],as.prototype,"strokeOpacity");M([b],as.prototype,"strokeWidth");M([b],as.prototype,"textAlign");M([b],as.prototype,"verticalAlign");M([b],as.prototype,"itemPadding");M([b],as.prototype,"itemStyler");M([b],as.prototype,"label");M([b],as.prototype,"tooltip");var{SeriesNodePickMode:F_,computeBarFocusBounds:glt,getMissCount:flt,valueProperty:fw,DEFAULT_CARTESIAN_DIRECTION_KEYS:mlt,DEFAULT_CARTESIAN_DIRECTION_NAMES:ylt,createDatumId:blt,ColorScale:xlt,Rect:vlt,PointerEvents:Slt,addHitTestersToQuadtree:Mlt,findQuadtreeMatch:H_,updateLabelNode:Dlt,upsertNodeDatum:Alt}=j,Ilt=class extends j.CartesianSeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.colorKey=n.properties.colorKey}},klt={left:-.5,center:0,right:-.5},Clt={top:-.5,middle:0,bottom:-.5},i5=class extends j.CartesianSeries{constructor(t){super({moduleCtx:t,propertyKeys:{...mlt,color:["colorKey"]},propertyNames:{...ylt,color:["colorName"]},categoryKey:void 0,pickModes:[F_.NEAREST_NODE,F_.EXACT_SHAPE_MATCH],pathsPerSeries:[]}),this.properties=new as,this.NodeEvent=Ilt,this.colorScale=new xlt}async processData(t){const e=this.axes[z.X],i=this.axes[z.Y];if(!e||!i)return;const{xKey:n,yKey:s,colorRange:a,colorKey:o}=this.properties,r=this.axes[z.X]?.scale,l=this.axes[z.Y]?.scale,{xScaleType:c,yScaleType:u}=this.getScaleInformation({xScale:r,yScale:l}),d=this.colorScale.type,g=this.properties.allowNullKeys??!1,{dataModel:f,processedData:y}=await this.requestDataModel(t,this.data,{props:[fw(n,c,{id:"xValue",allowNullKey:g}),fw(s,u,{id:"yValue",allowNullKey:g}),...o?[fw(o,d,{id:"colorValue",invalidValue:void 0})]:[]]});if(this.isColorScaleValid()){const x=f.resolveProcessedDataIndexById(this,"colorValue"),S=y.domain.values[x].filter(A=>A!=null),D=Ll(S);if(this.colorScale.domain=D??[],D?.length&&D[0]===D[1]){const A=Math.floor(a.length/2);this.colorScale.range=[a[A],a[A]]}else this.colorScale.range=a;this.colorScale.update()}}isColorScaleValid(){const{colorKey:t}=this.properties;if(!t)return!1;const{dataModel:e,processedData:i}=this;if(!e||!i)return!1;const n=e.resolveProcessedDataIndexById(this,"colorValue"),s=i.input.count,a=flt(this,i.defs.values[n].missing),o=e.resolveProcessedDataIndexById(this,"colorValue"),r=i.domain.values[o].filter(c=>c!=null).length;return!(s===0||s===a||r===0)}xCoordinateRange(t,e){const i=this.axes[z.X].scale,n=e*(i.bandwidth??0)/2,s=i.convert(t)+n,a=e*(i.bandwidth??10);return[s,s+a]}yCoordinateRange(t,e){const i=this.axes[z.Y].scale,n=e*(i.bandwidth??0)/2,s=i.convert(t[0])+n,a=e*(i.bandwidth??10);return[s,s+a]}getSeriesDomain(t){const{dataModel:e,processedData:i}=this;return!e||!i?{domain:[]}:t===z.X?{domain:e.getDomain(this,"xValue","value",i).domain}:{domain:e.getDomain(this,"yValue","value",i).domain}}getSeriesRange(){return[Number.NaN,Number.NaN]}validateCreateNodeDataPreconditions(){const t=super.validateCreateNodeDataPreconditions();if(!t)return;const{xAxis:e,yAxis:i}=t;if(e.type!=="category"||i.type!=="category"){pt.warnOnce(`Heatmap series expected axes to have "category" type, but received "${e.type}" and "${i.type}" instead.`);return}return t}populateNodeData(t){for(const[e,i]of t.rawData.entries()){const n=Alt(t,{datumIndex:e,datum:i},(s,a)=>this.createNodeDatum(s,a.datumIndex,a.datum),(s,a,o)=>this.updateNodeDatum(s,a,o.datumIndex,o.datum));if(n){const s=this.createLabelDatum(t,e,i,n);s&&t.labels.push(s)}}}initializeResult(t){return{itemId:this.properties.yKey??this.id,nodeData:t.nodes,labelData:t.labels,scales:this.calculateScaling(),visible:this.visible}}createNodeDatumContext(t,e){const{dataModel:i,processedData:n,contextNodeData:s}=this;if(!i||!n)return;const{xKey:a,xName:o,yKey:r,yName:l,colorKey:c,colorName:u,textAlign:d,verticalAlign:g,itemPadding:f}=this.properties,y=t.scale,x=e.scale,S=i.resolveColumnById(this,"xValue",n),D=i.resolveColumnById(this,"yValue",n),A=c?i.resolveColumnById(this,"colorValue",n):void 0,I=c?i.getDomain(this,"colorValue","value",n).domain:[],w=y.bandwidth??10,N=x.bandwidth??10,O=n.dataSources.get(this.id)?.data??[],L=s?.nodeData!=null&&n.changeDescription!=null;return{xAxis:t,yAxis:e,xScale:y,yScale:x,rawData:O,xValues:S,xKey:a,yKey:r,xName:o,yName:l,animationEnabled:!this.ctx.animationManager.isSkipped(),canIncrementallyUpdate:L,nodes:L?s.nodeData:[],nodeIndex:0,xOffset:(y.bandwidth??0)/2,yOffset:(x.bandwidth??0)/2,width:w,height:N,textAlignFactor:(w-2*f)*klt[d],verticalAlignFactor:(N-2*f)*Clt[g],yValues:D,colorKey:c,colorName:u,colorValues:A,colorDomain:I,itemPadding:f,labels:[],labelIndex:0}}createSkeletonNodeDatum(t,e,i){const{xKey:n,yKey:s,width:a,height:o,colorValues:r}=t,l=t.xValues[e],c=t.yValues[e],u=r?.[e];return{series:this,datumIndex:e,yKey:s,xKey:n,xValue:l,yValue:c,colorValue:u,datum:i,point:{x:0,y:0,size:0},width:a,height:o,midPoint:{x:0,y:0},missing:r!=null&&u==null,style:{}}}updateNodeDatum(t,e,i,n){const{xScale:s,yScale:a,xOffset:o,yOffset:r,width:l,height:c,xKey:u,yKey:d,colorValues:g}=t,f=e,y=t.xValues[i],x=t.yValues[i],S=s.convert(y)+o,D=a.convert(x)+r;if(!Number.isFinite(S)||!Number.isFinite(D))return;const A=g?.[i];f.datumIndex=i,f.datum=n,f.yKey=d,f.xKey=u,f.xValue=y,f.yValue=x,f.colorValue=A,f.width=l,f.height=c,f.missing=g!=null&&A==null;const I=f.point;I.x=S,I.y=D,I.size=0,f.midPoint.x=S,f.midPoint.y=D,f.style=this.getItemStyle({datumIndex:i,datum:n,colorValue:A},!1)}createNodeDatum(t,e,i){const{xScale:n,yScale:s,xOffset:a,yOffset:o}=t,r=t.xValues[e],l=t.yValues[e],c=n.convert(r)+a,u=s.convert(l)+o;if(!Number.isFinite(c)||!Number.isFinite(u))return;const d=this.createSkeletonNodeDatum(t,e,i);return this.updateNodeDatum(t,d,e,i),d}createLabelDatum(t,e,i,n){const{label:s}=this.properties,{width:a,height:o,textAlignFactor:r,verticalAlignFactor:l,itemPadding:c,colorKey:u,colorName:d,colorDomain:g,xKey:f,yKey:y,xName:x,yName:S}=t,D=t.colorValues?.[e],A=s.enabled&&D!=null?this.getLabelText(D,i,u,"color",g,s,{value:D,datum:i,colorKey:u,colorName:d,xKey:f,yKey:y,xName:x,yName:S}):void 0,I=()=>({width:a,height:o,meta:null}),w=EO(ce(A),this.properties.label,void 0,this.properties.label,{padding:c},I);if(w?.label==null)return;const{text:N,fontSize:O,lineHeight:L,height:R}=w.label,{fontStyle:P,fontFamily:B,fontWeight:F,color:H}=this.properties.label,{textAlign:$,verticalAlign:Y}=this.properties,U=n.point.x+r*(a-2*c),V=n.point.y+l*(o-2*c)-(w.height-R)*.5;return{series:this,datum:i,datumIndex:e,text:N,fontSize:O,lineHeight:L,fontStyle:P,fontFamily:B,fontWeight:F,color:H,textAlign:$,textBaseline:Y,x:U,y:V,style:n.style}}nodeFactory(){return new vlt}update(t){return this.ctx.animationManager.skipCurrentBatch(),super.update(t)}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t,n=e??[];return i.update(n)}getItemStyle({datumIndex:t,datum:e,colorValue:i},n,s){const{properties:a}=this,{itemStyler:o,stroke:r,strokeWidth:l,strokeOpacity:c}=a,u=this.getHighlightStyle(n,t,s),d=Et(u,{fill:this.isColorScaleValid()&&i!=null?this.colorScale.convert(i):"transparent",fillOpacity:1,stroke:r,strokeWidth:l,strokeOpacity:c,opacity:1});let g;return o!=null&&t!=null&&(g=this.cachedDatumCallback(blt(t,n?"highlight":"node"),()=>{const f=this.makeItemStylerParams(e,t,n,d);return this.callWithContext(o,f)})),g?Et(g,d):d}makeItemStylerParams(t,e,i,n){const{id:s,properties:a}=this,{xKey:o,yKey:r}=a,l=this.ctx.highlightManager?.getActiveHighlight(),c=this.getHighlightStateString(l,i,e),u=this.filterItemStylerFillParams(n.fill)??n.fill;return{seriesId:s,datum:t,xKey:o,yKey:r,highlightState:c,...n,fill:u}}updateDatumStyles({datumSelection:t,isHighlight:e}){const i=this.ctx.highlightManager?.getActiveHighlight();t.each((n,s)=>{const a=this.getHighlightState(i,e,s.datumIndex);s.style=this.getItemStyle(s,e,a)})}updateDatumNodes({datumSelection:t}){const e=this.axes[z.X],[i,n]=e?.visibleRange??[],a=!(i!==0||n!==1);t.each((o,r)=>{const{point:l,width:c,height:u,style:d}=r;o.setStyleProperties(d),o.crisp=a,o.x=l.x-c/2,o.y=l.y-u/2,o.width=c,o.height=u})}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t,{enabled:n}=this.properties.label,s=n?e:[];return i.update(s)}updateLabelNodes(t){const{isHighlight:e=!1}=t,i=this.ctx.highlightManager?.getActiveHighlight();t.labelSelection.each((n,s)=>{n.pointerEvents=Slt.None,n.text=s.text,n.fillOpacity=this.getHighlightStyle(e,s.datumIndex)?.opacity??1,Dlt(this,n,this.properties,this.properties.label,s,e,i)})}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a,colorScale:o,ctx:r}=this,{formatManager:l}=r,{xKey:c,xName:u,yKey:d,yName:g,colorKey:f,colorName:y,colorRange:x,title:S,legendItemName:D,tooltip:A}=a,I=s[z.X],w=s[z.Y];if(!i||!n||!I||!w)return;const N=n.dataSources.get(this.id)?.data[t],O=i.resolveColumnById(this,"xValue",n)[t],L=i.resolveColumnById(this,"yValue",n)[t],R=f!=null&&this.isColorScaleValid()?i.resolveColumnById(this,"colorValue",n)[t]:void 0,P=this.properties.allowNullKeys??!1;if(O===void 0&&!P)return;const B=[];let F;if(R==null)F=x[0];else{F=o.convert(R);const Y=i.getDomain(this,"colorValue","value",n).domain,U=l.format(this.callWithContext.bind(this),{type:"number",value:R,datum:N,seriesId:e,legendItemName:D,key:f,source:"tooltip",property:"color",domain:Y,boundSeries:this.getFormatterContext("color"),fractionDigits:void 0,visibleDomain:void 0});B.push({label:y,fallbackLabel:f,value:U??Or(R)})}B.push({label:u,fallbackLabel:c,value:this.getAxisValueText(I,"tooltip",O,N,c,D)},{label:g,fallbackLabel:d,value:this.getAxisValueText(w,"tooltip",L,N,d,D)});const H=this.getItemStyle({datumIndex:t,datum:N,colorValue:R},!1);H.fill!=null&&(F=H.fill);const $=F==null?void 0:{marker:{shape:"square",fill:F,fillOpacity:1,stroke:void 0,strokeWidth:0,strokeOpacity:1,lineDash:[0],lineDashOffset:0}};return this.formatTooltipWithContext(A,{title:S??D,symbol:$,data:B},{seriesId:e,datum:N,title:S,xKey:c,xName:u,yKey:d,yName:g,colorKey:f,colorName:y,...H})}getLegendData(t){return t!=="gradient"||!this.isColorScaleValid()||!this.dataModel?[]:[{legendType:"gradient",enabled:this.visible,seriesId:this.id,series:this.getFormatterContext("color"),colorDomain:this.colorScale.domain,colorRange:this.colorScale.range}]}isLabelEnabled(){return this.properties.label.enabled&&!!this.properties.colorKey}getBandScalePadding(){return{inner:0,outer:0}}computeFocusBounds({datumIndex:t}){const e=this.contextNodeData?.nodeData[t];if(e===void 0)return;const{width:i,height:n,midPoint:s}=e,a={x:s.x-i/2,y:s.y-n/2,width:i,height:n};return glt(this,a)}initQuadTree(t){Mlt(t,this.datumNodesIter())}pickNodesExactShape(t){const e=H_(this,t);return e!=null&&e.distance<=0?[e.datum]:[]}pickNodeClosestDatum(t){return H_(this,t)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.label.itemStyler!=null||this.isColorScaleValid()}};i5.className="HeatmapSeries";i5.type="heatmap";var{heatmapSeriesThemeableOptionsDef:wlt}=j,Nlt={...At(wlt,["showInLegend"]),...At(_e,["showInLegend"]),type:ht(Jt("heatmap")),xKey:ht(K),yKey:ht(K),xKeyAxis:K,yKeyAxis:K,colorKey:K,xName:K,yName:K,colorName:K,colorRange:Ft(It)},Tlt={series:{label:{...Oe}}};Tlt.series.colorRange={$if:[{$eq:[{$palette:"type"},"inbuilt"]},{$palette:"divergingColors"},xx]};var Llt={options:Nlt,defaultAxes:{y:{type:ie.CATEGORY,position:he.LEFT},x:{type:ie.CATEGORY,position:he.BOTTOM}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"}},n5=class extends JK{constructor(){super(...arguments),this.properties=new EA}nodeFactory(){const t=new QK;return t.lineCap="square",t}updateDatumStyles({datumSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getItemStyle(n.datumIndex,e,void 0,n.itemType)})}updateDatumNodes({datumSelection:t,isHighlight:e}){const{contextNodeData:i,properties:n}=this;if(!i)return;const s=this.ctx.highlightManager.getActiveHighlight(),{up:a,down:o}=n.item,r=this;t.each(function(c,u){const{centerX:d,width:g,y:f,height:y,yOpen:x,yClose:S,crisp:D}=u,A=u.isRising?a:o;c.setStaticProperties(d,g,f,y,x,S,D);const I=u.style??i.styles[u.itemType][r.getHighlightState(s,e,u.datumIndex)];c.setStyleProperties(I),c.strokeAlignment=A.strokeWidth})}getLegendData(t){const{id:e,data:i,ctx:{legendManager:n},visible:s}=this,{xKey:a,yName:o,item:{up:r,down:l},showInLegend:c,legendItemName:u}=this.properties;if(!i?.data.length||!a||t!=="category")return[];const d={type:"gradient",gradient:"linear",colorSpace:"rgb",colorStops:[{color:r.stroke,stop:0},{color:r.stroke,stop:.5},{color:l.stroke,stop:.5}],rotation:90};return[{legendType:"category",id:e,itemId:e,seriesId:e,enabled:s&&n.getItemEnabled({seriesId:e,itemId:e}),label:{text:u??o??e},symbol:{marker:{fill:d,fillOpacity:r.strokeOpacity,stroke:void 0,strokeWidth:0,strokeOpacity:1,lineDash:[0],lineDashOffset:0}},legendItemName:u,hideInLegend:!c}]}hasItemStylers(){return this.properties.itemStyler!=null}};n5.className="ohlc";n5.type="ohlc";var{ohlcSeriesThemeableOptionsDef:Olt}=j,RO={..._e,...Olt,type:ht(Jt("ohlc")),xKey:ht(K),openKey:ht(K),highKey:ht(K),lowKey:ht(K),closeKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,openName:K,highName:K,lowName:K,closeName:K};RO.pickOutsideVisibleMinorAxis=Mt(J);RO.focusPriority=Mt(gt);var{predictCartesianFinancialAxis:vbt}=j;ie.NUMBER+"",ie.ORDINAL_TIME+"";var Elt={options:RO,defaultAxes:{y:{type:ie.NUMBER,position:he.LEFT},x:{type:ie.ORDINAL_TIME,position:he.BOTTOM}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"}};function Rlt(t,e,i,n,s,a,o,r){const[l,c]=gn(t,s);return Eu([l,c],e,i,n,{smallestKeyInterval:a,xNeedsValueOf:o,yNeedsValueOf:r})}var Plt=Pu(Rlt);function zlt(t,e,i,n,s){const a=e.resolveKeysById(n,"xValue",i),o=e.resolveColumnById(n,"yHighValue",i),r=e.resolveColumnById(n,"yLowValue",i),l=e.getDomain(n,"xValue","key",i),c=e.resolveColumnNeedsValueOf(n,"xValue",i),u=e.resolveColumnNeedsValueOf(n,"yHighValue",i)??e.resolveColumnNeedsValueOf(n,"yLowValue",i);if(s){const[d,g]=gn(t,l);return Eu([d,g],a,o,r,{smallestKeyInterval:i.reduced?.smallestKeyInterval,xNeedsValueOf:c,yNeedsValueOf:u,existingFilters:s})}return Plt(t,a,o,r,l,i.reduced?.smallestKeyInterval,c,u)}function Blt(t,e,i,n,s,a){const o=e.resolveKeysById(n,"xValue",i),r=e.resolveColumnById(n,"yHighValue",i),l=e.resolveColumnById(n,"yLowValue",i),c=e.getDomain(n,"xValue","key",i),u=e.resolveColumnNeedsValueOf(n,"xValue",i),d=e.resolveColumnNeedsValueOf(n,"yHighValue",i)??e.resolveColumnNeedsValueOf(n,"yLowValue",i),[g,f]=gn(t,c);return bD([g,f],o,r,l,{smallestKeyInterval:i.reduced?.smallestKeyInterval,targetRange:s,xNeedsValueOf:u,yNeedsValueOf:d,existingFilters:a})}function j_({span:t},e){switch(t.type){case"linear":case"step":case"multi-line":{const i=(e-t.x0)/(t.x1-t.x0);return t.y0+i*(t.y1-t.y0)}case"cubic":{const{cp0x:i,cp0y:n,cp1x:s,cp1y:a,cp2x:o,cp2y:r,cp3x:l,cp3y:c}=t;let u=.5;const d=1e-6;for(let f=0;f<10;f++){const y=1-u,S=y*y*y*i+3*y*y*u*s+3*y*u*u*o+u*u*u*l-e;if(Math.abs(S)=a.x&&e<=o.x)return{span:s,index:n};if(el;return{intersection:n===c?null:{x:i,y:r},spanIndex:a.index,isInverted:c}}function _lt(t,e,i,n,s=!1){if(t.length===0||e.length===0)return[];const a=[];let o=s,r=0;for(let l=i;l<=n;l+=.5){const c=Vlt(t,e,l,o,r);c.intersection&&a.push(c.intersection.x),r=c.spanIndex,o=c.isInverted}return a}function Flt(t,e,i,n,s={}){const a=Math.max(e.x,i.width-(e.x+e.width)),o=Math.max(e.y,i.height-(e.y+e.height)),r=[],l=(u,d)=>({x0:u,y0:-o,x1:d,y1:e.height+o});n&&r.push({clipRect:l(-a,t[0]??e.width+a),...s});const c=n?1:0;for(let u=c;u{Vg(l,c,e.removed),Vg(l,c,i.removed)},a=(l,c)=>{Vg(l,c,e.moved),Vg(l,c,i.moved)},o=(l,c)=>{Vg(l,c,e.added),Vg(l,c,i.added)},r=Ylt(t,n);return{status:t,path:{addPhaseFn:o,updatePhaseFn:a,removePhaseFn:s},pathProperties:r}}function Xlt(t,e,i){const n=t.scales.x?.type==="category",s=e.scales.x?.type==="category";if(n!==s||!cp(t.scales.x)||!cp(e.scales.x))return;let a="updated";e.visible&&!t.visible?a="removed":!e.visible&&t.visible&&(a="added");const o=gS({scales:t.scales,data:t.fillData.spans},{scales:e.scales,data:e.fillData.spans},pS.Split);if(o==null)return;const r=gS({scales:t.scales,data:t.fillData.phantomSpans},{scales:e.scales,data:e.fillData.phantomSpans},pS.Split);if(r==null)return;const l=gS({scales:t.scales,data:t.highStrokeData.spans},{scales:e.scales,data:e.highStrokeData.spans},pS.Split);if(l==null)return;const c=gS({scales:t.scales,data:t.lowStrokeData.spans},{scales:e.scales,data:e.lowStrokeData.spans},pS.Split);if(c==null)return;const u="fade",d=Klt(a,o,r,u),g=$lt(a,l,c,u),f=(i?.changed??!0)||!yl(t.scales.x,e.scales.x)||!yl(t.scales.y,e.scales.y)||a!=="updated";return{status:a,fill:d,stroke:g,hasMotion:f}}var Zlt=Ta,qlt=Na,Qlt=er,{valueProperty:U_,keyProperty:Jlt,updateLabelNode:tct,fixNumericExtent:W_,buildResetPathFn:ect,resetLabelFn:ict,resetMarkerFn:nct,resetMarkerPositionFn:K_,pathSwipeInAnimation:sct,resetMotion:act,markerSwipeScaleInAnimation:oct,seriesLabelFadeInAnimation:mw,animationValidation:rct,diff:lct,updateClipPath:yw,computeMarkerFocusBounds:Y_,plotAreaPathFill:cct,plotLinePathStroke:$_,interpolatePoints:X_,pathFadeInAnimation:bw,markerFadeInAnimation:Z_,fromToMotion:xw,pathMotion:vw,PointerEvents:fS,Marker:hct,BBox:uct,processedDataIsAnimatable:Sw,markerEnabled:dct,getMarkerStyles:pct,calculateSegments:gct,toHighlightString:fct,HighlightState:mct,AggregationManager:yct,resetMarkerSelectionsDirect:bct,createDatumId:xct,visibleRangeIndices:q_}=j,vct=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.xKey=n.properties.xKey,this.yLowKey=n.properties.yLowKey,this.yHighKey=n.properties.yHighKey}},s5=class extends j.CartesianSeries{constructor(t){super({moduleCtx:t,pathsPerSeries:["fill","lowStroke","highStroke"],pickModes:[j.SeriesNodePickMode.AXIS_ALIGNED],propertyKeys:{[z.X]:["xKey"],[z.Y]:["yLowKey","yHighKey"]},propertyNames:{[z.X]:["xName"],[z.Y]:["yLowName","yHighName","yName"]},categoryKey:"xValue",animationResetFns:{path:ect({getVisible:()=>this.visible,getOpacity:()=>this.getOpacity()}),label:ict,datum:(e,i)=>({...nct(e),...K_(e,i)})},clipFocusBox:!1}),this.properties=new _i,this.NodeEvent=vct,this.aggregationManager=new yct}renderToOffscreenCanvas(){return(this.contextNodeData?.nodeData?.length??0)>0&&this.getDrawingMode(!1)==="cutout"||super.renderToOffscreenCanvas()}async processData(t){const{xKey:e,yLowKey:i,yHighKey:n}=this.properties,s=this.axes[z.X]?.scale,a=this.axes[z.Y]?.scale,{xScaleType:o,yScaleType:r}=this.getScaleInformation({xScale:s,yScale:a}),l=[],c=!this.ctx.animationManager.isSkipped();this.needsDataModelDiff()&&this.processedData&&l.push(lct(this.id,this.processedData)),c&&l.push(rct());const u=this.properties.allowNullKeys??!1,{dataModel:d,processedData:g}=await this.requestDataModel(t,this.data,{props:[Jlt(e,o,{id:"xValue",allowNullKey:u}),U_(i,r,{id:"yLowValue"}),U_(n,r,{id:"yHighValue"}),...l]});this.aggregateData(d,g),this.animationState.transition("updateData")}aggregateData(t,e){if(this.aggregationManager.markStale(e.input.count),e.type!=="ungrouped"||Sw(e))return;const i=this.axes[z.X];if(i==null)return;const n=this.estimateTargetRange();this.aggregationManager.aggregate({computePartial:a=>Blt(i.scale.type,t,e,this,n,a),computeFull:a=>zlt(i.scale.type,t,e,this,a),targetRange:n});const s=this.aggregationManager.filters;s&&s.length>0&&Vr.record(`${this.type}:aggregation`,s.map(a=>a.maxRange))}estimateTargetRange(){const t=this.axes[z.X];if(t?.scale?.range){const[e,i]=t.scale.range;return Math.abs(i-e)}return this.ctx.scene?.canvas?.width??800}createNodeDatumContext(t,e){const{dataModel:i,processedData:n}=this;if(!i||!n)return;const s=n.dataSources.get(this.id)?.data??[],a=t.scale,o=e.scale,r=t.range,[l,c]=a.range,u=Math.abs(c-l);this.aggregationManager.ensureLevelForRange(u);const d=this.aggregationManager.getFilterForRange(u),g=this.contextNodeData?.nodeData,f=!this.ctx.animationManager.isSkipped(),y=g!=null&&(n.changeDescription!=null||!Sw(n)||d!=null);return{xAxis:t,yAxis:e,rawData:s,xValues:i.resolveKeysById(this,"xValue",n),yHighValues:i.resolveColumnById(this,"yHighValue",n),yLowValues:i.resolveColumnById(this,"yLowValue",n),xScale:a,yScale:o,xAxisRange:r,xOffset:(a.bandwidth??0)/2,dataAggregationFilter:d,range:u,labelsEnabled:this.properties.label.enabled,animationEnabled:f,canIncrementallyUpdate:y,xKey:this.properties.xKey,yLowKey:this.properties.yLowKey,yHighKey:this.properties.yHighKey,item:this.properties.item,yDomain:this.getSeriesDomain(z.Y).domain,connectMissingData:this.properties.connectMissingData,interpolation:this.properties.interpolation,nodes:y?g:[],labelData:[],spanPoints:[],nodeIndex:0}}xCoordinateRange(t){const e=this.axes[z.X].scale.convert(t);return[e,e]}yCoordinateRange(t){const e=this.axes[z.Y].scale.convert(t[0]);return[e,e]}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(!(e&&i))return{domain:[]};const{domain:{keys:[n]}}=e;if(t===z.X){const s=i.resolveProcessedDataDefById(this,"xValue");if(s?.def.type==="key"&&s.def.valueType==="category"){const a=i.getKeySortMetadata(this,"xValue",e);return{domain:n,sortMetadata:a}}return{domain:W_(Ll(n))}}else{const s=this.domainForClippedRange(z.Y,["yHighValue","yLowValue"],"xValue"),a=xi(s);return{domain:W_(a)}}}getSeriesRange(t,e){return this.domainForVisibleRange(z.Y,["yHighValue","yLowValue"],"xValue",e)}handleDatumPoint(t,e,i,n,s){if(e.xValue=t.xValues[i],e.xValue===void 0&&!this.properties.allowNullKeys)return;e.datum=t.rawData[i],e.yHighValue=n??t.yHighValues[i],e.yLowValue=s??t.yLowValues[i];const a=t.spanPoints.at(-1);if(Number.isFinite(e.yHighValue)&&Number.isFinite(e.yLowValue)){if(e.inverted=e.yLowValue>e.yHighValue,e.x=t.xScale.convert(e.xValue)+t.xOffset,!Number.isFinite(e.x))return;e.yHighCoordinate=t.yScale.convert(e.yHighValue),e.yLowCoordinate=t.yScale.convert(e.yLowValue),this.upsertMarkerDatum(t,e,i,"high",e.yHighValue,e.yHighCoordinate),this.upsertMarkerDatum(t,e,i,"low",e.yLowValue,e.yLowCoordinate);const o={high:{point:{x:e.x,y:e.yHighCoordinate},xDatum:e.xValue,yDatum:e.yHighValue},low:{point:{x:e.x,y:e.yLowCoordinate},xDatum:e.xValue,yDatum:e.yLowValue}};Array.isArray(a)?a.push(o):a==null?t.spanPoints.push([o]):(a.skip+=1,t.spanPoints.push([o]))}else t.connectMissingData||(Array.isArray(a)||a==null?t.spanPoints.push({skip:0}):a.skip+=1)}upsertMarkerDatum(t,e,i,n,s,a){const{size:o}=t.item[n].marker;if(t.canIncrementallyUpdate&&t.nodeIndext.xScale.convert(t.xValues[s])+t.xOffset;if(e.input.count<1e3||t.dataAggregationFilter==null){let[s,a]=q_(1,t.xValues.length,t.xAxisRange,o=>{const r=n(o);return[r,r]});e.input.count<1e3&&(s=0,a=e.input.count),s=Math.max(s-1,0),a=Math.min(a+1,t.xValues.length);for(let o=s;o{const u=o[c];if(u!==sp)return[n(u),n(u)]});for(let c=r;c{if(!Array.isArray(l))return[];const c=l.map(u=>u.high);return X_(c,t.interpolation)}),a=t.spanPoints.flatMap(l=>{if(!Array.isArray(l))return[];const c=l.map(u=>u.low);return X_(c,t.interpolation)}),o=gct(this.properties.segmentation,i,n,this.chart.seriesRect,this.ctx.scene,!1);let r;if(this.properties.invertedStyle.enabled){const l=t.yHighValues[0]{const i=this.properties.item[e].strokeWidth??0,n=this.properties.highlight.highlightedSeries.item?.[e]?.strokeWidth??i,s=this.properties.highlight.highlightedItem.item?.[e]?.strokeWidth??i;return i>s||n>s};return t("low")||t("high")}updatePathNodes(t){const{visible:e}=t,[i,n,s]=t.paths,a=this.contextNodeData?.segments,o=this.ctx.highlightManager?.getActiveHighlight(),r=this.getHighlightState(o,!1),l=this.getHighlightStyle(),{item:c,fill:u,fillOpacity:d,opacity:g}=Et(l,this.getStyle(r));n.setProperties({datum:a,segments:a,fill:void 0,lineCap:"round",lineJoin:"round",pointerEvents:fS.None,stroke:c.low.stroke,strokeWidth:c.low.strokeWidth,strokeOpacity:c.low.strokeOpacity,lineDash:c.low.lineDash,lineDashOffset:c.low.lineDashOffset,opacity:g,visible:e}),s.setProperties({segments:a,fill:void 0,lineCap:"round",lineJoin:"round",pointerEvents:fS.None,stroke:c.high.stroke,strokeWidth:c.high.strokeWidth,strokeOpacity:c.high.strokeOpacity,lineDash:c.high.lineDash,lineDashOffset:c.high.lineDashOffset,opacity:g,visible:e});const f=this.getShapeFillBBox();i.setFillProperties(u,f),i.setStyleProperties({stroke:void 0,fill:u,fillOpacity:d,opacity:g},f);const y=this.contextNodeData?.intersectionSegments??a;i.setProperties({segments:y,pointerEvents:fS.None,lineJoin:"round",fillShadow:this.properties.shadow,opacity:g,visible:e}),i.datum=y,yw(this,i),yw(this,n),yw(this,s)}updatePaths(t){this.updateAreaPaths(t.paths,t.contextData)}updateAreaPaths(t,e){for(const i of t)i.visible=e.visible;if(e.visible)this.updateFillPath(t,e),this.updateStrokePath(t,e);else for(const i of t)i.path.clear(),i.markDirty("RangeArea")}updateFillPath(t,e){const[i]=t;i.path.clear(),cct(i,e.fillData),i.markDirty("RangeArea")}updateStrokePath(t,e){const[,i,n]=t;i.path.clear(),n.path.clear(),$_(i,e.lowStrokeData.spans),$_(n,e.highStrokeData.spans),i.markDirty("RangeArea"),n.markDirty("RangeArea")}resetDatumAnimation(t){bct([t.datumSelection])}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t,{processedData:n,axes:s,properties:a}=this,o=a.styler?this.getStylerMarkerOptions().item:a.item,{low:r,high:l}=o,c=dct(n.input.count,s[z.X].scale,{enabled:r.marker.enabled||l.marker.enabled});(a.item.low.marker.isDirty()||a.item.high.marker.isDirty())&&(i.clear(),i.cleanup());let u;if(c)if(r.marker.enabled&&l.marker.enabled)u=e;else{u=[];for(const d of e)o[d.itemType].marker.enabled&&u.push(d)}else u=[];return Sw(this.processedData)?i.update(u,void 0,d=>xct(d.xValue,d.itemType)):i.update(u)}updateDatumStyles({datumSelection:t,isHighlight:e}){const i=this.ctx.highlightManager.getActiveHighlight();t.each((n,s)=>{const a=this.getHighlightState(i,e,s.datumIndex),o=this.getStyle(a),{fill:r,fillOpacity:l,item:c}=o,{stroke:u,strokeWidth:d,strokeOpacity:g}=c[s.itemType],{marker:f}=this.properties.item[s.itemType],y=this.makeItemStylerParams(s.itemType);s.style=this.getMarkerStyle(f,s,y,{isHighlight:e,highlightState:a,resolveMarkerSubPath:["item",s.itemType,"marker"]},o.item[s.itemType].marker,{fill:r,fillOpacity:l,stroke:u,strokeWidth:d,strokeOpacity:g})})}updateDatumNodes(t){const{contextNodeData:e}=this;if(!e)return;const{datumSelection:i,isHighlight:n}=t,s=this.getShapeFillBBox(),a=this.ctx.highlightManager.getActiveHighlight(),o=this.getDrawingMode(n,t.drawingMode);i.each((r,l)=>{const{itemType:c}=l,u=l.style??e.styles[c][this.getHighlightState(a,n,l.datumIndex)];this.applyMarkerStyle(u,r,l.point,s),r.drawingMode=o}),n||(this.properties.item.low.marker.markClean(),this.properties.item.high.marker.markClean())}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t;return i.update(e,n=>{n.pointerEvents=fS.None})}updateLabelNodes(t){const e={xKey:this.properties.xKey,xName:this.properties.xName??this.properties.xKey,yName:this.properties.yName,yLowKey:this.properties.yLowKey,yLowName:this.properties.yLowName??this.properties.yLowKey,yHighKey:this.properties.yHighKey,yHighName:this.properties.yHighName??this.properties.yHighKey,legendItemName:this.properties.legendItemName},i=this.ctx.highlightManager?.getActiveHighlight(),{isHighlight:n=!1,labelSelection:s}=t;s.each((a,o)=>{a.fillOpacity=this.getHighlightStyle(n,o.datumIndex).opacity??1,tct(this,a,e,this.properties.label,o,n,i)})}getHighlightLabelData(t,e){return t?.length?t.filter(i=>i.datum===e.datum):[]}getHighlightData(t,e){const i=t.filter(n=>n.datum===e.datum).map(n=>({...n}));return i.length>0?i:void 0}getStyle(t){return this.getStylerCouple(t)[0]}getStylerMarkerOptions(){return this.getStylerCouple()[1]}getStylerCouple(t){const{fill:e,fillOpacity:i,item:n,styler:s}=this.properties;let a={};if(s){const c=this.makeStylerParams(t);a=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.cachedCallWithContext(s,c)??{},{pick:!1})??{}}const o={item:{low:{marker:{enabled:!1}},high:{marker:{enabled:!1}}}},r=c=>{const u=a.item?.[c],{lineDash:d,lineDashOffset:g,marker:f,stroke:y,strokeOpacity:x,strokeWidth:S}=n[c];return o.item[c].marker.enabled=u?.marker?.enabled??f.enabled,{marker:{fill:u?.marker?.fill??f.fill??e,fillOpacity:u?.marker?.fillOpacity??f.fillOpacity,shape:u?.marker?.shape??f.shape,size:u?.marker?.size??f.size,lineDash:u?.marker?.lineDash??f.lineDash,lineDashOffset:u?.marker?.lineDashOffset??f.lineDashOffset,stroke:u?.marker?.stroke??f.stroke??y,strokeOpacity:u?.marker?.strokeOpacity??f.strokeOpacity,strokeWidth:u?.marker?.strokeWidth??f.strokeWidth},lineDash:u?.lineDash??d,lineDashOffset:u?.lineDashOffset??g,stroke:u?.stroke??y,strokeOpacity:u?.strokeOpacity??x,strokeWidth:u?.strokeWidth??S}};return[{fill:a.fill??e,fillOpacity:a.fillOpacity??i,opacity:1,topLevel:{lineDash:this.properties.lineDash,lineDashOffset:this.properties.lineDashOffset,marker:this.properties.marker,stroke:this.properties.stroke,strokeOpacity:this.properties.strokeOpacity,strokeWidth:this.properties.strokeWidth},item:{low:r("low"),high:r("high")}},o]}makeStylerParams(t){const{id:e}=this,{fill:i,fillOpacity:n,item:s,xKey:a,yHighKey:o,yLowKey:r}=this.properties,l=fct(t??mct.None),c=u=>{const{lineDash:d,lineDashOffset:g,marker:f,stroke:y,strokeOpacity:x,strokeWidth:S}=s[u];return{marker:{fill:f.fill??i,fillOpacity:f.fillOpacity,size:f.size,shape:f.shape,stroke:f.stroke??y,strokeOpacity:f.strokeOpacity,strokeWidth:f.strokeWidth,lineDash:f.lineDash,lineDashOffset:f.lineDashOffset},lineDash:d,lineDashOffset:g,stroke:y,strokeOpacity:x,strokeWidth:S}};return{item:{low:c("low"),high:c("high")},fill:i,fillOpacity:n,highlightState:l,seriesId:e,xKey:a,yLowKey:r,yHighKey:o}}makeItemStylerParams(t){const{xKey:e,yLowKey:i,yHighKey:n}=this.properties;return{xKey:e,yLowKey:i,yHighKey:n,itemType:t}}getTooltipContent(t,e){const i=e?.itemType??"high",{id:n,dataModel:s,processedData:a,axes:o,properties:r}=this,{xName:l,yName:c,yLowKey:u,yLowName:d,xKey:g,yHighKey:f,yHighName:y,tooltip:x,legendItemName:S}=r,D=o[z.X],A=o[z.Y];if(!s||!a||!D||!A)return;const I=a.dataSources.get(this.id)?.data[t],w=s.resolveKeysById(this,"xValue",a)[t],N=s.resolveColumnById(this,"yHighValue",a)[t],O=s.resolveColumnById(this,"yLowValue",a)[t],L=this.properties.allowNullKeys??!1;if(w===void 0&&!L)return;const R=this.getStyle(),P=this.makeItemStylerParams(i),B=this.getMarkerStyle(this.properties.item[i].marker,{datumIndex:t,datum:I},P,{isHighlight:!1,resolveMarkerSubPath:["item",i,"marker"]},R.item[i].marker),F=`${this.getAxisValueText(A,"tooltip",O,I,u,S)} - ${this.getAxisValueText(A,"tooltip",N,I,f,S)}`;return this.formatTooltipWithContext(x,{heading:this.getAxisValueText(D,"tooltip",w,I,g,S),symbol:this.legendItemSymbol(),data:[{label:c,fallbackLabel:`${d??u} - ${y??f}`,value:F,missing:j.isTooltipValueMissing(N)&&j.isTooltipValueMissing(O)}]},{seriesId:n,datum:I,title:c,itemType:i,xName:l,yName:c,yLowKey:u,yLowName:d,xKey:g,yHighKey:f,yHighName:y,legendItemName:S,...B})}legendItemSymbol(){const{fill:t,topLevel:e}=this.getStyle(),{stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,marker:o}=e;return{marker:{shape:o.shape,fill:o.fill??t,stroke:o.stroke??i,fillOpacity:o.fillOpacity,strokeOpacity:o.strokeOpacity,strokeWidth:o.strokeWidth,lineDash:o.lineDash,lineDashOffset:o.lineDashOffset},line:{enabled:!0,stroke:i,strokeOpacity:s,strokeWidth:n,lineDash:a}}}getLegendData(t){if(t!=="category")return[];const{id:e,visible:i}=this,{yLowKey:n,yHighKey:s,yName:a,yLowName:o,yHighName:r,legendItemName:l,showInLegend:c}=this.properties,u=l??a??`${o??n} - ${r??s}`,d=`${n}-${s}`;return[{legendType:"category",id:e,itemId:d,seriesId:e,enabled:i,label:{text:`${u}`},symbol:this.legendItemSymbol(),legendItemName:l,hideInLegend:!c}]}isLabelEnabled(){return this.properties.label.enabled}nodeFactory(){return new hct}animateEmptyUpdateReady(t){const{datumSelection:e,labelSelection:i,contextData:n,paths:s}=t,{animationManager:a}=this.ctx;this.updateAreaPaths(s,n),sct(this,a,...s),act([e],K_),oct(this,a,{...this.getAnimationDrawingModes(),phase:"initial"},e),mw(this,"labels",a,i,this.highlightLabelSelection)}animateReadyResize(t){const{contextData:e,paths:i}=t;this.updateAreaPaths(i,e),super.animateReadyResize(t)}animateWaitingUpdateReady(t){const{animationManager:e}=this.ctx,{datumSelection:i,labelSelection:n,contextData:s,paths:a,previousContextData:o}=t,[r,l,c]=a;if(r==null&&l==null&&c==null)return;this.resetDatumAnimation(t),this.resetLabelAnimation(t);const u=()=>{this.resetPathAnimation(t),this.updateAreaPaths(a,s)},d=()=>{e.skipCurrentBatch(),u()};if(s==null||o==null){u(),Z_(this,e,"added",this.getAnimationDrawingModes(),i),bw(this,"fill_path_properties",e,"add",r),bw(this,"low_stroke_path_properties",e,"add",l),bw(this,"high_stroke_path_properties",e,"add",c),mw(this,"labels",e,n,this.highlightLabelSelection);return}const g=Xlt(s,o,this.processedData?.reduced?.diff?.[this.id]);if(g===void 0){d();return}else if(g.status==="no-op")return;xw(this.id,"fill_path_properties",e,[r],g.fill.pathProperties),xw(this.id,"low_stroke_path_properties",e,[l],g.stroke.pathProperties),xw(this.id,"high_stroke_path_properties",e,[c],g.stroke.pathProperties),g.status==="added"?this.updateAreaPaths(a,s):g.status==="removed"?this.updateAreaPaths(a,o):(vw(this.id,"fill_path_update",e,[r],g.fill.path),vw(this.id,"low_stroke_path_update",e,[l],g.stroke.path),vw(this.id,"high_stroke_path_update",e,[c],g.stroke.path)),g.hasMotion&&(Z_(this,e,void 0,this.getAnimationDrawingModes(),i),mw(this,"labels",e,n,this.highlightLabelSelection)),this.ctx.animationManager.animate({id:this.id,groupId:"reset_after_animation",phase:"trailing",from:{},to:{},onComplete:()=>this.updateAreaPaths(a,s)})}getFormattedMarkerStyle(t){const e=this.getStyle(),i=this.makeItemStylerParams(t.itemType);return this.getMarkerStyle(this.properties.item[t.itemType].marker,t,i,{isHighlight:!0,resolveMarkerSubPath:["item",t.itemType,"marker"]},void 0,e)}getMarkerStyle(t,e,i,n,s,a){return t.itemStyler=this.properties.marker.itemStyler,super.getMarkerStyle(t,e,i,n,s,a)}computeFocusBounds(t){const e=Y_(this,t),i=Y_(this,{...t,datumIndex:t.datumIndex+1});if(e&&i)return uct.merge([e,i])}isDatumEnabled(t,e){return e%2===0&&super.isDatumEnabled(t,e)}hasItemStylers(){return this.properties.styler!=null||this.properties.marker.itemStyler!=null||this.properties.label.itemStyler!=null}};s5.className="RangeAreaSeries";s5.type="range-area";var{rangeAreaSeriesThemeableOptionsDef:Sct}=j,BO={..._e,...Sct,type:ht(Jt("range-area")),xKey:ht(K),yLowKey:ht(K),yHighKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,yLowName:K,yHighName:K,legendItemName:K,segmentation:Pc,invertedStyle:{enabled:J,...wt}};BO.pickOutsideVisibleMinorAxis=Mt(J);BO.focusPriority=Mt(gt);({...Oe},ie.NUMBER+"");var{predictCartesianNonPrimitiveAxis:Sbt}=j,Mct={options:BO,defaultAxes:{y:{type:ie.NUMBER,position:he.LEFT},x:{type:ie.CATEGORY,position:he.BOTTOM}},axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"}};function Dct(t,e,i,n,s,a,o,r){const[l,c]=gn(t,s);return Eu([l,c],e,i,n,{smallestKeyInterval:a,xNeedsValueOf:o,yNeedsValueOf:r})}var Act=Pu(Dct);function Ict(t,e,i,n,s){const a=e.resolveKeysById(n,"xValue",i),o=e.resolveColumnById(n,"yHighValue",i),r=e.resolveColumnById(n,"yLowValue",i),l=e.getDomain(n,"xValue","key",i),c=e.resolveColumnNeedsValueOf(n,"xValue",i),u=e.resolveColumnNeedsValueOf(n,"yHighValue",i)??e.resolveColumnNeedsValueOf(n,"yLowValue",i);if(s){const[d,g]=gn(t,l);return Eu([d,g],a,o,r,{smallestKeyInterval:i.reduced?.smallestKeyInterval,xNeedsValueOf:c,yNeedsValueOf:u,existingFilters:s})}return Act(t,a,o,r,l,i.reduced?.smallestKeyInterval,c,u)}function kct(t,e,i,n,s,a){const o=e.resolveKeysById(n,"xValue",i),r=e.resolveColumnById(n,"yHighValue",i),l=e.resolveColumnById(n,"yLowValue",i),c=e.getDomain(n,"xValue","key",i),u=e.resolveColumnNeedsValueOf(n,"xValue",i),d=e.resolveColumnNeedsValueOf(n,"yHighValue",i)??e.resolveColumnNeedsValueOf(n,"yLowValue",i),[g,f]=gn(t,c);return bD([g,f],o,r,l,{smallestKeyInterval:i.reduced?.smallestKeyInterval,targetRange:s,xNeedsValueOf:u,yNeedsValueOf:d,existingFilters:a})}var{AbstractBarSeriesProperties:Cct,makeSeriesTooltip:wct,DropShadow:Nct,Label:Tct}=j,VO=class extends Tct{constructor(){super(...arguments),this.placement="inside",this.spacing=0}};M([b],VO.prototype,"placement");M([b],VO.prototype,"spacing");var bn=class extends Cct{constructor(){super(...arguments),this.fill="#99CCFF",this.fillOpacity=1,this.stroke="#99CCFF",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.shadow=new Nct().set({enabled:!1}),this.label=new VO,this.tooltip=wct()}};M([b],bn.prototype,"xKey");M([b],bn.prototype,"yLowKey");M([b],bn.prototype,"yHighKey");M([b],bn.prototype,"xName");M([b],bn.prototype,"yName");M([b],bn.prototype,"yLowName");M([b],bn.prototype,"yHighName");M([b],bn.prototype,"fill");M([b],bn.prototype,"fillOpacity");M([b],bn.prototype,"stroke");M([b],bn.prototype,"strokeWidth");M([b],bn.prototype,"strokeOpacity");M([b],bn.prototype,"lineDash");M([b],bn.prototype,"lineDashOffset");M([b],bn.prototype,"cornerRadius");M([b],bn.prototype,"styler");M([b],bn.prototype,"itemStyler");M([b],bn.prototype,"shadow");M([b],bn.prototype,"label");M([b],bn.prototype,"tooltip");var{SeriesNodePickMode:Q_,valueProperty:J_,keyProperty:Lct,checkCrisp:Oct,updateLabelNode:Ect,SMALLEST_KEY_INTERVAL:Rct,LARGEST_KEY_INTERVAL:Pct,diff:zct,prepareBarAnimationFunctions:tF,midpointStartingBarPosition:eF,resetBarSelectionsFn:Bct,resetBarSelectionsDirect:Vct,fixNumericExtent:_ct,seriesLabelFadeInAnimation:iF,resetLabelFn:Fct,animationValidation:Hct,computeBarFocusBounds:jct,visibleRangeIndices:Gct,createDatumId:Uct,Rect:Wct,PointerEvents:Kct,motion:nF,processedDataIsAnimatable:Mw,getItemStyles:Yct,calculateSegments:$ct,toHighlightString:Xct,HighlightState:sF,AggregationManager:Zct,upsertNodeDatum:Dw}=j,qct=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.xKey=n.properties.xKey,this.yLowKey=n.properties.yLowKey,this.yHighKey=n.properties.yHighKey}},a5=class extends j.AbstractBarSeries{constructor(t){super({moduleCtx:t,pickModes:[Q_.AXIS_ALIGNED,Q_.EXACT_SHAPE_MATCH],propertyKeys:{x:["xKey"],y:["yLowKey","yHighKey"]},propertyNames:{x:["xName"],y:["yLowName","yHighName","yName"]},categoryKey:"xValue",datumSelectionGarbageCollection:!1,animationResetFns:{datum:Bct,label:Fct}}),this.properties=new bn,this.aggregationManager=new Zct,this.NodeEvent=qct}async processData(t){const{xKey:e,yLowKey:i,yHighKey:n}=this.properties,s=this.getCategoryAxis()?.scale,a=this.getValueAxis()?.scale,{isContinuousX:o,xScaleType:r,yScaleType:l}=this.getScaleInformation({xScale:s,yScale:a}),c=[];this.needsDataModelDiff()&&this.processedData&&c.push(zct(this.id,this.processedData)),this.ctx.animationManager.isSkipped()||c.push(Hct());const u=this.visible?{}:{forceValue:Number.NaN},d=this.properties.allowNullKeys??!1,{dataModel:g,processedData:f}=await this.requestDataModel(t,this.data,{props:[Lct(e,r,{id:"xValue",allowNullKey:d}),J_(i,l,{id:"yLowValue",invalidValue:null,...u}),J_(n,l,{id:"yHighValue",invalidValue:null,...u}),...o?[Rct,Pct]:[],...c],groupByKeys:!1});this.smallestDataInterval=f.reduced?.smallestKeyInterval,this.largestDataInterval=f.reduced?.largestKeyInterval,this.aggregateData(g,f),this.animationState.transition("updateData")}aggregateData(t,e){if(this.aggregationManager.markStale(e.input.count),e.type!=="ungrouped"||Mw(e))return;const i=this.axes[z.X];if(i==null)return;const n=this.estimateTargetRange();this.aggregationManager.aggregate({computePartial:a=>kct(i.scale.type,t,e,this,n,a),computeFull:a=>Ict(i.scale.type,t,e,this,a),targetRange:n});const s=this.aggregationManager.filters;s&&s.length>0&&Vr.record(`${this.type}:aggregation`,s.map(a=>a.maxRange))}estimateTargetRange(){const t=this.axes[z.X];if(t?.scale==null)return 0;const[e,i]=t.scale.range;return Math.abs(i-e)}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(!e||!i)return{domain:[]};const{keys:[n]}=e.domain;if(t===this.getCategoryDirection()){const s=i.resolveProcessedDataDefById(this,"xValue");if(s?.def.type==="key"&&s?.def.valueType==="category"){const a=i.getKeySortMetadata(this,"xValue",e);return{domain:n,sortMetadata:a}}return{domain:this.padBandExtent(n)}}else{const s=this.domainForClippedRange(t,["yHighValue","yLowValue"],"xValue"),a=xi(s);return{domain:_ct(a)}}}getSeriesRange(t,e){return this.domainForVisibleRange(z.Y,["yHighValue","yLowValue"],"xValue",e)}createNodeDatumContext(t,e){const{dataModel:i,processedData:n}=this;if(!i||!n)return;const s=n.dataSources?.get(this.id)?.data;if(s==null)return;const a=t.scale,o=e.scale,r=this.getBarDirection()===z.X,l=Oct(t?.scale,t?.visibleRange,this.smallestDataInterval,this.largestDataInterval),[c,u]=a.range,d=Math.abs(u-c);this.aggregationManager.ensureLevelForRange(d);const g=this.aggregationManager.getFilterForRange(d),f=!this.ctx.animationManager.isSkipped(),y=this.contextNodeData?.nodeData!=null&&(n.changeDescription!=null||!Mw(n)||g!=null),{groupOffset:x,barOffset:S,barWidth:D}=this.getBarDimensions();return{xAxis:t,yAxis:e,rawData:s,xValues:i.resolveKeysById(this,"xValue",n),yLowValues:i.resolveColumnById(this,"yLowValue",n),yHighValues:i.resolveColumnById(this,"yHighValue",n),xScale:a,yScale:o,groupOffset:x,barOffset:S,barWidth:D,barAlongX:r,crisp:l,dataAggregationFilter:g,animationEnabled:f,xKey:this.properties.xKey,yLowKey:this.properties.yLowKey,yHighKey:this.properties.yHighKey,labelEnabled:this.properties.label.enabled,labelPlacement:this.properties.label.placement,labelPadding:(this.properties.label.spacing+(typeof this.properties.label.padding=="number"?this.properties.label.padding:0))*(this.properties.label.placement==="outside"?1:-1),canIncrementallyUpdate:y,nodes:y?this.contextNodeData.nodeData:[],nodeIndex:0}}prepareNodeDatumState(t,e,i){const n=t.rawData[i],s=t.xValues[i];if(s===void 0&&!this.properties.allowNullKeys)return;const a=t.yLowValues[i],o=t.yHighValues[i];if(!Number.isFinite(a?.valueOf())||!Number.isFinite(o?.valueOf()))return;const[r,l]=a{const g=d*er,f=r[g+wa],y=l[d];if(y!==-1)return[e(y),e(f)+t.barWidth]});for(let d=c;dthis.createNodeDatum(I,w,n,s),(I,w,N)=>this.updateNodeDatum(I,w,N,s)))}}createNodeDataSimple(t,e,i,n,s,a){const o=a.invalidData?.get(this.id);let[r,l]=this.visibleRangeIndices("xValue",t.xAxis.range);a.input.count<1e3&&(r=0,l=a.input.count);for(let c=r;cthis.createNodeDatum(u,d,n,s),(u,d,g)=>this.updateNodeDatum(u,d,g,s)))}createNodeDataGrouped(t,e,i,n,s){const a=this.processedData;for(const{datumIndex:o,groupIndex:r}of this.dataModel.forEachGroupDatum(this,a))i.datumIndex=o,i.groupedDataIndex=r,i.x=e(o),i.width=t.barWidth,i.yLow=t.yLowValues[o],i.yHigh=t.yHighValues[o],i.crisp=t.crisp,Dw(t,i,(l,c)=>this.createNodeDatum(l,c,n,s),(l,c,u)=>this.updateNodeDatum(l,c,u,s))}populateNodeData(t){const{processedData:e}=this;if(!e)return;const{yLowKey:i,yHighKey:n,strokeWidth:s}=this.properties,a=`${i}-${n}`,o=l=>{const c=t.xScale.convert(t.xValues[l]);return Number.isFinite(c)?Math.round(c)+t.groupOffset+t.barOffset:Number.NaN},r={nodeDatumScratch:{datum:void 0,xValue:void 0,yLowValue:0,yHighValue:0,rawLowValue:void 0,rawHighValue:void 0},labelParamsScratch:{labels:[],datumIndex:0,rectX:0,rectY:0,rectWidth:0,rectHeight:0,yLowValue:0,yHighValue:0,datum:void 0},datumIndex:0,groupedDataIndex:0,x:0,width:0,yLow:0,yHigh:0,crisp:!1};t.dataAggregationFilter!=null?this.createNodeDataWithAggregation(t,o,r,a,s,t.dataAggregationFilter):e.type==="ungrouped"?this.createNodeDataSimple(t,o,r,a,s,e):this.createNodeDataGrouped(t,o,r,a,s)}finalizeNodeData(t){t.canIncrementallyUpdate&&t.nodeIndex0&&(i.length=0);return}const{xKey:n,yLowKey:s,yHighKey:a,xName:o,yLowName:r,yHighName:l,yName:c,legendItemName:u,label:d}=this.properties,g=t.barAlongX,f=t.labelPlacement,y=t.labelPadding,x=e.rectX,S=e.rectY,D=e.rectWidth,A=e.rectHeight,I=x+(g?-y:D/2),w=S+(g?A/2:A+y);let N;f==="outside"?N=g?"right":"center":N=g?"left":"center";let O;f==="outside"?O=g?"middle":"top":O=g?"middle":"bottom";const L=x+(g?D+y:D/2),R=S+(g?A/2:-y);let P;f==="outside"?P=g?"left":"center":P=g?"right":"center";let B;f==="outside"?B=g?"middle":"bottom":B=g?"middle":"top";const F=e.datum,H=e.yLowValue,$=e.yHighValue,Y=e.datumIndex,U={datum:F,xKey:n,yLowKey:s,yHighKey:a,xName:o,yLowName:r,yHighName:l,yName:c,legendItemName:u},V=this.getSeriesDomain(z.Y).domain,Z=this.getLabelText(H,F,s,"y",V,d,{itemType:"low",value:H,...U}),W=this.getLabelText($,F,a,"y",V,d,{itemType:"high",value:$,...U});if(i.length>0&&i[0].itemType==="low"){const q=i[0];q.datumIndex=Y,q.x=I,q.y=w,q.textAlign=N,q.textBaseline=O,q.text=Z,q.datum=F}else i[0]={datumIndex:Y,x:I,y:w,textAlign:N,textBaseline:O,text:Z,itemType:"low",datum:F,series:this};if(i.length>1&&i[1].itemType==="high"){const q=i[1];q.datumIndex=Y,q.x=L,q.y=R,q.textAlign=P,q.textBaseline=B,q.text=W,q.datum=F}else i[1]={datumIndex:Y,x:L,y:R,textAlign:P,textBaseline:B,text:W,itemType:"high",datum:F,series:this};i.length=2}nodeFactory(){return new Wct}getStyle(t,e){const{cornerRadius:i,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,stroke:r,strokeOpacity:l,strokeWidth:c,styler:u}=this.properties;let d={};if(!t&&u){const g=this.makeStylerParams(e);d=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.cachedCallWithContext(u,g)??{},{pick:!1})??{}}return{cornerRadius:d.cornerRadius??i,fill:d.fill??n,fillOpacity:d.fillOpacity??s,lineDash:d.lineDash??a,lineDashOffset:d.lineDashOffset??o,opacity:1,stroke:d.stroke??r,strokeOpacity:d.strokeOpacity??l,strokeWidth:d.strokeWidth??c}}makeStylerParams(t){const{id:e}=this,{cornerRadius:i,fill:n,fillOpacity:s,lineDash:a,lineDashOffset:o,stroke:r,strokeOpacity:l,strokeWidth:c,xKey:u,yLowKey:d,yHighKey:g}=this.properties,f=Xct(t??sF.None);return{cornerRadius:i,fill:n,fillOpacity:s,highlightState:f,lineDash:a,lineDashOffset:o,seriesId:e,stroke:r,strokeOpacity:l,strokeWidth:c,xKey:u,yLowKey:d,yHighKey:g}}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t,n=e??[];return Mw(this.processedData)?i.update(n,void 0,s=>this.getDatumId(s)):i.update(n)}getItemStyle(t,e,i){const{properties:n,dataModel:s,processedData:a}=this,{itemStyler:o}=n,r=this.getHighlightStyle(e,t,i);let l=Et(r,this.getStyle(t===void 0,i));if(o&&s!=null&&a!=null&&t!=null){const c=s.resolveKeysById(this,"xValue",a)[t],u=this.cachedDatumCallback(Uct(this.getDatumId({xValue:c}),e?"highlight":"node"),()=>{const d=this.makeItemStylerParams(t,e,l);return this.callWithContext(o,d)});u&&(l=Et(u,l))}return l}makeItemStylerParams(t,e,i){const{id:n,properties:s,processedData:a}=this,{xKey:o,yHighKey:r,yLowKey:l}=s,c=a.dataSources.get(n)?.data[t],u=this.ctx.highlightManager?.getActiveHighlight(),d=this.getHighlightStateString(u,e,t),g=this.filterItemStylerFillParams(i.fill)??i.fill;return{seriesId:n,datum:c,xKey:o,yHighKey:r,yLowKey:l,highlightState:d,...i,fill:g}}updateDatumStyles(t){const e=this.ctx.highlightManager.getActiveHighlight();t.datumSelection.each((i,n)=>{if(!t.datumSelection.isGarbage(i)){const s=this.getHighlightState(e,t.isHighlight,n.datumIndex);n.style=this.getItemStyle(n.datumIndex,t.isHighlight,s)}})}updateDatumNodes({datumSelection:t,isHighlight:e}){const{contextNodeData:i}=this;if(!i)return;const n=this.ctx.highlightManager.getActiveHighlight(),s=this.getCategoryDirection()===z.X,a=this.getShapeFillBBox(),o=this;t.each(function(l,c){const u=c.style??i.styles[o.getHighlightState(n,e,c.datumIndex)];l.setStyleProperties(u,a),l.setStaticProperties("overlay",u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0,u.cornerRadius??0,s?c.width>0:c.height>0,c.crisp,void 0)})}updateLabelSelection(t){const e=this.properties.label.enabled?t.labelData:[];return t.labelSelection.update(e,i=>{i.pointerEvents=Kct.None})}updateLabelNodes(t){const{isHighlight:e=!1}=t,i={xKey:this.properties.xKey,xName:this.properties.xName??this.properties.xKey,yName:this.properties.yName,yLowKey:this.properties.yLowKey,yLowName:this.properties.yLowName??this.properties.yLowKey,yHighKey:this.properties.yHighKey,yHighName:this.properties.yHighName??this.properties.yHighKey,legendItemName:this.properties.legendItemName},n=this.ctx.highlightManager?.getActiveHighlight();t.labelSelection.each((s,a)=>{s.fillOpacity=this.getHighlightStyle(e,a?.datumIndex).opacity??1,Ect(this,s,i,this.properties.label,a,e,n)})}getHighlightLabelData(t,e){return e.labels?.length?e.labels:super.getHighlightLabelData(t,e)}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s}=this,{xKey:a,xName:o,yName:r,yLowKey:l,yHighKey:c,yLowName:u,yHighName:d,tooltip:g,legendItemName:f}=s,y=this.getCategoryAxis(),x=this.getValueAxis();if(!i||!n||!y||!x)return;const S=n.dataSources.get(this.id)?.data[t],D=i.resolveKeysById(this,"xValue",n)[t],A=i.resolveColumnById(this,"yHighValue",n)[t],I=i.resolveColumnById(this,"yLowValue",n)[t],w=this.properties.allowNullKeys??!1;if(D===void 0&&!w)return;const N=this.getItemStyle(t,!1),O=`${this.getAxisValueText(x,"tooltip",I,S,l,f)} - ${this.getAxisValueText(x,"tooltip",A,S,c,f)}`;return this.formatTooltipWithContext(g,{heading:this.getAxisValueText(y,"tooltip",D,S,a,f),symbol:this.legendItemSymbol(),data:[{label:r,fallbackLabel:`${u??l} - ${d??c}`,value:O,missing:j.isTooltipValueMissing(A)&&j.isTooltipValueMissing(I)}]},{seriesId:e,datum:S,title:r,xKey:a,xName:o,yName:r,yLowKey:l,yHighKey:c,yLowName:u,yHighName:d,legendItemName:f,...N})}legendItemSymbol(){const{fill:t,stroke:e,strokeWidth:i,fillOpacity:n,strokeOpacity:s,lineDash:a,lineDashOffset:o}=this.getStyle(!1,sF.None);return{marker:{fill:t,stroke:e,fillOpacity:n,strokeOpacity:s,strokeWidth:i,lineDash:a,lineDashOffset:o}}}getLegendData(t){if(t!=="category")return[];const{id:e,visible:i}=this,{yName:n,yLowName:s,yHighName:a,yLowKey:o,yHighKey:r,legendItemName:l,showInLegend:c}=this.properties,u=l??n??`${s??o} - ${a??r}`,d=`${o}-${r}`;return[{legendType:"category",id:e,itemId:d,seriesId:e,enabled:i,label:{text:`${u}`},symbol:this.legendItemSymbol(),legendItemName:l,hideInLegend:!c}]}resetDatumAnimation(t){Vct([t.datumSelection])}animateEmptyUpdateReady({datumSelection:t,labelSelection:e}){const i=tF(eF(this.isVertical(),"normal"),"unknown");nF.fromToMotion(this.id,"datums",this.ctx.animationManager,[t],i),iF(this,"labels",this.ctx.animationManager,e,this.highlightLabelSelection)}animateWaitingUpdateReady(t){const{datumSelection:e,labelSelection:i,contextData:n,previousContextData:s}=t,a=j.calculateDataDiff(this.id,e,this.getDatumId.bind(this),n,s,this.processedData,this.processedDataUpdated);this.ctx.animationManager.stopByAnimationGroupId(this.id);const o=s==null?"fade":"normal",r=tF(eF(this.isVertical(),o),"added");nF.fromToMotion(this.id,"datums",this.ctx.animationManager,[e],r,(l,c)=>this.getDatumId(c),a),(a?.changed||!yl(n.groupScale,s?.groupScale))&&iF(this,"labels",this.ctx.animationManager,i,this.highlightLabelSelection)}getDatumId(t){return`${t.xValue}`}isLabelEnabled(){return this.properties.label.enabled}computeFocusBounds({datumIndex:t}){return jct(this,this.contextNodeData?.nodeData[t])}hasItemStylers(){return this.properties.styler!=null||this.properties.itemStyler!=null||this.properties.label.itemStyler!=null}};a5.className="RangeBarSeries";a5.type="range-bar";var{rangeBarSeriesThemeableOptionsDef:Qct}=j,_O={..._e,...Qct,type:ht(Jt("range-bar")),xKey:ht(K),yLowKey:ht(K),yHighKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,yLowName:K,yHighName:K,legendItemName:K,segmentation:Pc,width:bo,widthRatio:Ot};_O.pickOutsideVisibleMinorAxis=Mt(J);_O.focusPriority=Mt(gt);({...Oe},ie.NUMBER+"");var{predictCartesianNonPrimitiveAxis:Mbt}=j,Jct={options:_O,axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},axisKeysFlipped:{[z.X]:"yKeyAxis",[z.Y]:"xKeyAxis"}},{AbstractBarSeriesProperties:tht,makeSeriesTooltip:eht,DropShadow:iht,Label:nht}=j,BA=class extends xt{};M([b],BA.prototype,"totalType");M([b],BA.prototype,"index");M([b],BA.prototype,"axisLabel");var o5=class extends xt{};M([b],o5.prototype,"renderer");var FO=class extends nht{constructor(){super(...arguments),this.placement="outside-end",this.spacing=0}};M([b],FO.prototype,"placement");M([b],FO.prototype,"spacing");var Us=class extends xt{constructor(){super(...arguments),this.fill="#c16068",this.stroke="#c16068",this.fillOpacity=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.strokeWidth=1,this.cornerRadius=0,this.shadow=new iht().set({enabled:!1}),this.label=new FO,this.tooltip=new o5}};M([b],Us.prototype,"name");M([b],Us.prototype,"fill");M([b],Us.prototype,"stroke");M([b],Us.prototype,"fillOpacity");M([b],Us.prototype,"strokeOpacity");M([b],Us.prototype,"lineDash");M([b],Us.prototype,"lineDashOffset");M([b],Us.prototype,"strokeWidth");M([b],Us.prototype,"cornerRadius");M([b],Us.prototype,"itemStyler");M([b],Us.prototype,"shadow");M([b],Us.prototype,"label");M([b],Us.prototype,"tooltip");var Gp=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.stroke="black",this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.strokeWidth=2}};M([b],Gp.prototype,"enabled");M([b],Gp.prototype,"stroke");M([b],Gp.prototype,"strokeOpacity");M([b],Gp.prototype,"lineDash");M([b],Gp.prototype,"lineDashOffset");M([b],Gp.prototype,"strokeWidth");var VA=class extends xt{constructor(){super(...arguments),this.positive=new Us,this.negative=new Us,this.total=new Us}};M([b],VA.prototype,"positive");M([b],VA.prototype,"negative");M([b],VA.prototype,"total");var Jc=class extends tht{constructor(){super(...arguments),this.item=new VA,this.totals=new ss(BA),this.line=new Gp,this.tooltip=eht()}getStyle(t){const{fillOpacity:e,strokeWidth:i,strokeOpacity:n,fill:s,stroke:a,lineDash:o,lineDashOffset:r,cornerRadius:l}=this.item[t==="subtotal"?"total":t];return{fill:s,fillOpacity:e,stroke:a,strokeWidth:i,strokeOpacity:n,lineDash:o,lineDashOffset:r,cornerRadius:l,opacity:1}}};M([b],Jc.prototype,"xKey");M([b],Jc.prototype,"yKey");M([b],Jc.prototype,"xName");M([b],Jc.prototype,"yName");M([b],Jc.prototype,"item");M([b],Jc.prototype,"totals");M([b],Jc.prototype,"line");M([b],Jc.prototype,"tooltip");var{adjustLabelPlacement:sht,SeriesNodePickMode:aF,fixNumericExtent:aht,valueProperty:oF,keyProperty:oht,accumulativeValueProperty:mS,trailingAccumulatedValueProperty:rht,createDatumId:Aw,checkCrisp:lht,updateLabelNode:cht,prepareBarAnimationFunctions:hht,collapsedStartingBarPosition:uht,resetBarSelectionsDirect:dht,resetBarSelectionsFn:pht,seriesLabelFadeInAnimation:ght,resetLabelFn:fht,animationValidation:mht,DEFAULT_CARTESIAN_DIRECTION_KEYS:yht,DEFAULT_CARTESIAN_DIRECTION_NAMES:bht,computeBarFocusBounds:xht,Rect:vht,motion:Sht,getItemStylesPerItemId:Mht,DataSet:Dht,processedDataIsAnimatable:Aht,upsertNodeDatum:Iht}=j,r5=class extends j.AbstractBarSeries{constructor(t){super({moduleCtx:t,propertyKeys:yht,propertyNames:bht,categoryKey:void 0,pickModes:[aF.NEAREST_NODE,aF.EXACT_SHAPE_MATCH],pathsPerSeries:["connector"],pathsZIndexSubOrderOffset:[-1,-1],animationResetFns:{datum:pht,label:fht}}),this.properties=new Jc,this.seriesItemTypes=new Set(["positive","negative","total"])}async processData(t){const{xKey:e,yKey:i,totals:n}=this.properties,{data:s}=this;if(!this.visible)return;const a=I=>Af(I)&&Number(I)>=0,o=I=>Af(I)&&Number(I)>=0,r=I=>I==="total"||I==="subtotal",l={missingValue:void 0,invalidValue:void 0},c=[],u=n.reduce((I,w)=>{const N=I.get(w.index);return N?N.push(w):I.set(w.index,[w]),I},new Map);for(const[I,w]of s?.data.entries()??[]){c.push(w);const N=u.get(I);if(N)for(const O of N)c.push({...O.toJson(),[e]:O.axisLabel})}const d=[];this.ctx.animationManager.isSkipped()||d.push(mht());const g=this.getCategoryAxis()?.scale,f=this.getValueAxis()?.scale,{isContinuousX:y,xScaleType:x,yScaleType:S}=this.getScaleInformation({xScale:g,yScale:f}),D=this.properties.allowNullKeys??!1,{processedData:A}=await this.requestDataModel(t,Dht.wrap(c),{props:[oht(e,x,{id:"xValue",allowNullKey:D}),mS(i,S,{...l,id:"yCurrent"}),mS(i,S,{...l,missingValue:0,id:"yCurrentTotal"}),mS(i,S,{...l,id:"yCurrentPositive",validation:a}),mS(i,S,{...l,id:"yCurrentNegative",validation:o}),rht(i,S,{...l,id:"yPrevious"}),oF(i,S,{id:"yRaw"}),oF("totalType","category",{id:"totalTypeValue",missingValue:void 0,validation:r}),...y?[j.SMALLEST_KEY_INTERVAL,j.LARGEST_KEY_INTERVAL]:[],...d]});this.smallestDataInterval=A.reduced?.smallestKeyInterval,this.largestDataInterval=A.reduced?.largestKeyInterval,this.updateSeriesItemTypes(),this.animationState.transition("updateData")}getSeriesDomain(t){const{processedData:e,dataModel:i}=this;if(!e||!i)return{domain:[]};const{keys:[n],values:s}=e.domain;if(t===this.getCategoryDirection()){const a=i.resolveProcessedDataDefById(this,"xValue");if(a?.def.type==="key"&&a?.def.valueType==="category"){const l=i.getKeySortMetadata(this,"xValue",e);return{domain:n,sortMetadata:l}}const o=t===z.Y,r=this.getCategoryAxis().isReversed();return{domain:this.padBandExtent(n,r!==o)}}else{const a=i.resolveProcessedDataIndexById(this,"yCurrent"),o=s[a],r=[Math.min(0,o[0]),Math.max(0,o[1])];return{domain:aht(r)}}}getSeriesRange(){return[Number.NaN,Number.NaN]}populateNodeData(t){let e=0;const i={datumIndex:0,datum:void 0,xDatum:void 0,value:void 0,cumulativeValue:void 0,trailingValue:void 0,datumType:void 0};for(const[n,s]of t.rawData.entries()){const a=t.totalTypeValues[n],o=this.isSubtotal(a),r=this.isTotal(a),l=r||o,c=t.xValues[n];if(c===void 0&&!this.properties.allowNullKeys)continue;const u=t.yRawValues[n],{cumulativeValue:d,trailingValue:g}=this.computeWaterfallValues(t,n,r,o,e);l&&(e=d??0);const f=this.computeDisplayValue(r,o,u,d,g);i.datumIndex=n,i.datum=s,i.xDatum=c,i.value=f,i.cumulativeValue=d,i.trailingValue=g,i.datumType=a;const y=Iht(t,i,(x,S)=>this.createNodeDatum(x,S),(x,S,D)=>this.updateNodeDatum(x,S,D));if(y){const x=this.createPointDatum(t,y,d,g,l);t.pointData.push(x)}}}finalizeNodeData(t){t.nodeIndex=0,g=this.getSeriesItemType(d,u);return{index:a,series:this,itemType:g,datum:o,datumIndex:a,cumulativeValue:c??0,xValue:r,yValue:l,yKey:n,xKey:i,x:0,y:0,width:0,height:0,midPoint:{x:0,y:0},crisp:s,label:{text:"",x:0,y:0,textAlign:"center",textBaseline:"middle"}}}updateNodeDatum(t,e,i){const{xScale:n,yScale:s,barAlongX:a,barWidth:o,valueAxisReversed:r,xKey:l,yKey:c,xName:u,yName:d,yDomain:g,crisp:f}=t,{datumIndex:y,datum:x,xDatum:S,value:D,cumulativeValue:A,trailingValue:I,datumType:w}=i,N=e,O=Math.round(n.convert(S));if(!Number.isFinite(O))return;const L=(D??0)>=0,R=this.getSeriesItemType(L,w),{strokeWidth:P,label:B}=this.getItemConfig(R),F=Math.round(s.convert(A)),H=Math.round(s.convert(I)),$=L?F:H,Y=L?H:F,U=Math.max(P,Math.abs(Y-$)),V=a?Math.min($,Y):O,Z=a?O:Math.min($,Y),W=a?U:o,q=a?o:U;if(N.index=y,N.itemType=R,N.datum=x,N.datumIndex=y,N.cumulativeValue=A??0,N.xValue=S,N.yValue=D,N.x=V,N.y=Z,N.width=W,N.height=q,N.crisp=f,N.midPoint?(N.midPoint.x=V+W/2,N.midPoint.y=Z+q/2):N.midPoint={x:V+W/2,y:Z+q/2},B.enabled){const nt=R==="subtotal"?"total":R,G=this.getLabelText(D,x,c,"y",g,B,{itemType:nt,value:D,datum:x,xKey:l,yKey:c,xName:u,yName:d}),et=B.spacing+(typeof B.padding=="number"?B.padding:0),st=sht({isUpward:(D??-1)>=0!==r,isVertical:!a,placement:B.placement,spacing:et,rect:{x:V,y:Z,width:W,height:q}});N.label.text=G,N.label.x=st.x,N.label.y=st.y,N.label.textAlign=st.textAlign,N.label.textBaseline=st.textBaseline}else N.label.text=""}createNodeDatum(t,e){const i=this.createSkeletonNodeDatum(t,e);return this.updateNodeDatum(t,i,e),i}createPointDatum(t,e,i,n,s){const{yScale:a,barAlongX:o,categoryAxisReversed:r,lineStrokeWidth:l}=t,c=Math.round(a.convert(i)),u=Math.round(a.convert(n)),d=s?c:u,g=Math.floor(l)%2/2,f=r?c:d,y=r?d:c,x={x:e.x,y:e.y,width:e.width,height:e.height};let S,D;return o?(S={x:f+g,y:x.y},D={x:y+g,y:x.y+x.height}):(S={x:x.x,y:f+g},D={x:x.x+x.width,y:y+g}),{x:r?D.x:S.x,y:r?D.y:S.y,x2:r?S.x:D.x,y2:r?S.y:D.y,size:0}}updateSeriesItemTypes(){const{dataModel:t,seriesItemTypes:e,processedData:i}=this;if(!t||!i)return;e.clear();const n=t.resolveProcessedDataIndexById(this,"yCurrentPositive"),s=t.resolveProcessedDataIndexById(this,"yCurrentNegative"),a=t.resolveProcessedDataIndexById(this,"totalTypeValue"),o=i.domain.values[n]??[],r=i.domain.values[s]??[];o.length>0&&e.add("positive"),r.length>0&&e.add("negative");const l=i?.domain.values[a];if(l)for(const c of l)(c==="total"||c==="subtotal")&&e.add("total")}isSubtotal(t){return t==="subtotal"}isTotal(t){return t==="total"}nodeFactory(){return new vht}getSeriesItemType(t,e){return e??(t?"positive":"negative")}getItemConfig(t){switch(t){case"positive":return this.properties.item.positive;case"negative":return this.properties.item.negative;case"subtotal":case"total":return this.properties.item.total}}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t,n=e??[];return Aht(this.processedData)?i.update(n,void 0,s=>Aw(s.datumIndex)):i.update(n)}getItemStyle(t,e,i,n="total"){const{properties:s}=this,{datumIndex:a=0,datum:o}=t??{},r=n==="subtotal"?"total":n,l=s.item[r],c=this.getHighlightStyle(e,a,i),u=Et(c,s.getStyle(n)),{itemStyler:d}=l;let g=u;if(d!=null&&t!=null){const f=this.cachedDatumCallback(Aw(a,e?"highlight":"node"),()=>{const y=this.makeItemStylerParams(n,a,o,e,g);return this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`,"item",r],this.callWithContext(d,y))});f&&(g=Et(f,g))}return g}makeItemStylerParams(t,e,i,n,s){const{id:a,properties:o}=this,{xKey:r,yKey:l}=o,c=this.ctx.highlightManager?.getActiveHighlight(),u=this.getHighlightStateString(c,n,e),d=this.filterItemStylerFillParams(s.fill)??s.fill;return{seriesId:a,itemType:t,datum:i,xKey:r,yKey:l,highlightState:u,...s,fill:d}}updateDatumStyles({datumSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getItemStyle(n,e,void 0,n.itemType)})}updateDatumNodes({datumSelection:t,isHighlight:e}){const{contextNodeData:i}=this;if(!i)return;const n=this.ctx.highlightManager.getActiveHighlight(),s=this.getCategoryDirection()===z.X,a=this.getShapeFillBBox();t.each((o,r)=>{const l=r.style??i.styles[r.itemType][this.getHighlightState(n,e,r.datumIndex)];o.setStyleProperties(l,a),o.cornerRadius=l.cornerRadius??0,o.visible=s?r.width>0:r.height>0,o.crisp=r.crisp})}updateLabelSelection(t){const{labelData:e,labelSelection:i}=t;if(e.length===0)return i.update([]);const n=e.filter(s=>{const{label:a}=this.getItemConfig(s.itemType);return a.enabled});return i.update(n)}updateLabelNodes({labelSelection:t,isHighlight:e}){const i={itemType:"positive",xKey:this.properties.xKey,xName:this.properties.xName??this.properties.xName,yKey:this.properties.yKey,yName:this.properties.yName??this.properties.yName},n=this.ctx.highlightManager?.getActiveHighlight();t.each((s,a)=>{i.itemType=a.itemType;const o=this.getHighlightStyle(e,a.datumIndex)?.opacity??1;s.visible=!0,s.fillOpacity=o;const r=this.getItemConfig(a.itemType).label;cht(this,s,i,r,a.label,e,n)})}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s}=this,{xKey:a,xName:o,yKey:r,yName:l,tooltip:c,legendItemName:u}=s,d=this.getCategoryAxis(),g=this.getValueAxis();if(!i||!n||!d||!g)return;const f=n.dataSources.get(this.id)?.data[t],y=i.resolveKeysById(this,"xValue",n)[t],x=i.resolveColumnById(this,"yRaw",n)[t],S=i.resolveColumnById(this,"yCurrentTotal",n),D=i.resolveColumnById(this,"totalTypeValue",n),A=this.properties.allowNullKeys??!1;if(y===void 0&&!A)return;const I=D[t],w=(x??0)>=0,N=this.getSeriesItemType(w,I);let O;if(this.isTotal(I))O=S[t];else if(this.isSubtotal(I)){O=S[t];for(let P=t-1;P>=0;P-=1)if(this.isSubtotal(D[P])){O=O-S[P];break}}else O=x;const L=this.contextNodeData?.nodeData?.[t],R=this.getItemStyle(L,!1,void 0,L?.itemType);return this.formatTooltipWithContext(c,{heading:this.getAxisValueText(d,"tooltip",y,f,a,u),symbol:this.legendItemSymbol(N),data:[{label:l,fallbackLabel:r,value:this.getAxisValueText(g,"tooltip",O,f,r,u),missing:j.isTooltipValueMissing(O)}]},{seriesId:e,datum:f,title:l,itemType:N,xKey:a,xName:o,yKey:r,yName:l,...R})}legendItemSymbol(t){const{fill:e,stroke:i,fillOpacity:n,strokeOpacity:s,strokeWidth:a,lineDash:o,lineDashOffset:r}=this.getItemConfig(t);return{marker:{fill:e,stroke:i,fillOpacity:n,strokeOpacity:s,strokeWidth:a,lineDash:o,lineDashOffset:r}}}getLegendData(t){if(t!=="category")return[];const{id:e,seriesItemTypes:i}=this,n=[],s=o=>o.charAt(0).toUpperCase()+o.substring(1),{showInLegend:a}=this.properties;for(const o of i){const{name:r}=this.getItemConfig(o);n.push({legendType:"category",id:e,itemId:Aw(o),seriesId:e,enabled:!0,label:{text:r??s(o)},symbol:this.legendItemSymbol(o),hideInLegend:!a,isFixed:!0})}return n}toggleSeriesItem(){}resetDatumAnimation(t){dht([t.datumSelection])}animateEmptyUpdateReady(t){const{datumSelection:e,labelSelection:i,contextData:n}=t,s=hht(uht(this.isVertical(),this.axes,"normal"),"unknown");Sht.fromToMotion(this.id,"datums",this.ctx.animationManager,[e],s),ght(this,"labels",this.ctx.animationManager,i);const{pointData:a}=n;a&&(this.isVertical()?this.animateConnectorLinesVertical(t):this.animateConnectorLinesHorizontal(t))}animateConnectorLinesHorizontal(t){const{pointData:e=[]}=t.contextData,[i]=t.paths,{path:n}=i;this.updateLineNode(i);const s=this.getValueAxis(),a=s?.isReversed(),o=a?(u,d)=>uu>d,r=s?.scale.convert(0),l=e.reduce((u,d)=>(o(d.x,u)&&(u=d.x),u),a?1/0:0),c=(u,d,g,f,y)=>(u-d)/(g-d)*(y-f)+f;this.ctx.animationManager.animate({id:`${this.id}_connectors`,groupId:this.id,phase:"initial",from:r,to:l,ease:Lc,collapsable:!1,onUpdate(u){n.clear(!0);for(const[d,g]of e.entries()){const f=c(u,r,l,r,g.x),y=c(u,r,l,r,g.x2);d!==0&&n.lineTo(f,g.y),n.moveTo(y,g.y2)}i.checkPathDirty()},onStop:()=>this.resetConnectorLinesPath(t)})}animateConnectorLinesVertical(t){const{pointData:e=[]}=t.contextData,[i]=t.paths,{path:n}=i;this.updateLineNode(i);const s=this.getValueAxis(),a=s?.isReversed(),o=a?(u,d)=>u>d:(u,d)=>u(o(d.y,u)&&(u=d.y),u),a?0:1/0),c=(u,d,g,f,y)=>(u-d)/(g-d)*(y-f)+f;this.ctx.animationManager.animate({id:`${this.id}_connectors`,groupId:this.id,phase:"initial",from:r,to:l,ease:Lc,collapsable:!1,onUpdate(u){n.clear(!0);for(const[d,g]of e.entries()){const f=c(u,r,l,r,g.y),y=c(u,r,l,r,g.y2);d!==0&&n.lineTo(g.x,f),n.moveTo(g.x2,y)}i.checkPathDirty()},onStop:()=>this.resetConnectorLinesPath(t)})}animateReadyResize(t){super.animateReadyResize(t),this.resetConnectorLinesPath(t)}updatePaths(t){this.resetConnectorLinesPath({contextData:t.contextData,paths:t.paths})}resetConnectorLinesPath({contextData:t,paths:e}){if(e.length===0)return;const[i]=e;this.updateLineNode(i);const{path:n}=i;n.clear(!0);const{pointData:s}=t;if(s){for(const[a,o]of s.entries())a!==0&&n.lineTo(o.x,o.y),n.moveTo(o.x2,o.y2);i.checkPathDirty()}}updateLineNode(t){const{stroke:e,strokeWidth:i,strokeOpacity:n,lineDash:s,lineDashOffset:a}=this.properties.line;t.setProperties({fill:void 0,stroke:e,strokeWidth:i,strokeOpacity:n,lineDash:s,lineDashOffset:a,lineJoin:"round",pointerEvents:j.PointerEvents.None})}isLabelEnabled(){const{positive:t,negative:e,total:i}=this.properties.item;return t.label.enabled||e.label.enabled||i.label.enabled}computeFocusBounds({datumIndex:t}){return xht(this,this.contextNodeData?.nodeData[t])}hasItemStylers(){const{positive:t,negative:e,total:i}=this.properties.item;return t.itemStyler!=null||t.label.itemStyler!=null||e.itemStyler!=null||e.label.itemStyler!=null||i.itemStyler!=null||i.label.itemStyler!=null}};r5.className="WaterfallSeries";r5.type="waterfall";var{waterfallSeriesThemeableOptionsDef:kht}=j,Cht={...kht,..._e,type:ht(Jt("waterfall")),xKey:ht(K),yKey:ht(K),xKeyAxis:K,yKeyAxis:K,xName:K,yName:K,totals:Xi({totalType:ht(dt("total","subtotal")),index:ht(X),axisLabel:ht(K)},"a total definition options array"),width:bo};function Iw(t,e){return{fill:{$applySwitch:[{$path:"type"},{$if:[{$eq:[{$palette:"type"},"user-indexed"]},{$path:[`/${e}`,{$palette:"fill"},{$palette:"fills"}]},{$palette:`${t}.fill`}]},["gradient",B1(t)],["image",$s],["pattern",V1(t)]]},stroke:{$palette:`${t}.stroke`},strokeWidth:{$isUserOption:["./stroke",2,0]},label:{...Oe,enabled:!1,fontStyle:void 0,fontWeight:{$ref:"fontWeight"},fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},color:{$ref:"textColor"},formatter:void 0,placement:"outside-end",padding:{$isUserOption:["./spacing",0,6]}}}}Iw("altUp",0),Iw("altDown",1),Iw("neutral",2);var wht={options:Cht,axisKeys:{[z.X]:"xKeyAxis",[z.Y]:"yKeyAxis"},axisKeysFlipped:{[z.X]:"yKeyAxis",[z.Y]:"xKeyAxis"}},yo=["cursor","highlightStyle","listeners","nodeClickRange","showInLegend","showInMiniChart","tooltip","visible","xName","yName"],Nht=[...yo,"errorBar","label","legendItemName"],Tht=[...yo,"direction","legendItemName","minName","q1Name","medianName","q3Name","maxName"],Lht=[...yo,"title","label","labelKey","labelName","sizeName"],Oht=[...yo,"title","label","colorName","textAlign","verticalAlign","itemPadding","colorRange"],Eht=[...yo,"label"],Rht=[...yo,"errorBar","title","label"],Pht=[...yo,"label","yLowName","yHighName"],zht=[...yo,"direction","label","yLowName","yHighName"],Bht=[...yo,"errorBar","title","label","labelKey","labelName"],Vht=[...yo,"direction"];({formatter:Is(xo),...De},Xi(xp({area:At(UW.options,[...yo,"type"]),bar:At(WW.options,[...Nht,"type"]),"box-plot":At(Brt.options,[...Tht,"type"]),bubble:At($W.options,[...Lht,"type"]),candlestick:At(hlt.options,[...yo,"type"]),heatmap:At(Llt.options,[...Oht,"type"]),histogram:At(XW.options,[...Eht,"type"]),line:At(qW.options,[...Rht,"type"]),ohlc:At(Elt.options,[...yo,"type"]),"range-area":At(Mct.options,[...Pht,"type"]),"range-bar":At(Jct.options,[...zht,"type"]),scatter:At(QW.options,[...Bht,"type"]),waterfall:At(wht.options,[...Vht,"type"])},"miniChart series options")));Cn.SMALLER;var _ht=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=new Map,this.enableDoubleClick=new Map,this.enableDragging=new Map,this.enableScrolling=new Map,this.axes=[],this.overlappingAxisIds=new Set,t.widgets.seriesDragInterpreter&&this.cleanup.register(t.widgets.seriesDragInterpreter.events.on("dblclick",e=>this.onSeriesAreaDoubleClick(e)),t.widgets.seriesDragInterpreter.events.on("drag-start",e=>this.onSeriesAreaDragStart(e)),t.widgets.seriesDragInterpreter.events.on("drag-move",e=>this.onSeriesAreaDragMove(e)),t.widgets.seriesDragInterpreter.events.on("drag-end",e=>this.onSeriesAreaDragEnd(e))),this.cleanup.register(t.eventsHub.on("layout:complete",e=>this.onLayoutComplete(e)),t.eventsHub.on("axis-dom-proxy:update",e=>this.onUpdate(e)),t.eventsHub.on("series-area:hover",e=>this.onSeriesAreaHover(e)),t.eventsHub.on("series-area:click",e=>this.onSeriesAreaClick(e)),()=>this.teardown())}teardown(){for(const t of this.axes)t.div.destroy()}onLayoutComplete(t){this.seriesRect=t.series.rect}onUpdate(t){const{enabled:e,enableDoubleClick:i,enableDragging:n,enableScrolling:s,source:a}=t;this.enabled.set(a,e),this.enableDoubleClick.set(a,i),this.enableDragging.set(a,n),this.enableScrolling.set(a,s);const o=this.isEnabled()&&(this.isEnabledDoubleClick()||this.isEnabledDragging()||this.isEnabledScrolling());for(const r of this.axes)r.div.setHidden(!o);o&&(this.processAxisDiff(),this.updateOverlappingAxisPointerEvents())}processAxisDiff(){const{ctx:{axisManager:t}}=this,e=[...t.getAxisContext(z.X),...t.getAxisContext(z.Y)],{removed:i,added:n}=this.diffAxisIds(e);i.length>0&&(this.axes=this.axes.filter(s=>i.includes(s.axisId)?(s.div.destroy(),this.overlappingAxisIds.delete(s.axisId),this.hoveredAxisId===s.axisId&&(this.hoveredAxisId=void 0),this.draggingAxisId===s.axisId&&(this.draggingAxisId=void 0),!1):!0));for(const s of n){const{axisId:a,direction:o}=s,r=this.createAxisDOMProxy(a,o);this.axes.push(r)}for(const s of this.axes){const o=e.find(r=>r.axisId===s.axisId).getCanvasBounds();s.div.setHidden(nj(o)),o==null?s.bounds=void 0:(s.div.setBounds(o),s.bounds=new j.BBox(o.x,o.y,o.width,o.height))}}onSeriesAreaHover(t){if(t.consumed){this.hoveredAxisId&&(this.hoveredAxisId=void 0,this.ctx.eventsHub.emit("axis-dom-proxy:mouseleave",{event:t}));return}if(!this.hasOverlappingAxes())return;const e=this.pickAxisAtPoint(t);e?(this.hoveredAxisId=e.axisId,this.ctx.eventsHub.emit("axis-dom-proxy:mouseenter",{axisId:e.axisId,direction:e.direction,event:t})):(this.hoveredAxisId&&this.ctx.eventsHub.emit("axis-dom-proxy:mouseleave",{event:t}),this.hoveredAxisId=void 0)}onSeriesAreaClick(t){if(t.sourceEvent.type!=="dblclick"||t.consumed||!this.hasOverlappingAxes())return;const e=this.getAxis(this.hoveredAxisId);e&&this.ctx.eventsHub.emit("axis-dom-proxy:dblclick",{event:t,axisId:e.axisId,direction:e.direction})}onSeriesAreaDoubleClick(t){if(!this.isEnabled()||!this.isEnabledDoubleClick()||!this.hasOverlappingAxes())return;const e=this.getAxis(this.hoveredAxisId);e&&this.ctx.eventsHub.emit("axis-dom-proxy:dblclick",{event:t,axisId:e.axisId,direction:e.direction})}onSeriesAreaDragStart(t){if(!this.isEnabled()||!this.isEnabledDragging())return;const e=this.getAxis(this.hoveredAxisId);e&&this.overlappingAxisIds.has(e.axisId)&&(this.draggingAxisId=e.axisId,this.ctx.eventsHub.emit("axis-dom-proxy:drag-start",{axisId:e.axisId,direction:e.direction,event:t}),t.device==="touch"&&t.sourceEvent.preventDefault())}onSeriesAreaDragMove(t){if(!this.isEnabled()||!this.isEnabledDragging()||!this.draggingAxisId||!this.overlappingAxisIds.has(this.draggingAxisId))return;const e=this.getAxis(this.draggingAxisId);e&&this.ctx.eventsHub.emit("axis-dom-proxy:drag-move",{axisId:e.axisId,direction:e.direction,event:t})}onSeriesAreaDragEnd(t){if(!this.draggingAxisId||!this.overlappingAxisIds.has(this.draggingAxisId))return;const e=this.getAxis(this.draggingAxisId);e&&(this.draggingAxisId=void 0,this.ctx.eventsHub.emit("axis-dom-proxy:drag-end",{axisId:e.axisId,direction:e.direction,event:t}))}pickAxisAtPoint(t){for(const e of this.axes)if(this.overlappingAxisIds.has(e.axisId)&&e.bounds?.containsPoint(t.canvasX,t.canvasY))return{axisId:e.axisId,direction:e.direction}}hasOverlappingAxes(){return this.overlappingAxisIds.size>0}getAxis(t){if(!t)return;const e=this.axes.find(i=>i.axisId===t);return e?{axisId:e.axisId,direction:e.direction}:void 0}updateOverlappingAxisPointerEvents(){this.overlappingAxisIds.clear();const t=(this.isEnabledDragging()||this.isEnabledScrolling())&&this.seriesRect;for(const e of this.axes){if(!t){e.div.setPointerEvents(void 0);continue}!!e.bounds?.clone().shrink(1).collidesBBox(this.seriesRect)?(this.overlappingAxisIds.add(e.axisId),e.div.setPointerEvents("none")):e.div.setPointerEvents(void 0)}this.cleanupAxisState()}cleanupAxisState(){this.hoveredAxisId&&!this.overlappingAxisIds.has(this.hoveredAxisId)&&(this.hoveredAxisId=void 0),this.draggingAxisId&&!this.overlappingAxisIds.has(this.draggingAxisId)&&(this.draggingAxisId=void 0)}createAxisDOMProxy(t,e){const{ctx:{proxyInteractionService:i}}=this,s=i.createProxyElement({type:"region",domManagerId:t,where:"afterend"});return s.addListener("drag-start",a=>{!this.isEnabled()||!this.isEnabledDragging()||(a.device==="touch"&&a.sourceEvent.preventDefault(),this.draggingAxisId=t,this.ctx.eventsHub.emit("axis-dom-proxy:drag-start",{axisId:t,direction:e,event:a}))}),s.addListener("drag-move",a=>{!this.isEnabled()||!this.isEnabledDragging()||this.ctx.eventsHub.emit("axis-dom-proxy:drag-move",{axisId:t,direction:e,event:a})}),s.addListener("drag-end",a=>{!this.isEnabled()||!this.isEnabledDragging()||(this.draggingAxisId=void 0,this.ctx.eventsHub.emit("axis-dom-proxy:drag-end",{axisId:t,direction:e,event:a}))}),s.addListener("dblclick",a=>{!this.isEnabled()||!this.isEnabledDoubleClick()||this.ctx.eventsHub.emit("axis-dom-proxy:dblclick",{axisId:t,direction:e,event:a})}),s.addListener("mouseenter",a=>{this.isEnabled()&&(this.hoveredAxisId=t,this.ctx.eventsHub.emit("axis-dom-proxy:mouseenter",{axisId:t,direction:e,event:a}))}),s.addListener("mouseleave",a=>{this.isEnabled()&&(this.hoveredAxisId=void 0,this.ctx.eventsHub.emit("axis-dom-proxy:mouseleave",{event:a}))}),s.addListener("wheel",a=>{!this.isEnabled()||!this.isEnabledScrolling()||this.ctx.eventsHub.emit("axis-dom-proxy:wheel",{axisId:t,direction:e,event:a})}),{axisId:t,div:s,direction:e}}diffAxisIds(t){const e=this.axes.map(a=>a.axisId),i=t.map(a=>a.axisId),n=e.filter(a=>!i.includes(a)),s=t.filter(a=>!e.includes(a.axisId));return{removed:n,added:s}}isEnabled(){return this.isBooleanMap(this.enabled)}isEnabledDoubleClick(){return this.isBooleanMap(this.enableDoubleClick)}isEnabledDragging(){return this.isBooleanMap(this.enableDragging)}isEnabledScrolling(){return this.isBooleanMap(this.enableScrolling)}isBooleanMap(t){for(const e of t.values())if(e)return!0;return!1}},Fht={type:"plugin",name:"axis-dom-proxy",version:oi,create:t=>new _ht(t)},Hht=class{constructor(){this.isFirstWheelEvent=!0,this.debouncedWheelReset=M1(()=>{this.isFirstWheelEvent=!0,this.wasFirstWheelEventZoomCapped=void 0},100)}onWheel(t,e){if(t.sourceEvent.cancelable===!1)return;const i=e();if(i==="abort")return;const n=i==="capped";this.firstWheelEventDirection!=null&&this.firstWheelEventDirection!==t.deltaY<0&&(this.isFirstWheelEvent=!0),this.isFirstWheelEvent?(this.wasFirstWheelEventZoomCapped=n,this.firstWheelEventDirection=t.deltaY<0,n||t.sourceEvent.preventDefault()):this.wasFirstWheelEventZoomCapped===!1&&t.sourceEvent.preventDefault(),this.isFirstWheelEvent=!1,this.debouncedWheelReset()}},rF=["zoom","scrollbar"],jht=class extends Ln{constructor(t){super(),this.ctx=t,this.wheelSequencer=new Hht,this.cleanup.register(t.eventsHub.on("axis-dom-proxy:mouseenter",e=>this.onAxisMouseEnter(e)),t.eventsHub.on("axis-dom-proxy:mouseleave",e=>this.onAxisMouseLeave(e)),t.eventsHub.on("axis-dom-proxy:drag-start",e=>this.onAxisDragStart(e)),t.eventsHub.on("axis-dom-proxy:drag-move",e=>this.onAxisDragMove(e)),t.eventsHub.on("axis-dom-proxy:drag-end",e=>this.onAxisDragEnd(e)),t.eventsHub.on("axis-dom-proxy:dblclick",e=>this.onAxisDoubleClick(e)),t.eventsHub.on("axis-dom-proxy:wheel",e=>this.onAxisWheel(e)),t.eventsHub.on("scrollbar:wheel",e=>this.onScrollbarWheel(e)),t.widgets.seriesWidget.addListener("wheel",e=>this.onSeriesAreaWheel(e)))}onAxisMouseEnter(t){this.processEvent("axis-mouseenter",t)}onAxisMouseLeave(t){this.processEvent("axis-mouseleave",t)}onAxisDragStart(t){this.processEvent("axis-drag-start",t)}onAxisDragMove(t){this.processEvent("axis-drag-move",t)}onAxisDragEnd(t){this.processEvent("axis-drag-end",t)}onAxisDoubleClick(t){this.processEvent("axis-dblclick",t)}onSeriesAreaWheel(t){this.wheelSequencer.onWheel(t,()=>this.handleWheelSequencer("wheel",{event:t}))}onAxisWheel({event:t,direction:e}){this.wheelSequencer.onWheel(t,()=>this.handleWheelSequencer("axis-wheel",{event:t,direction:e}))}onScrollbarWheel({event:t,orientation:e}){this.wheelSequencer.onWheel(t,()=>this.handleWheelSequencer("scrollbar-wheel",{event:t,direction:e==="horizontal"?z.X:z.Y}))}handleWheelSequencer(t,e){let i=!1,n="abort";for(const s of rF){const a={...e,abort(){n="abort"},capped(){n="capped"},uncapped(){n="uncapped"},stopProcessing(){i=!0}};if(this.ctx.eventsHub.emit(`zoom-interaction:${s}:${t}`,a),i)return n}return"abort"}processEvent(t,e){let i=!1;for(const n of rF){const s={...e,stopProcessing(){i=!0}};if(this.ctx.eventsHub.emit(`zoom-interaction:${n}:${t}`,s),i)return}}},Ght={type:"plugin",name:"zoom-base",version:oi,dependencies:[Fht],create:t=>new jht(t)},$d=Hn-vo,l5="end",c5="middle",Uht=300,yS=(t,e=vo,i=Hn)=>Nt(e,t,i);function jn(t){return t.x.max-t.x.min}function Ha(t){return t.y.max-t.y.min}function lF(t,e){return be(t.min,e.min)&&be(t.max,e.max)}function h5(t,e){return lF(t.x,e.x)&&lF(t.y,e.y)}function pf(t){return h5(t,Ni())}function Rc(t,e,i){if(!t)return{x:0,y:0};const n=yS(e-t.x,0,t.x+t.width),s=yS(i-t.y,0,t.y+t.height),a=1/t.width*n,o=1-1/t.height*s;return{x:yS(a),y:yS(o)}}function mp(t,e,i){return{x:{min:t.x.min+e,max:t.x.max+e},y:{min:t.y.min+i,max:t.y.max+i}}}function HM(t,e,i){return{x:{min:t.x.min,max:t.x.min+jn(t)*e},y:{min:t.y.min,max:t.y.min+Ha(t)*i}}}function cF(t,e,i){const n=jn(t),s=Ha(t),a=t.x.min+n/2,o=t.y.min+s/2;return{x:{min:a-n*e/2,max:a+n*e/2},y:{min:o-s*i/2,max:o+s*i/2}}}function lo(t,e,i,n){const{min:s,max:a}=e,o=s+(a-s)/2,r=t.max-t.min;switch(i){case"start":return{min:s,max:e.min+r};case"end":return{min:e.max-r,max:a};case"middle":return{min:o-r/2,max:o+r/2};case"pointer":return Wht(t,e,n??o);default:return{min:s,max:a}}}function Wht(t,e,i){const n=t.max-t.min,s=e.max-e.min,a=i*(1-(s-n)),o=i-a,r=t.min+o,l=t.max+o;return{min:r,max:l}}function Kht(t,e,i){return{x:{min:t.x.min*e,max:t.x.max*e},y:{min:t.y.min*i,max:t.y.max*i}}}function lr(t){return{x:lx(t.x),y:lx(t.y)}}function lx(t){const e=t.max-t.min;let i=t.max>Hn?Hn-e:t.min,n=t.min{this.timer=void 0,this.run(Yht)},t))}clearTimer(){this.timer!=null&&(clearTimeout(this.timer),this.timer=void 0)}isActive(){return this.timer!=null}},Xht=class{constructor(){this.min=0,this.span=1,this.thumbSpan=1}update(t,e,i=this.thumbSpan){const n=Nt(0,e-t,1);this.span=n,this.thumbSpan=Nt(0,i,1),this.min=this.clampMin(t,n)}clampMin(t,e=this.span){return Nt(0,t,1-e)}getThumbBounds(t=this.min,e=this.thumbSpan){const i=this.clampMin(t,e);return{start:i,end:i+e}}isWithinThumb(t){const{start:e,end:i}=this.getThumbBounds();return t>=e&&t<=i}getJumpRange(t){if(!this.canScroll())return;let e=this.clampMin(t-this.thumbSpan/2,this.thumbSpan);return e=this.clampMin(e),{min:e,max:e+this.span}}getStepRange(t){if(!this.canScroll())return;const e=Nt(0,t,1),{start:i,end:n}=this.getThumbBounds();if(e>=i&&e<=n)return;const s=e0&&this.span<1}},Zht=class{constructor(t,e,i,n){this.ctx=t,this.orientation=e,this.onChange=i,this.onHoverChange=n,this.dragStartRatio=0,this.interactionMode="none",this.state=new Xht,this.repeater=new $ht(o=>this.applyStepToward(o)),this.container=t.proxyInteractionService.createProxyContainer({type:"group",domManagerId:`scrollbar-${e}`,classList:["ag-charts-proxy-scrollbar",`ag-charts-proxy-scrollbar-${e}`],ariaLabel:void 0,role:"presentation"});const s=e==="horizontal"?"ariaLabelScrollbarHorizontal":"ariaLabelScrollbarVertical";this.slider=t.proxyInteractionService.createProxyElement({type:"slider",domIndex:0,tabIndex:0,ariaLabel:{id:s},role:"slider",parent:this.container,classList:["ag-charts-proxy-scrollbar-slider"]});const a=this.slider.getElement();a.ariaValueMin="0",a.ariaValueMax="100",this.slider.step=uF.STEP_HUNDRETH,this.slider.keyboardStep=uF.STEP_ONE,this.slider.orientation=e,this.slider.setPreventsDefault(!1),this.slider.addListener("change",()=>this.onSliderChange()),this.slider.addListener("keydown",o=>this.onSliderKeyDown(o)),this.slider.addListener("drag-start",o=>this.onDragStart(o)),this.slider.addListener("drag-move",o=>this.onDragMove(o)),this.slider.addListener("drag-end",o=>this.onDragEnd(o)),this.slider.addListener("mouseenter",o=>this.handleHoverEvent(o)),this.slider.addListener("mousemove",o=>this.handleHoverEvent(o)),this.slider.addListener("mouseleave",()=>this.onMouseLeave()),this.slider.addListener("wheel",o=>t.eventsHub.emit("scrollbar:wheel",{event:o,orientation:e})),this.thumbFocus=t.proxyInteractionService.createProxyElement({type:"region",parent:this.container,classList:["ag-charts-proxy-scrollbar-thumb-focus"],role:"presentation"}),this.thumbFocus.setAriaHidden(!0),this.thumbFocus.setPointerEvents("none")}destroy(){this.interactionBounds=void 0,this.repeater.stop(),this.container.destroy()}updateBounds(t){this.interactionBounds=void 0,this.container.setBounds(t),this.slider.setBounds({x:0,y:0,width:t.width,height:t.height})}updateVisibility(t){this.container.setHidden(!t)}updateMinMax(t,e,i=this.state.thumbSpan,n){this.state.update(t,e,i);const s=this.ctx.localeManager.t("ariaValuePanRange",{min:Math.round(t*100)/100,max:Math.round(e*100)/100}),a=this.slider.getElement();a.ariaValueText=s,(!n?.skipSliderUpdate||Math.abs(this.slider.getValueRatio()-t)>1e-9)&&this.slider.setValueRatio(t,{ariaValueText:s})}updateThumbBounds(t,e,i){const n=Math.max(0,i??0);this.thumbFocus.getElement().style.borderRadius=`${n}px`,this.thumbFocus.setBounds({x:t.x-e.x,y:t.y-e.y,width:t.width,height:t.height})}update(t,e,i){this.onChange(t,e),this.updateMinMax(t,e,void 0,i)}onSliderChange(){const t=this.state.clampMin(this.slider.getValueRatio()),e=t+this.state.span;this.update(t,e,{skipSliderUpdate:!0})}onSliderKeyDown(t){const{code:e}=t.sourceEvent,i=this.orientation==="vertical",n=i&&e==="ArrowUp"||!i&&e==="ArrowLeft",s=i&&e==="ArrowDown"||!i&&e==="ArrowRight";if(!n&&!s)return;t.sourceEvent.preventDefault();const a=this.slider.getElement();a.step=this.slider.keyboardStep?.attributeValue??"1",n?a.stepDown():s&&a.stepUp(),this.onSliderChange()}onDragMove(t){if(t.sourceEvent.preventDefault(),this.interactionMode==="drag"){const{isHorizontal:s,size:a,start:o}=this.getInteractionBounds()??{};if(o==null||a==null)return;const r=(s?t.originDeltaX:t.originDeltaY)/a,l=this.state.clampMin(this.dragStartRatio+r),c=l+this.state.span;this.update(l,c);return}if(this.interactionMode!=="step")return;const e=this.getPointerInfo(t);if(e==null||!Number.isFinite(e.ratio))return;const{ratio:i,inCrossBounds:n}=e;if(!n){this.repeater.stop();return}this.repeater.updateTarget(i)}onDragEnd(t){t.sourceEvent.preventDefault(),this.interactionBounds=void 0,this.setInteraction("none"),this.onHoverChange(!1)}onDragStart(t){t.sourceEvent.preventDefault(),this.interactionBounds=void 0;const e=this.getClickInfo(t);if(e?.inBounds){if(e.inThumb){this.dragStartRatio=this.slider.getValueRatio(),this.setInteraction("drag");return}if(t.sourceEvent.shiftKey){this.jumpTo(e.ratio),this.setInteraction("none");return}this.beginStepRepeat(e.ratio)}}onMouseLeave(){this.onHoverChange(!1)}getClickInfo(t){const e=this.getPointerRatio(t);return e==null?void 0:e>=0&&e<=1?{ratio:e,inBounds:!0,inThumb:this.isWithinThumb(e)}:{ratio:0,inBounds:!1,inThumb:!1}}getPointerRatio(t){return this.getPointerInfo(t)?.ratio}getPointerInfo(t){if(t.device==="keyboard")return;const{isHorizontal:e,size:i,start:n,crossStart:s,crossSize:a}=this.getInteractionBounds(),o=e?t.clientX:t.clientY,r=e?t.clientY:t.clientX,l=(o-n)/i,c=r>=s&&r<=s+a;return{ratio:l,inCrossBounds:c}}jumpTo(t){const e=this.state.getJumpRange(t);e&&this.update(e.min,e.max)}applyStepToward(t){const e=this.state.getStepRange(t);return e?(this.update(e.min,e.max),!1):!0}beginStepRepeat(t){this.setInteraction("step"),this.repeater.start(t)}setInteraction(t){this.interactionMode=t,t!=="step"&&this.repeater.stop()}getInteractionBounds(){if(this.interactionBounds)return this.interactionBounds;const{width:t,height:e,left:i,top:n}=this.container.getBoundingClientRect(),s=this.orientation==="horizontal",a=s?t:e,o=s?i:n,r=s?n:i,l=s?e:t;return this.interactionBounds={isHorizontal:s,size:a,start:o,crossStart:r,crossSize:l},this.interactionBounds}isWithinThumb(t){return this.state.isWithinThumb(t)}handleHoverEvent(t){if(this.interactionMode==="drag")return;const e=this.getPointerInfo(t);if(!e){this.onHoverChange(!1);return}const i=this.isWithinThumb(e.ratio);this.onHoverChange(i)}},ko=class extends Zf{constructor(){super(...arguments),this.enabled=!1,this.fillOpacity=1,this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.opacity=1}};M([b,ut()],ko.prototype,"enabled");M([b,ut()],ko.prototype,"fill");M([b,ut()],ko.prototype,"fillOpacity");M([b,ut()],ko.prototype,"stroke");M([b,ut()],ko.prototype,"strokeWidth");M([b,ut()],ko.prototype,"strokeOpacity");M([b],ko.prototype,"lineDash");M([b],ko.prototype,"lineDashOffset");M([b],ko.prototype,"cornerRadius");M([b],ko.prototype,"opacity");var HO=class extends Zf{};M([b,ut()],HO.prototype,"fill");M([b,ut()],HO.prototype,"stroke");var _A=class extends ko{constructor(){super(...arguments),this.minSize=20,this.hoverStyle=new HO}};M([b,ut()],_A.prototype,"minSize");M([b],_A.prototype,"hoverStyle");var Hl=class extends Zf{constructor(){super(...arguments),this.enabled=!1,this.thickness=12,this.spacing=4,this.tickSpacing=0,this.placement="outer",this.visible="auto",this.track=new ko,this.thumb=new _A}};M([b,ut()],Hl.prototype,"enabled");M([b,ut()],Hl.prototype,"thickness");M([b,ut()],Hl.prototype,"spacing");M([b,ut()],Hl.prototype,"tickSpacing");M([b,ut()],Hl.prototype,"placement");M([b,ut()],Hl.prototype,"visible");M([b],Hl.prototype,"track");M([b],Hl.prototype,"thumb");var p5=class extends Hl{};M([b,ut()],p5.prototype,"position");var g5=class extends Hl{};M([b,ut()],g5.prototype,"position");var{BBox:_g,Group:qht,Rect:pF,LayoutElement:Qht,InteractionState:Jht}=j,tut=.1,eut="pan",gr=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!1,this.enableAxisScrolling=!1,this.enableSeriesAreaScrolling=!1,this.track=new ko,this.thumb=new _A,this.horizontal=new p5,this.vertical=new g5,this.scrollPanner=new d5,this.state={horizontal:this.createOrientationState("horizontal"),vertical:this.createOrientationState("vertical")},this.cleanup.register(t.scene.attachNode(this.state.horizontal.group),t.scene.attachNode(this.state.vertical.group),t.layoutManager.registerElement(Qht.Scrollbar,e=>this.onLayoutStart(e)),t.eventsHub.on("layout:complete",e=>this.onLayoutComplete(e)),t.eventsHub.on("zoom:change-complete",()=>this.updateThumbs()),t.eventsHub.on("zoom-interaction:scrollbar:wheel",e=>this.onWheel(e)),t.eventsHub.on("zoom-interaction:scrollbar:axis-wheel",e=>this.onAxisWheel(e)),t.eventsHub.on("zoom-interaction:scrollbar:scrollbar-wheel",e=>this.onScrollbarWheel(e)))}createOrientationState(t){const e=new qht({name:`scrollbar-${t}`,zIndex:pe.NAVIGATOR}),i=new pF,n=new pF;e.append(i),e.append(n);const s=new Zht(this.ctx,t,(o,r)=>this.handleUserChange(t,o,r),o=>this.handleHoverChange(t,o)),a=this.resolveProperties(t);return{orientation:t,group:e,track:i,thumb:n,dom:s,properties:a,position:this.getDefaultPosition(t),positionHasAxis:!1,hovered:!1}}resolveProperties(t){return t==="horizontal"?this.horizontal:this.vertical}getDefaultPosition(t){return t==="horizontal"?"bottom":"left"}resolveAxis(t,e){const i=t==="horizontal"?z.X:z.Y,n=this.ctx.axisManager.getAxisContext(i);if(n.length===0)return{position:this.getDefaultPosition(t),positionHasAxis:!1};if(e==null){const a=n[0];return{axis:a,position:a.position??this.getDefaultPosition(t),positionHasAxis:!0}}const s=n.find(a=>a.position===e);return s?{axis:s,position:e,positionHasAxis:!0}:{axis:n[0],position:e,positionHasAxis:!1}}onLayoutStart({scrollbars:t,layoutBox:e}){for(const i of["horizontal","vertical"]){const n=this.state[i],s=this.resolveProperties(i),{min:a,max:o}=this.getZoomRange(n.orientation),r=Nt(0,o-a,1),{axis:{axisId:l}={},position:c,positionHasAxis:u}=this.resolveAxis(i,s.position);n.properties=s,n.axisId=l,n.position=c,n.positionHasAxis=u;const d=this.updateVisibility(n,r);if(!d||l==null)continue;const{thickness:g,spacing:f,placement:y,tickSpacing:x}=s;u?t[l]={enabled:d,thickness:g,spacing:f,tickSpacing:x,placement:y}:e.shrink(f+g,c),this.updateStyles(n)}}onLayoutComplete(t){this.ctx.eventsHub.emit("axis-dom-proxy:update",{source:"scrollbar",enabled:this.enabled,enableDoubleClick:!1,enableDragging:!1,enableScrolling:this.enableAxisScrolling}),this.seriesRect=t.series.rect;for(const e of["horizontal","vertical"]){const i=this.state[e],{properties:{enabled:n,visible:s}}=i;if(!n||s==="never")continue;const a=this.getLayoutRect(i,e,t);i.layoutRect=a,a&&(this.updateTrack(i,a),this.updateThumb(i,a))}}getLayoutRect(t,e,i){const{properties:{thickness:n,spacing:s},position:a,positionHasAxis:o}=t,r=t.axisId?i.axes[t.axisId]:void 0;if(!r)return;const{x:l,y:c,width:u,height:d}=i.series.rect,g=e==="horizontal";if(!o)if(g){const S=a==="bottom"?c+d+s:c-s-n;return new _g(l,S,u,n)}else{const S=a==="right"?l+u+s:l-s-n;return new _g(S,c,n,d)}const{scrollbar:f,translation:y}=r;if(!f?.enabled)return;const x=g?y.y+f.offset:y.x+f.offset;return g?new _g(l,x,u,n):new _g(x,c,n,d)}updateStyles({track:t,thumb:e,properties:i,hovered:n}){t.setStyleProperties(i.track),t.cornerRadius=i.track.cornerRadius??0,t.opacity=i.track.opacity??1,e.setStyleProperties(i.thumb),e.cornerRadius=i.thumb.cornerRadius??0,e.opacity=i.thumb.opacity??1;const s=i.thumb.hoverStyle;e.fill=n?s?.fill??i.thumb.fill:i.thumb.fill,e.stroke=n?s?.stroke??i.thumb.stroke:i.thumb.stroke}updateTrack(t,e){t.track.x=e.x,t.track.y=e.y,t.track.width=e.width,t.track.height=e.height,t.dom.updateBounds(e)}updateThumb(t,e){const{min:i,max:n}=this.getZoomRange(t.orientation),s=Nt(0,n-i,1);if(!this.updateVisibility(t,s)||e.width<=0||e.height<=0)return;const o=t.properties.thumb.minSize??0;let r;if(t.orientation==="horizontal"){const l=Math.min(Math.max(o,e.width*s),e.width),c=Nt(e.x,e.x+e.width*i,e.x+e.width-l);t.thumb.x=c,t.thumb.y=e.y,t.thumb.width=l,t.thumb.height=e.height,r=Nt(0,l/e.width,1)}else{const l=Math.min(Math.max(o,e.height*s),e.height),c=Nt(e.y,e.y+e.height*i,e.y+e.height-l);t.thumb.x=e.x,t.thumb.y=c,t.thumb.width=e.width,t.thumb.height=l,r=Nt(0,l/e.height,1)}t.dom.updateThumbBounds(t.thumb,e,t.properties.thumb.cornerRadius),t.dom.updateMinMax(i,n,r)}updateThumbs(){if(this.seriesRect)for(const t of["horizontal","vertical"]){const e=this.state[t],i=e.layoutRect;if(!i||!e.properties.enabled||e.properties.visible==="never")continue;const n=t==="horizontal"?new _g(this.seriesRect.x,i.y,this.seriesRect.width,e.properties.thickness):new _g(i.x,this.seriesRect.y,e.properties.thickness,this.seriesRect.height);this.updateThumb(e,n)}}updateVisibility(t,e){const i=t.properties.enabled&&t.axisId!=null&&t.properties.visible!=="never"&&(t.properties.visible==="always"||e<1);return t.group.visible=i,t.track.visible=i,t.thumb.visible=i,t.dom.updateVisibility(i),i}getZoomRange(t){const e=this.ctx.zoomManager.getZoom(),i=t==="horizontal",n=i?e?.x:e?.y;return!i&&n!=null?{min:1-(n.max??1),max:1-(n.min??0)}:{min:n?.min??0,max:n?.max??1}}handleUserChange(t,e,i){if(!this.ctx.interactionManager.isState(Jht.ZoomDraggable))return;const n=t==="horizontal";n||([e,i]=[1-i,1-e]);const s=n?{x:{min:e,max:i}}:{y:{min:e,max:i}};this.ctx.zoomManager.updateZoom({source:"user-interaction",sourceDetail:"scrollbar"},s)}handleHoverChange(t,e){const i=this.state[t],n=e&&i.group.visible;i.hovered!==n&&(i.hovered=n,this.updateStyles(i),this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER}))}onWheel(t){if(this.enableSeriesAreaScrolling)return this.handleWheel(t)}onAxisWheel(t){if(this.enableAxisScrolling)return this.handleWheel(t)}onScrollbarWheel(t){return this.handleWheel(t)}handleWheel(t){const{seriesRect:e,ctx:{zoomManager:i}}=this,{event:n}=t,s=Math.abs(n.deltaX)>Math.abs(n.deltaY);if(s&&!this.horizontal.enabled||!s&&!this.vertical.enabled)return;t.stopProcessing();const a=s?z.X:z.Y,o=this.ctx.zoomManager.getPrimaryAxisId(a);if(!e||!o){t.abort();return}const r=this.scrollPanner.update(n,tut,eut,e,i.getAxisZooms()),l={[a]:{min:r[o].min,max:r[o].max}};i.updateZoom({source:"user-interaction",sourceDetail:"scrollbar"},l);const c=this.getZoom();n.deltaY>0&&c.y.min===vo||n.deltaY<0&&c.y.max===Hn?t.capped():t.uncapped()}getZoom(){return Ni(this.ctx.zoomManager.getZoom())}destroy(){super.destroy(),this.state.horizontal.dom.destroy(),this.state.vertical.dom.destroy()}};M([b],gr.prototype,"enabled");M([b],gr.prototype,"enableAxisScrolling");M([b],gr.prototype,"enableSeriesAreaScrolling");M([b],gr.prototype,"thickness");M([b],gr.prototype,"spacing");M([b],gr.prototype,"tickSpacing");M([b],gr.prototype,"placement");M([b],gr.prototype,"visible");M([b],gr.prototype,"track");M([b],gr.prototype,"thumb");M([b],gr.prototype,"horizontal");M([b],gr.prototype,"vertical");var iut={...wt,...bt,...Lt,cornerRadius:X,opacity:Ot};({...iut,hoverStyle:(wt.fill,bt.stroke)});dt("auto","always","never"),dt("outer","inner");dt("top","bottom");dt("left","right");dt("auto","always","never"),dt("outer","inner");var jO=class extends Il{};M([b],jO.prototype,"enabled");M([b],jO.prototype,"value");var vl=class extends xt{constructor(){super(...arguments),this.fill="black",this.fillOpacity=1,this.stroke="black",this.textColor="black"}};M([b],vl.prototype,"fill");M([b],vl.prototype,"fillOpacity");M([b],vl.prototype,"stroke");M([b],vl.prototype,"textColor");var ca=class extends xt{constructor(){super(...arguments),this.active=new vl,this.disabled=new vl,this.hover=new vl,this.cornerRadius=0,this.fill="black",this.fillOpacity=1,this.fontSize=12,this.fontFamily="sans-serif",this.fontWeight="normal",this.stroke="black",this.strokeWidth=1,this.textColor="black",this.padding=0}};M([b],ca.prototype,"active");M([b],ca.prototype,"disabled");M([b],ca.prototype,"hover");M([b],ca.prototype,"cornerRadius");M([b],ca.prototype,"fill");M([b],ca.prototype,"fillOpacity");M([b],ca.prototype,"fontSize");M([b],ca.prototype,"fontFamily");M([b],ca.prototype,"fontWeight");M([b],ca.prototype,"stroke");M([b],ca.prototype,"strokeWidth");M([b],ca.prototype,"textColor");M([b],ca.prototype,"padding");var f5=class extends ca{constructor(){super(...arguments),this.visible="auto"}};M([b],f5.prototype,"visible");var{userInteraction:nut,LayoutElement:sut,Toolbar:gF}=j,kw="toolbarRangeSelectRange",rn=class extends xt{constructor(t){super(),this.ctx=t,this.enabled=!1,this.buttons=new ss(jO),this.button=new ca,this.dropdown=new f5,this.active=new vl,this.disabled=new vl,this.hover=new vl,this.enableOutOfRange=!1,this.gap=0,this.cornerRadius=0,this.fill="black",this.fillOpacity=1,this.fontSize=12,this.fontFamily="sans-serif",this.fontWeight="normal",this.stroke="black",this.strokeWidth=1,this.textColor="black",this.padding=0,this.position="top-right",this.spacing=0,this.minSize=0,this.cleanup=new qe,this.dropdownLabel=kw,this.cleanup.register(t.layoutManager.registerElement(sut.ToolbarBottom,this.onLayoutStart.bind(this)),t.eventsHub.on("layout:complete",this.onLayoutComplete.bind(this)),t.widgets.chartWidget.addListener("click",this.onChartWidgetClick.bind(this)),t.eventsHub.on("zoom:change-complete",this.onZoomChanged.bind(this)),this.teardown.bind(this))}destroy(){this.cleanup.flush()}setup(){this.container==null&&(this.container=this.ctx.domManager.addChild("canvas-overlay","range-buttons"),this.container.role="presentation",this.buttonsToolbar=new gF(this.ctx,"ariaLabelRangesToolbar","horizontal"),this.buttonsToolbar.addClass("ag-charts-range-buttons","ag-charts-range-buttons--buttons"),this.container.append(this.buttonsToolbar.getElement()),this.dropdownToolbar=new gF(this.ctx,"ariaLabelRangesToolbar","horizontal"),this.dropdownToolbar.addClass("ag-charts-range-buttons","ag-charts-range-buttons--dropdown"),this.container.append(this.dropdownToolbar.getElement()),this.dropdownMenu=new j.Menu(this.ctx,"ranges-dropdown"),this.cleanup.register(this.buttonsToolbar.addToolbarListener("button-pressed",this.onButtonPress.bind(this)),this.dropdownToolbar.addToolbarListener("button-pressed",this.onButtonPress.bind(this))))}teardown(){this.buttonsToolbar?.getElement().remove(),this.buttonsToolbar?.destroy(),this.dropdownToolbar?.getElement().remove(),this.dropdownToolbar?.destroy()}onLayoutStart({layoutBox:t}){const{dropdown:e,enabled:i,position:n,spacing:s}=this;if(!i){this.buttonsToolbar?.setHidden(!0),this.dropdownToolbar?.setHidden(!0);return}this.setup();const{buttonsToolbar:a,dropdownToolbar:o}=this;if(!a||!o)return;a.updateButtons(this.buttons),o.updateButtons([this.getDropdownButtonOptions(this.dropdownLabel)]),this.updateCSSVariables(),e.visible==="always"?this.swapDropdownIn():this.swapDropdownOut();const{height:r}=this.isDropdown?o.getBounds():a.getBounds(),l={x:t.x,y:t.y};n==="top"||n==="top-left"||n==="top-right"?t.shrink({top:r+s}):(l.y=t.y+t.height-r,t.shrink({bottom:r+s})),a.setBounds(l),o.setBounds(l)}onLayoutComplete({series:{rect:t},layoutBox:e}){const{buttons:i,buttonsToolbar:n,ctx:s,dropdown:a,dropdownMenu:o,dropdownToolbar:r,enabled:l}=this;if(!l||!n||!r||!o)return;let c;if(a.visible==="auto"&&(c=n.getBounds(),c.width>t.width?this.swapDropdownIn():this.swapDropdownOut()),this.isDropdown)c=r.getBounds(),this.dropdownMinWidth??(this.dropdownMinWidth=c.width),c.width=Math.max(c.width,this.dropdownMinWidth),c=this.updateToolbarBounds(r,t,e,c);else{c=this.updateToolbarBounds(n,t,e,c);let g=0;for(const f of i)n.toggleButtonEnabledByIndex(g,this.getButtonEnabled(f)),g++}const u={x:s.domManager.isRtl?c.x+c.width:c.x,y:c.y+c.height+1},d={x:c.x+c.width,y:c.y-1};o.setAnchor(u,d)}onChartWidgetClick(){this.dropdownMenu?.hide()}updateToolbarBounds(t,e,i,n){const{position:s}=this,a=n??t.getBounds();return s==="top-right"||s==="bottom-right"?a.x=i.x+i.width-a.width:(s==="top"||s==="bottom")&&(a.x=i.x+i.width/2-a.width/2),a.x=Nt(e.x,a.x,e.x+e.width-a.width),t.setBounds({x:a.x,y:a.y,width:a.width}),a}updateCSSVariables(){this.gap>0?this.buttonsToolbar?.addClass("ag-charts-range-buttons--gapped"):this.buttonsToolbar?.removeClass("ag-charts-range-buttons--gapped");const t=["paddingTop","paddingRight","paddingBottom","paddingLeft","strokeWidth"];this.ctx.domManager.setModuleCSSVariables("ranges",void 0,void 0,{gap:this.gap,minSize:this.minSize},["gap","minSize"]),this.ctx.domManager.setModuleCSSVariables("ranges","button",void 0,this.getComponentVariables(this.button),t),this.ctx.domManager.setModuleCSSVariables("ranges","button","active",this.getComponentStateVariables(this.button,"active"),t),this.ctx.domManager.setModuleCSSVariables("ranges","button","disabled",this.getComponentStateVariables(this.button,"disabled"),t),this.ctx.domManager.setModuleCSSVariables("ranges","button","hover",this.getComponentStateVariables(this.button,"hover"),t),this.ctx.domManager.setModuleCSSVariables("ranges","dropdown",void 0,this.getComponentVariables(this.dropdown),t),this.ctx.domManager.setModuleCSSVariables("ranges","dropdown","active",this.getComponentStateVariables(this.dropdown,"active"),t),this.ctx.domManager.setModuleCSSVariables("ranges","dropdown","disabled",this.getComponentStateVariables(this.dropdown,"disabled"),t),this.ctx.domManager.setModuleCSSVariables("ranges","dropdown","hover",this.getComponentStateVariables(this.dropdown,"hover"),t)}getComponentVariables(t){return{cornerRadius:t.cornerRadius,fill:this.getComponentFill(t.fill,t.fillOpacity),fontSize:t.fontSize,fontFamily:t.fontFamily,fontWeight:t.fontWeight,stroke:t.stroke,strokeWidth:t.strokeWidth,textColor:t.textColor,paddingTop:typeof t.padding=="number"?t.padding:t.padding.top??0,paddingRight:typeof t.padding=="number"?t.padding:t.padding.right??0,paddingBottom:typeof t.padding=="number"?t.padding:t.padding.bottom??0,paddingLeft:typeof t.padding=="number"?t.padding:t.padding.left??0}}getComponentStateVariables(t,e){return{fill:this.getComponentFill(t[e].fill,t[e].fillOpacity),fillOpacity:t[e].fillOpacity,stroke:t[e].stroke,textColor:t[e].textColor}}getComponentFill(t,e){if(e>=1)return t;const i=se.fromString(t);return new se(i.r,i.g,i.b,e).toString()}onZoomChanged(){this.buttonsToolbar?.clearActiveButton(),this.isDropdown&&this.resetDropdownButton()}onButtonPress({button:{index:t}}){this.isDropdown?this.showDropdownMenu():this.updateZoomWithButtonIndex(t)}swapDropdownIn(){this.isDropdown||(this.isDropdown=!0,this.buttonsToolbar?.setHidden(!0),this.dropdownToolbar?.setHidden(!1))}swapDropdownOut(){this.isDropdown!==!1&&(this.isDropdown=!1,this.buttonsToolbar?.setHidden(!1),this.dropdownToolbar?.setHidden(!0),this.buttonsToolbar?.clearActiveButton(),this.dropdownMenu?.hide())}resetDropdownButton(){this.dropdownToolbar?.updateButtonByIndex(0,this.getDropdownButtonOptions(kw))}getDropdownButtonOptions(t){return this.dropdownLabel=t,{label:t,value:1/0,icon:"chevron-filled-down",iconPosition:"after"}}showDropdownMenu(){const t=this.dropdownToolbar?.getButtonWidget(0);if(!this.dropdownToolbar||!this.dropdownMenu||!t)return;this.dropdownToolbar.toggleActiveButtonByIndex(0);const e=this.buttons.map((i,n)=>({ariaLabel:i.ariaLabel,enabled:this.getButtonEnabled(i),label:i.label??`${n}`,value:`${n}`,icon:i.icon}));this.dropdownMenu.show(t,{class:"ag-charts-range-buttons-menu",items:e,minWidth:this.dropdownMinWidth,onPress:i=>{const n=Number(i.value);this.updateZoomWithButtonIndex(n),this.dropdownToolbar?.updateButtonByIndex(0,this.getDropdownButtonOptions(i.label??kw))},onHide:()=>{this.dropdownToolbar?.clearActiveButton()}})}updateZoomWithButtonIndex(t){const{zoomManager:e}=this.ctx,i=this.buttons.at(t);if(!i)return;const{value:n}=i,s=nut(`zoom-range-button-${t}`),a=this.getUpdateWithFn(n);a.valid===!1||a.fn==null?e.resetZoom(s):e.updateWith(s,z.X,a.fn),this.buttonsToolbar?.toggleActiveButtonByIndex(t)}getUpdateWithFn(t){if(t==null)return{valid:!0};if(typeof t=="number")return{fn:(e,i)=>[Number(i)-t,void 0],valid:!0};if(Array.isArray(t))return{fn:()=>t,valid:!0};if(typeof t=="function")return{fn:t,valid:!0};if(Rj(t)||Pj(t)){const[,e]=this.ctx.axisManager.getAxisContext(z.X).at(0)?.scale.getDomainMinMax()??[];if(Ac(e)){const i=Oj(t,e);return{fn:n=>[i??n,void 0],valid:!0}}return{valid:!1}}return{valid:!0}}getButtonEnabled(t){const{enableOutOfRange:e,ctx:{zoomManager:i}}=this;let n=t.enabled??e;if(t.enabled==null&&e===!1){const s=this.getUpdateWithFn(t.value);if(s.valid===!1)return!1;n=s.fn==null?!0:i.isValidUpdateWith(z.X,s.fn,"range-check")}return n}};M([Pe({newValue(t){t||(this.isDropdown=void 0)}}),b],rn.prototype,"enabled");M([b],rn.prototype,"buttons");M([b],rn.prototype,"button");M([b],rn.prototype,"dropdown");M([b],rn.prototype,"active");M([b],rn.prototype,"disabled");M([b],rn.prototype,"hover");M([b],rn.prototype,"enableOutOfRange");M([b],rn.prototype,"gap");M([b],rn.prototype,"cornerRadius");M([b],rn.prototype,"fill");M([b],rn.prototype,"fillOpacity");M([b],rn.prototype,"fontSize");M([b],rn.prototype,"fontFamily");M([b],rn.prototype,"fontWeight");M([b],rn.prototype,"stroke");M([b],rn.prototype,"strokeWidth");M([b],rn.prototype,"textColor");M([b],rn.prototype,"padding");M([b],rn.prototype,"position");M([b],rn.prototype,"spacing");M([b],rn.prototype,"minSize");var Cw={...ia,stroke:bt.stroke,textColor:It},aut={...ia,...bt,...De,textColor:It,cornerRadius:X,padding:Ar,active:Cw,disabled:Cw,hover:Cw};dt("auto","always","never");var out={position:dt("top-left","top","top-right","bottom-left","bottom","bottom-right"),...aut,buttons:Xi({...Zh,enabled:J,value:Xt(gt,Me(Ft(Xt(gt,_s)),Tu(2,2)),jf,vp,ai)},"range button options array")};out.minSize=Mt(X);Cn.SMALL;var{LayoutElement:rut,Group:lut,Label:Hy,Rect:cut,Text:Xn}=j,fF={ohlc:62,candlestick:62,"hollow-candlestick":62,line:96,"step-line":96,hlc:184,"high-low":800},hut={up:"positive",down:"negative"},uut={hlc:"altNeutral"},GO=class extends xt{constructor(){super(...arguments),this.fill="black",this.fillOpacity=1}};M([b],GO.prototype,"fill");M([b],GO.prototype,"fillOpacity");var Co=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!1,this.openKey=void 0,this.highKey=void 0,this.lowKey=void 0,this.closeKey=void 0,this.volumeKey=void 0,this.title=new Hy,this.positive=new Hy,this.negative=new Hy,this.neutral=new Hy,this.altNeutral=new Hy,this.background=new GO,this.layoutStyle="block",this.id="status-bar",this.layer=new lut({name:"StatusBar",zIndex:pe.STATUS_BAR}),this.labelGroup=this.layer.appendChild(new j.TranslatableGroup),this.backgroundNode=this.labelGroup.appendChild(new cut),this.labels=[{label:"O",configuration:2,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),id:"openValue",key:"openKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"H",configuration:16,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),id:"highValue",key:"highKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"H",configuration:256,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),style:"neutral",id:"highValue",key:"highKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"L",configuration:8,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),id:"lowValue",key:"lowKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"L",configuration:512,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),style:"neutral",id:"lowValue",key:"lowKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"C",configuration:4,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),id:"closeValue",key:"closeKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"C",configuration:128,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),id:"closeValue",key:"closeKey",style:"neutral",domain:void 0,formatter:new Intl.NumberFormat("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})},{label:"",configuration:64,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),style:"neutral",id:"closeValue",key:"closeKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{notation:"compact",minimumFractionDigits:2,maximumFractionDigits:2})},{label:"Vol",configuration:32,title:this.labelGroup.appendChild(new Xn),value:this.labelGroup.appendChild(new Xn),id:"volumeValue",key:"volumeKey",domain:void 0,formatter:new Intl.NumberFormat("en-US",{notation:"compact",minimumFractionDigits:2,maximumFractionDigits:2})}],this.highlightManager=t.highlightManager,this.labelGroup.visible=!1,this.cleanup.register(t.scene.attachNode(this.layer),t.layoutManager.registerElement(rut.Overlay,e=>this.startPerformLayout(e)),t.eventsHub.on("layout:complete",e=>this.onLayoutComplete(e)),t.eventsHub.on("highlight:change",()=>this.updateHighlight()),t.eventsHub.on("data:update",e=>{this.chartData=e}))}updateDomainsFromSeries(){if(!this.enabled)return;const t=this.ctx.chartService.series;if(t.length===0)return;let e,i;for(const n of t){const a=n.getDomain(z.Y)?.domain;!Array.isArray(a)||a.length<2||(n.type==="bar"?i=[a[0],a.at(-1)]:e=[a[0],a.at(-1)])}for(const n of this.labels){if(this[n.key]==null){n.domain=void 0;continue}n.domain=n.key==="volumeKey"?i:e}}startPerformLayout({layoutBox:t}){if(this.labelGroup.translationX=0,this.labelGroup.translationY=0,!this.enabled){this.labelGroup.visible=!1;return}this.updateDomainsFromSeries();const e=4,i=12,n=0,s=8;this.labelGroup.translationY=t.y+n;const a=Math.max(this.title.fontSize,this.positive.fontSize,this.negative.fontSize),o=nr(a),r=fF[this.getChartType()]??0;let l=0,c,u="alphabetic";if(this.layoutStyle==="block")t.shrink(n+o+s,"top"),c=a+(o-a)/2;else{const{title:d}=this.ctx.chartService;if(u="top",c=n+d.padding,d.enabled){const g=d.node.getBBox();l=g.x+g.width+i}else l=d.padding}for(const{label:d,configuration:g,title:f,value:y,domain:x,formatter:S}of this.labels){if(x==null||(r&g)===0){f.visible=!1,y.visible=!1;continue}const D=Ve(this.positive),A=Ve(this.negative),I=Math.max(D.textWidth(S.format(x[0])),D.textWidth(S.format(x[1])),A.textWidth(S.format(x[0])),A.textWidth(S.format(x[1])));f.visible=!0,y.visible=!0;const w=Ve(this.title).measureLines(d);f.setFont(this.title),f.fill=this.title.color,f.text=d,f.textAlign="left",f.textBaseline=u,f.y=c,f.x=l,l+=w.width+e,y.textAlign="left",y.textBaseline=u,y.y=c,y.x=l,l+=I+i}this.backgroundNode.x=0,this.backgroundNode.y=0,this.backgroundNode.width=l-i,this.backgroundNode.height=o+n+s,this.backgroundNode.fill=this.background.fill,this.backgroundNode.fillOpacity=this.background.fillOpacity}onLayoutComplete(t){this.labelGroup.translationX=t.series.rect.x,this.updateHighlight()}updateHighlight(){if(!this.enabled)return;const t=this.highlightManager.getActiveHighlight(),e=t?.datum??this.chartData?.data?.at(-1);if(e==null){this.labelGroup.visible=!1;return}this.labelGroup.visible=!0;const i=t?.itemId;let n=i==null?void 0:hut[i];n==null&&this.openKey!=null&&this.closeKey!=null&&(e[this.openKey]n?.valueOf()),i.map(n=>n?.valueOf())):!tr(e,i)}var Up=class extends xt{constructor(t){super(),this.moduleContext=t,this.enabled=!1,this.axes="x",this.nodeInteraction=!0,this.zoom=!0,this.domainMode="id",this.domainSync=new dM}updateSiblings(t){const{syncManager:e}=this.moduleContext;for(const i of e.getGroupSiblings(t??this.groupId))tl("ChartSync.updateSiblings()",i.id,i),this.updateChart(i)}updateChart(t,e=Ct.PROCESS_DOMAIN){tl("ChartSync.updateChart()",t.id,Ct[e],t),e===Ct.PROCESS_DOMAIN?t.ctx.eventsHub.emit("chart:request-update",{type:e,opts:{forceNodeDataRefresh:!0}}):t.ctx.eventsHub.emit("chart:request-update",{type:e})}enabledZoomSync(){const{eventsHub:t}=this.moduleContext;this.disableZoomSync?.(),this.disableZoomSync=t.on("zoom:change-complete",e=>this.onZoom(e))}onZoom(t){const{syncManager:e}=this.moduleContext;for(const i of e.getGroupSiblings(this.groupId)){if(!i.modulesManager.getModule("sync")?.zoom)continue;const s=i.modulesManager.getModule("zoom");if(!s)continue;const a=this.prepareZoomUpdate();t.source!=="sync"&&(tl("ChartsSyncManager.enabledZoomSync()",i.id,a),s.updateSyncZoom(a))}}enabledNodeInteractionSync(){this.disableNodeInteractionSync?.();const t=this.moduleContext.eventsHub.on("highlight:change",this.onHighlightChange.bind(this)),e=this.moduleContext.eventsHub.on("active:load-memento",this.onActiveLoadMemento.bind(this));this.disableNodeInteractionSync=()=>{t(),e()}}onHighlightChange(t){const{syncManager:e}=this.moduleContext;if(t.callerId.endsWith("-sync"))return;tl("ChartSync.onHighlightChange()",t);const i=t.currentHighlight?.series,[n]=Nw(this.axes),s=n===z.X?z.Y:z.X,[a,o]=i?yF(i,n,s):[],r=FM(t.currentHighlight);let l=a?.[0]?r?.[a[0]]:void 0,c=!1;if(aa(l)&&(c=!0,l=l.getTime()),!t.currentHighlight?.datum){for(const d of e.getGroupSiblings(this.groupId))d.modulesManager.getModule("sync")?.nodeInteraction&&(d.ctx.highlightManager.updateHighlight(`${d.id}-sync`,void 0,!0),d.ctx.tooltipManager.removeTooltip(`${d.id}-sync`,void 0,!0));return}const u=e.getGroupSyncMode(this.groupId)==="multi-series";this.findMatchingHighlightNodes(n,s,u?o:[],c,l,t)}onActiveLoadMemento(t){const{activeItem:e,chartId:i}=t;if(e===void 0){this.moduleContext.highlightManager.updateHighlight(`${i}-sync`,void 0,!1),this.moduleContext.tooltipManager.removeTooltip(`${i}-sync`,void 0,!1);for(const n of this.moduleContext.syncManager.getGroupSiblings(this.groupId))n.onSyncActiveClear()}}findMatchingHighlightNodes(t,e,i,n,s,a){const{syncManager:o}=this.moduleContext;tl("ChartSync.findMatchingHighlightNodes()",{mainDirection:t,secondaryKeys:i});for(const r of o.getGroupSiblings(this.groupId)){if(!r.modulesManager.getModule("sync")?.nodeInteraction)continue;let c=!1;for(const u of r.axes){if(!ww.is(u)||u.direction!==t)continue;const d=r.series.filter(g=>{if(!g.visible)return!1;if(i.length>0){const[,f]=yF(g,t,e);return i.every(y=>f.includes(y))}return!0}).map(this.findMatchingNodes(u,t,n,s)).filter(go);if(d.length===1&&d[0]?.nodeDatum!==r.ctx.highlightManager.getActiveHighlight()){this.dispatchHighlightUpdate(r,d[0].nodeDatum),c=!0;break}}c||(tl("ChartSync.findMatchingHighlightNodes() - no matching nodes",r.id,a),this.dispatchHighlightUpdate(r))}}findMatchingNodes(t,e,i,n){return s=>{if(s.getKeyAxis(t.direction)!==t.id)return;const o=s.contextNodeData?.nodeData??[];if(!o?.length)return;const r=o[0],l=`${e}Key`;if(!W4(r,l))return;const c=r[l],u=o.find(d=>{const g=d.datum[c];return i?g.getTime()===n:g===n});return u?{series:s,nodeDatum:u}:null}}dispatchHighlightUpdate(t,e){tl("ChartSync.dispatchHighlightUpdate()",t.id,e);const i=e==null;t.ctx.highlightManager.updateHighlight(`${t.id}-sync`,e,i);const n=e?.series.tooltipEnabled??t.tooltip.enabled;if(e&&n){const s=t.seriesAreaBoundingBox,a=s.x+(e.midPoint?.x??e.point?.x??0),o=s.y+(e.midPoint?.y??e.point?.y??0),r=gut.makeTooltipMeta({type:"pointermove",canvasX:a,canvasY:o},e.series,e,void 0);t.ctx.tooltipManager.updateTooltip(`${t.id}-sync`,r,t.getTooltipContent(e.series,e.datumIndex,e,"tooltip"))}else t.ctx.tooltipManager.removeTooltip(`${t.id}-sync`,void 0,!0);this.updateChart(t,Ct.SERIES_UPDATE)}async getSyncedDomain(t){if(!ww.is(t)||this.axes!=="xy"&&this.axes!==t.direction)return;const{groupState:e,directionDomains:i,idDomains:n,positionDomains:s}=this.updateDomainState(t);return this.validateAxis(t,e),await this.waitForDomainsToBeReady(),this.domainMode==="position"?this.calculateDerivedDomain(t,s):this.domainMode==="direction"?this.calculateDerivedDomain(t,i):this.calculateDerivedDomain(t,n)}updateDomainState(t){var e,i,n,s,a;const{syncManager:o}=this.moduleContext,r=o.getChart().id,l=t.id,c=o.getGroupState(this.groupId);if(!c)throw new Error("AG Charts - no GroupState for groupId: "+this.groupId);const u=c.domains??(c.domains={}),d=u[e=t.direction]??(u[e]={derived:[],sources:{},dirty:!0}),g=(i=d.sources)[r]??(i[r]={});g[l]=t.dataDomain.domain,d.dirty=!0;const f=c.domainsById??(c.domainsById={}),y=f[l]??(f[l]={derived:[],sources:{},dirty:!0}),x=(n=y.sources)[r]??(n[r]={});x[l]=t.dataDomain.domain,y.dirty=!0;const S=c.domainsByPosition??(c.domainsByPosition={}),D=S[s=t.position]??(S[s]={derived:[],sources:{},dirty:!0}),A=(a=D.sources)[r]??(a[r]={});return A[l]=t.dataDomain.domain,D.dirty=!0,{groupState:c,directionDomains:d,idDomains:y,positionDomains:D}}validateAxis(t,e){const i=this.moduleContext.syncManager.getGroupSyncMode(this.groupId)==="multi-series";Nw(this.axes).includes(t.direction)&&(i?this.validateMultiSeries(t,e):this.validateSingleSeries(t,e))}validateMultiSeries(t,e){const{min:i,max:n,nice:s,reverse:a}=t,o=new Set(t.boundSeries.flatMap(r=>r.getKeys(t.direction)));for(const r of e.members){const{axes:l,modulesManager:c}=r,u=c.getModule("sync"),d=Nw(u?.axes),g=l.filter(y=>d.includes(y.direction)).filter(y=>y.boundSeries.some(x=>x.getKeys(y.direction).some(S=>o.has(S))));if(g.length===0)continue;const[f]=g;if(f.min!==i||f.max!==n||f.nice!==s||f.reverse!==a){pt.warnOnce("To allow synchronization, ensure that all synchronized axes with matching keys have matching min, max, nice, and reverse properties."),this.enabled=!1;return}}}validateSingleSeries(t,e){const i=e.members,[{axes:n}]=i,{direction:s,min:a,max:o,nice:r,reverse:l}=t;for(const c of n)if(s===c.direction&&(r!==c.nice||l!==c.reverse||a!==c.min&&(Ae(a)||Ae(c.min))||o!==c.max&&(Ae(o)||Ae(c.max)))){pt.warnOnce("To allow synchronization, ensure that all charts have matching min, max, nice, and reverse properties on the synchronized axes."),this.enabled=!1;return}}calculateDerivedDomain(t,e){if(!e.dirty)return e.derived;let i=e.derived;const n=Object.values(e.sources).map(a=>Object.values(a));let s;return mF.is(t.scale)?s=n.flat(2):s=n.flat().toSorted((a,o)=>a.length>o.length?-1:1).flat(),e.derived=ZM(s),mF.is(t.scale)&&(i=xi(i),e.derived=xi(e.derived)),e.dirty=!1,fut(t.scale,i,e.derived)&&(tl(t.id,"updated",{before:i,after:e.derived}),this.updateSiblings()),e.derived}removeAxis(t){if(!ww.is(t)||this.axes!=="xy"&&this.axes!==t.direction)return;const{syncManager:e}=this.moduleContext,i=e.getGroupState(this.groupId),n=e.getChart().id,s=t.id;delete i?.domains?.[t.direction]?.sources?.[n]?.[s],delete i?.domainsByPosition?.[t.position]?.sources?.[n]?.[s],delete i?.domainsById?.[s]?.sources?.[n]?.[s]}async waitForDomainsToBeReady(){const{syncManager:t}=this.moduleContext;let e=0;for(;t.getGroupMembers(this.groupId).some(i=>i.syncStatus==="init");)tl("ChartSync.waitForDomainsToBeReady() - waiting for all domains to be calculated",this.groupId),await this.domainSync.waitForCompletion(),e++;e>0&&tl("ChartSync.waitForDomainsToBeReady() - waited for",e,"iterations"),this.domainSync.notify()}prepareZoomUpdate(){const{zoomManager:t}=this.moduleContext,e=t.getZoom();return this.axes==="x"?delete e?.y:this.axes==="y"&&delete e?.x,Ni(e)}onEnabledChange(){const{syncManager:t,highlightManager:e}=this.moduleContext;this.enabled?(t.subscribe(this.groupId),e.unhighlightDelay=0):(t.unsubscribe(this.groupId),e.unhighlightDelay=100),this.updateSiblings(),this.onNodeInteractionChange(),this.onZoomChange()}onGroupIdChange(t,e){if(!this.enabled||t===e)return;const{syncManager:i}=this.moduleContext;i.unsubscribe(e),i.subscribe(t),this.updateSiblings(e),this.updateSiblings(t)}onAxesChange(){if(!this.enabled)return;const{syncManager:t}=this.moduleContext;this.updateChart(t.getChart())}onNodeInteractionChange(){this.enabled&&this.nodeInteraction?this.enabledNodeInteractionSync():this.disableNodeInteractionSync?.()}onZoomChange(){this.enabled&&this.zoom?this.enabledZoomSync():this.disableZoomSync?.()}destroy(){const{syncManager:t}=this.moduleContext;t.unsubscribe(this.groupId),this.updateSiblings(),this.disableZoomSync?.()}};Up.className="Sync";M([b,Bi(t=>t.onEnabledChange())],Up.prototype,"enabled");M([b,Bi((t,e,i)=>t.onGroupIdChange(e,i))],Up.prototype,"groupId");M([b,Bi(t=>t.onAxesChange())],Up.prototype,"axes");M([b,Bi(t=>t.onNodeInteractionChange())],Up.prototype,"nodeInteraction");M([b,Bi(t=>t.onZoomChange())],Up.prototype,"zoom");M([b,Bi(t=>t.onAxesChange())],Up.prototype,"domainMode");dt("x","y","xy");var bF="#2196f3",mut="#8a8a8a",m5=class extends j.Rect{constructor(){super(),this.fill=bF,this.fillOpacity=.2,this.zIndex=pe.ZOOM_SELECTION}updateValid(){this.fill=bF}updateInvalid(){this.fill=mut}};m5.className="ZoomRect";var UO=class extends xt{constructor(){super(),this.enabled=!1,this.padding=0}};M([b],UO.prototype,"enabled");M([b],UO.prototype,"padding");var yut=class{constructor(t,e,i,n,s){this.properties=t,this.zoomManager=e,this.deps=i,this.manuallyAdjusted=!1,s.register(n.on("zoom:save-memento",a=>this.onSaveMemento(a)),n.on("zoom:load-memento",a=>this.onLoadMemento(a)),n.on("zoom:change-request",a=>this.onChangeRequest(a)))}get enabled(){return this.deps.enabled&&this.properties.enabled&&!this.manuallyAdjusted}onManualAdjustment(t){t===z.Y&&(this.manuallyAdjusted=!0)}onChangeRequest(t){const e=this.hasYAxisChange(t);if(t.sourceDetail==="scrollbar"&&e&&(this.manuallyAdjusted=!0),t.isReset&&e&&(this.manuallyAdjusted=!1),this.enabled){const i=this.autoScaleYZoom(t.state);i&&t.constrainChanges(i)}}hasYAxisChange(t){for(const e of t.changedAxes)if(t.state[e]?.direction===z.Y)return!0;return!1}onSaveMemento(t){t.memento.autoScaledAxes=this.enabled?["y"]:void 0}onLoadMemento(t){const{zoom:e,memento:i,navigatorModule:n,zoomModule:s}=t;if(!n||s){let a=i?.autoScaledAxes?.includes("y");if(i?.rangeY)a??(a=!1),e.y=this.zoomManager.rangeToRatioDirection(z.Y,i.rangeY)??{min:0,max:1};else if(i?.ratioY)a??(a=!1),e.y={min:i.ratioY.start??0,max:i.ratioY.end??1};else{a??(a=!0);const o=a?this.getAutoScaleYZoom(e.x):void 0;e.y=o??{min:0,max:1}}a!=null&&(this.manuallyAdjusted=!a)}}getAutoScaleYZoom(t){if(!this.enabled)return;const{padding:e}=this.properties;let i;return this.deps.enableIndependentAxes?i=this.primaryAxisZoom(z.Y,t,{padding:e}):i=this.combinedAxisZoom(z.Y,t,{padding:e}),t.min===0&&t.max===1?i==null?void 0:{min:0,max:1}:i}autoScaleYZoom(t){const e=this.zoomManager.getZoom();if(e&&t){const n=this.zoomManager.getAxisZooms();for(const s of[z.X,z.Y])for(const a of hl(t))if(n[a]?.direction===s){e[s]=t[a];break}}if(e?.x==null)return;const i=this.getAutoScaleYZoom(e.x);if(!(i==null||ks(e.y,i)))return this.zoomManager.toCoreZoomState({x:e.x,y:i})}zoomBounds(t,e,i,n){const s=t.scale,a=s.range;s.range=[0,1];const o=e.scale,r=o.range;o.range=[0,1];let l=1,c=!1,u=0,d=!1;for(const y of e.boundSeries){if(!y.visible)continue;const{connectsToYAxis:x}=y,S=y.getRange(z.Y,[i.min,i.max]);for(const D of S){const A=o.convert(D);Number.isFinite(A)&&(Au&&(u=A,d=!x||D>0))}}if(Ae(e.min)&&(l=0),Ae(e.max)&&(u=1),s.range=a,o.range=r,l>=u)return;const g=(c?n:0)+(d?n:0),f=Math.min((u-l)*(1+g),1);if(!(f<=0)){if(c&&d){const y=(u+l)/2;l=y-f/2,u=y+f/2}else!c&&d?u=l+f:c&&!d&&(l=u-f);return l<0?(u+=-l,l=0):u>1&&(l-=u-1,u=1),{min:l,max:u}}}primaryAxisZoom(t,e,{padding:i=0}={}){const n=t===z.X?z.Y:z.X,s=this.zoomManager.getPrimaryAxis(n),a=this.zoomManager.getPrimaryAxis(t);if(!(s==null||a==null))return this.zoomBounds(s,a,e,i)}combinedAxisZoom(t,e,{padding:i=0}={}){const n=this.zoomManager.getAxes(),s=t===z.X?z.Y:z.X,a=new Map;for(const c of n)if(c.direction===s)for(const u of c.boundSeries)a.set(u,c);let o=1,r=0;for(const c of n)if(c.direction===t)for(const u of c.boundSeries){const d=a.get(u);if(d==null)continue;const g=this.zoomBounds(d,c,e,i);if(g==null)return;o=Math.min(o,g.min),r=Math.max(r,g.max)}const l=1e-6;if(o1-l&&(r=1),!(o>r))return{min:o,max:r}}},but=class{update(t,e,i,n,s,a){return this.oldZoom??(this.oldZoom=Ni(e===z.X?{...s,x:a}:{...s,y:a})),this.updateCoords(t.offsetX,t.offsetY),this.updateZoom(e,i,n)}stop(){this.coords=void 0,this.oldZoom=void 0}updateCoords(t,e){this.coords?(this.coords.x2=t,this.coords.y2=e):this.coords={x1:t,y1:e,x2:t,y2:e}}updateZoom(t,e,i){const{coords:n,oldZoom:s}=this;let a=Ni(s);if(!n||!s)return t===z.X?a.x:a.y;const o=Rc(i,n.x1,n.y1),r=Rc(i,n.x2,n.y2);if(t===z.X){const c=(r.x-o.x)*jn(s);return a.x.max+=c,a.x=lo(a.x,s.x,e,o.x),a=lr(a),a.x}const l=(r.y-o.y)*Ha(s);return a.y.max-=l,a.y=lo(a.y,s.y,e,o.y),a=lr(a),a.y}},{userInteraction:Tw}=j,xut=class{constructor(t,e,i,n,s,a,o){this.eventsHub=t,this.contextMenuRegistry=e,this.zoomManager=i,this.getModuleProperties=n,this.getRect=s,this.updateZoom=a,this.isZoomValid=o}registerActions(t){const{contextMenuRegistry:e}=this,i=t?"show":"hide";if(e.toggle("zoom-to-cursor",i),e.toggle("pan-to-cursor",i),e.toggle("reset-zoom",i),!t)return;e.builtins.items["zoom-to-cursor"].action=this.onZoomToHere.bind(this),e.builtins.items["pan-to-cursor"].action=this.onPanToHere.bind(this),e.builtins.items["reset-zoom"].action=this.onResetZoom.bind(this);const n=o=>{const r=this.getRect();if(!r)return!0;const l=Rc(r,o.x,o.y);return this.iterateFindNextZoomAtPoint(l)!=null},s=()=>!pf(Ni(this.zoomManager.getZoom())),a=this.eventsHub.on("context-menu:setup",o=>{e.builtins.items["zoom-to-cursor"].enabled=n(o),e.builtins.items["pan-to-cursor"].enabled=s(),e.builtins.items["reset-zoom"].enabled=u5(this.zoomManager)});return()=>{a(),e.toggle("zoom-to-cursor","hide"),e.toggle("pan-to-cursor","hide"),e.toggle("reset-zoom","hide")}}computeOrigin(t){const e=this.getRect(),{enabled:i}=this.getModuleProperties();if(!i||!e||!t?.target||!(t instanceof MouseEvent))return;const n={x:0,y:0,width:e.width,height:e.height};return Rc(n,t.offsetX,t.offsetY)}onZoomToHere({event:t}){const e=this.computeOrigin(t);if(!e)return;const i=this.iterateFindNextZoomAtPoint(e);i!=null&&this.updateZoom(Tw("contextmenu-zoom-to-cursor"),i)}onPanToHere({event:t}){const e=this.computeOrigin(t);if(!e)return;const i=Ni(this.zoomManager.getZoom()),n=jn(i),s=Ha(i),a=e.x*n,o=e.y*s,r=$d/2;let l={x:{min:e.x-r,max:e.x+r},y:{min:e.y-r,max:e.y+r}};l=cF(l,n,s),l=mp(l,i.x.min-e.x+a,i.y.min-e.y+o),this.updateZoom(Tw("contextmenu-pan-to-cursor"),lr(l))}onResetZoom(t){this.zoomManager.resetZoom(Tw("contextmenu-reset"))}iterateFindNextZoomAtPoint(t){const{scrollingStep:e}=this.getModuleProperties();for(let i=e;i<=1-e;i+=e){const n=this.getNextZoomAtPoint(t,i);if(this.isZoomValid(n))return n}}getNextZoomAtPoint(t,e){const{isScalingX:i,isScalingY:n}=this.getModuleProperties(),s=Ni(this.zoomManager.getZoom()),a=t.x*jn(s),o=t.y*Ha(s),r=$d/2;let l={x:{min:t.x-r,max:t.x+r},y:{min:t.y-r,max:t.y+r}};return l=cF(l,i?jn(s)*e:$d,n?Ha(s)*e:$d),l=mp(l,s.x.min-t.x+a,s.y.min-t.y+o),lr(l)}},{userInteraction:vut}=j;function Sut(t){return t.x.min===0&&t.x.max===1&&t.y.min===0&&t.y.max===1}function Mut(t,e){return t.stickToEnd&&e.x.max===1}function xF(t,e,i){const{domainMin:n,domainMax:s}=e,a=s-n;return{axisId:t,visibleMin:n+a*i.min,visibleMax:n+a*i.max}}function vF(t,e){const{domainMin:i,domainMax:n}=t,{visibleMin:s,visibleMax:a}=e,o=n-i;return{direction:"x",min:Nt(0,(s-i)/o,1),max:Nt(0,(a-i)/o,1)}}var WO=class extends xt{constructor(){super(...arguments),this.strategy="preserveDomain",this.stickToEnd=!1}};M([b],WO.prototype,"strategy");M([b],WO.prototype,"stickToEnd");var Dut=class{constructor(t,e,i,n){this.onConstrainChangesCallback=t,this.properties=e,this.ctx=i;const s=()=>{i.eventsHub.off("layout:complete",s),n.register(i.eventsHub.on("data:load",a=>this.onDataLoad(a)),i.eventsHub.on("data:update",a=>this.onDataUpdate(a)))};n.register(i.eventsHub.on("layout:complete",s),i.eventsHub.on("zoom:change-request",a=>this.onZoomChangeRequest(a)))}destroy(){}onDataLoad(t){this.performUpdateStrategy()}onDataUpdate(t){this.performUpdateStrategy()}onZoomChangeRequest(t){t.sourceDetail==="internal-requiredWidth"&&(this.desiredChanges=void 0);const e=this.popDesiredChanges();e&&(t.constrainChanges(e),this.onConstrainChangesCallback(t))}computeDomainMinMax(t){const e=this.ctx.axisManager.getAxisIdContext(t);if(!e?.continuous||e.scale.domain.length===0)return;const[i,n]=e.scale.getDomainMinMax();if(typeof i=="number"&&typeof n=="number")return{domainMin:i,domainMax:n};if(i instanceof Date&&n instanceof Date)return{domainMin:i.getTime(),domainMax:n.getTime()};pt.error(`Unexpected range types: start (${typeof i}), end (${typeof n})`)}popDesiredChanges(){const{desiredChanges:t}=this;if(t)switch(this.desiredChanges=void 0,t.type){case"domain":{const i={};for(const n of t.domains){const s=this.computeDomainMinMax(n.axisId);s&&(i[n.axisId]=vF(s,n))}return i}case"stickToEnd":{const{axisId:i,difference:n}=t,s=this.computeDomainMinMax(i);if(s){const a={visibleMin:s.domainMax-n,visibleMax:s.domainMax};return{[i]:vF(s,a)}}break}default:return(i=>i)(t)}}performUpdateStrategy(){const t=Ni(this.ctx.zoomManager.getZoom());if(!Sut(t)){if(Mut(this.properties,t))return this.performStickToEnd();switch(this.properties.strategy){case"reset":return this.ctx.zoomManager.resetZoom(vut("onDataChange-reset"));case"preserveRatios":return;case"preserveDomain":return this.performPreserveDomain();default:return(i=>i)(this.properties.strategy)}}}performPreserveDomain(){this.desiredChanges={type:"domain",domains:[]};const t=this.ctx.zoomManager.getAxes().filter(e=>e.direction===z.X);for(const{id:e}of t){const i=this.computeDomainMinMax(e);if(i){const n=this.ctx.zoomManager.getAxisZoom(e),s=xF(e,i,n);this.desiredChanges.domains.push(s)}}}performStickToEnd(){const t=this.ctx.zoomManager.getPrimaryAxisId(z.X);if(!t)return;const e=this.computeDomainMinMax(t);if(!e)return;const i=this.ctx.zoomManager.getAxisZoom(t);if(!i)return;const{visibleMin:n,visibleMax:s}=xF(t,e,i),a=s-n;this.desiredChanges={type:"stickToEnd",axisId:t,difference:a}}},SF=16,Aut={off:1,short:.01,long:.002},Iut=class{constructor(t){this.ctx=t,this.deceleration=1,this.zoomCoordsHistoryIndex=0,this.coordsHistory=[]}get decelerationValue(){const{deceleration:t}=this;return Math.max(typeof t=="number"?t:Aut[t]??1,1e-4)}addListener(t,e){return this.onUpdate=e,()=>{this.onUpdate=void 0}}stopInteractions(){this.inertiaHandle!=null&&(this.ctx.agDocument.cancelAnimationFrame(this.inertiaHandle),this.inertiaHandle=void 0)}update(t){this.updateCoords(t.currentX,t.currentY);const{x1:e=0,y1:i=0,x2:n=0,y2:s=0}=this.coords??{};this.onUpdate?.({type:"update",deltaX:this.isPanningX()?e-n:0,deltaY:this.isPanningY()?i-s:0})}start(t){this.direction=t,this.coordsMonitorTimeout=setInterval(this.recordCurrentZoomCoords.bind(this),16)}stop(){const{coordsHistory:t}=this;let e=0,i=0,n=0;if(t.length>0){const s=this.zoomCoordsHistoryIndex%SF;let a=s-1;a<0&&(a=t.length-1);let o=s;o>=t.length&&(o=0);const r=t[a],l=t[o];e=this.isPanningX()?r.x-l.x:0,i=this.isPanningY()?r.y-l.y:0,n=r.t-l.t}if(this.coords=void 0,this.direction=void 0,clearInterval(this.coordsMonitorTimeout),this.coordsMonitorTimeout=void 0,this.zoomCoordsHistoryIndex=0,this.coordsHistory.length=0,n>0&&this.decelerationValue<1){const s=e/n,a=i/n,o=Math.hypot(s,a),r=Math.atan2(a,s),l=performance.now();this.inertiaHandle=this.ctx.agDocument.requestAnimationFrame(c=>{this.animateInertia(c,c,l,o,r)})}}recordCurrentZoomCoords(){const{coords:t,coordsHistory:e,zoomCoordsHistoryIndex:i}=this;if(!t)return;const{x2:n,y2:s}=t,a=Date.now();e[i%SF]={x:n,y:s,t:a},this.zoomCoordsHistoryIndex+=1}animateInertia(t,e,i,n,s){const a=1-this.decelerationValue,o=-n/Math.log(a),r=n*(a**(e-i)-1)/Math.log(a),l=n*(a**(t-i)-1)/Math.log(a);this.onUpdate?.({type:"update",deltaX:this.isPanningX()?-Math.cos(s)*(l-r):0,deltaY:this.isPanningY()?-Math.sin(s)*(l-r):0}),!(l>=o-1)&&(this.inertiaHandle=this.ctx.agDocument.requestAnimationFrame(c=>{this.animateInertia(c,t,i,n,s)}))}updateCoords(t,e){this.coords?this.coords={x1:this.coords.x2,y1:this.coords.y2,x2:t,y2:e}:this.coords={x1:t,y1:e,x2:t,y2:e}}isPanningX(){return this.direction==null||this.direction===z.X}isPanningY(){return this.direction==null||this.direction===z.Y}translateZooms(t,e,i,n){const s=Rc(t,t.x+Math.abs(i),t.y+t.height-Math.abs(n)),a=Math.sign(i)*s.x,o=-Math.sign(n)*s.y,r={};for(const[l,c]of Xe(e)){if(c==null||c.min===vo&&c.max===Hn)continue;const{direction:u}=c;let d=Ni({[u]:c});d=lr(mp(d,a*jn(d),o*Ha(d)));const{min:g,max:f}=d[u];r[l]={direction:u,min:g,max:f}}return r}},kut=class{updateAxes(t,e,i,n){const s=t.sourceEvent,a={},{anchorPointX:o,anchorPointY:r,isScalingX:l,isScalingY:c,scrollingStep:u}=e,d=Rc(i,s.offsetX??s.clientX,s.offsetY??s.clientY);for(const[g,f]of Xe(n)){if(f==null)continue;const{direction:y,min:x,max:S}=f;let D={min:x,max:S};const A=u*t.deltaY*(S-x);if(y===z.X&&l)D.max+=A,D=lo(D,f,o,d.x);else if(y===z.Y&&c)D.max+=A,D=lo(D,f,r,d.y);else continue;if(D.max0&&this.rect.height>0}updateCoords(t,e,i,n){if(!this.coords){this.coords={x1:t,y1:e,x2:t,y2:e};return}const{coords:s}=this;if(s.x2=t,s.y2=e,!n)return;const{isScalingX:a,isScalingY:o,keepAspectRatio:r}=i,l=this.getNormalisedDimensions();if(r&&a&&o){const c=n.width/n.height;s.y2r&&svo;break;case"pan-end":n=t.x.maxvo;break;case"pan-right":n=t.x.maxi.find(A=>A.identifier===r[D].identifier)),c=r[0].normalX,u=r[1].normalX,d=l[0].clientX,g=l[1].clientX,f=r[0].normalY,y=r[1].normalY,x=s+o-l[0].clientY,S=s+o-l[1].clientY;return this.twitchTolerantZoomPan4(c,u,d,g,f,y,x,S,n,s,a,o)}end(t){const e=Array.from(t.sourceEvent.targetTouches).map(i=>i.identifier);return!e.includes(this.touchStart.origins[0].identifier)||!e.includes(this.touchStart.origins[1].identifier)}twitchTolerantZoomPan4(t,e,i,n,s,a,o,r,l,c,u,d){const{initialZoom:g,previous:f}=this,y=AF(t,e,i,n,f,"a1","a2",l,u,g.x),x=AF(s,a,o,r,f,"b1","b2",c,d,g.y);return{x:y,y:x}}};function AF(t,e,i,n,s,a,o,r,l,c){if(t==e){const u=jM(c,i,r,l),d=jM(c,n,r,l),g=(u+d)/2,f=(t-g)/Hd;return{min:c.min+f,max:c.max+f}}else{const u=s[a],d=s[o];return Math.abs(i-u)+Math.abs(n-d)<=1?(i=u,n=d):(s[a]=i,s[o]=n),Tut(t,e,i,n,r,l)}}var{userInteraction:zh,InteractionState:jy}=j,bS=t=>_b(t,10),Bh="zoom-cursor",Gy="zoom-tooltip",Qi=class extends Ln{constructor(t){super(),this.ctx=t,this.enabled=!1,this.enableAxisDragging=!0,this.enableAxisScrolling=!0,this.enableDoubleClickToReset=!0,this.enablePanning=!0,this.enableScrolling=!0,this.enableSelecting=!1,this.enableTwoFingerZoom=!0,this.panKey="alt",this.axes="x",this.scrollingMode="zoom",this.scrollingStep=$d/10,this.keepAspectRatio=!1,this.minVisibleItems=2,this.anchorPointX=l5,this.anchorPointY=c5,this.autoScaling=new UO,this.axisDraggingMode="zoom",this.buttons=new Em(this.ctx,this.getModuleProperties.bind(this),this.updateZoom.bind(this),this.updateAxisZoom.bind(this),this.resetZoom.bind(this),this.isZoomValid.bind(this)),this.onDataChange=new WO,this.axisDragger=new but,this.panner=new Iut(this.ctx),this.scroller=new kut,this.scrollPanner=new d5,this.twoFingers=new Lut,this.deceleration="short",this.dragState=0,this.isState=n=>this.ctx.interactionManager.isState(n),this.destroyContextMenuActions=void 0,this.previousZoomValid=!0,this.previousAxisZoomValid={[z.X]:!0,[z.Y]:!0};const e=new m5;this.selector=new Cut(e,this.getZoom.bind(this),this.isZoomValid.bind(this)),this.contextMenu=new xut(t.eventsHub,t.contextMenuRegistry,t.zoomManager,this.getModuleProperties.bind(this),()=>this.paddedRect,this.updateZoom.bind(this),this.isZoomValid.bind(this));const i=n=>{if(this.minVisibleItems>0){const s=n.stateAsDefinedZoom();n.constrainZoom(this.constrainZoom(s))}};this.dataChangeHandler=new Dut(i,this.onDataChange,this.ctx,this.cleanup),t.widgets.seriesDragInterpreter&&this.cleanup.register(t.widgets.seriesDragInterpreter.events.on("dblclick",n=>this.onSeriesAreaDoubleClick(n)),t.widgets.seriesDragInterpreter.events.on("drag-start",n=>this.onSeriesAreaDragStart(n)),t.widgets.seriesDragInterpreter.events.on("drag-move",n=>this.onSeriesAreaDragMove(n)),t.widgets.seriesDragInterpreter.events.on("drag-end",()=>this.onSeriesAreaDragEnd())),this.cleanup.register(t.scene.attachNode(e),t.eventsHub.on("series:keynav-zoom",n=>this.onNavZoom(n)),t.eventsHub.on("series:keynav-panx",n=>this.onNavPanX(n)),t.eventsHub.on("zoom-interaction:zoom:wheel",n=>this.onWheel(n)),t.eventsHub.on("zoom-interaction:zoom:axis-mouseenter",n=>this.onAxisMouseEnter(n)),t.eventsHub.on("zoom-interaction:zoom:axis-mouseleave",()=>this.onAxisMouseLeave()),t.eventsHub.on("zoom-interaction:zoom:axis-drag-start",n=>this.onAxisDragStart(n.direction)),t.eventsHub.on("zoom-interaction:zoom:axis-drag-move",n=>this.onAxisDragMove(n.axisId,n.direction,n.event)),t.eventsHub.on("zoom-interaction:zoom:axis-drag-end",()=>this.onAxisDragEnd()),t.eventsHub.on("zoom-interaction:zoom:axis-dblclick",n=>this.onAxisDoubleClick(n.axisId)),t.eventsHub.on("zoom-interaction:zoom:axis-wheel",n=>this.onAxisWheel(n)),t.widgets.seriesWidget.addListener("touchstart",(n,s)=>this.onTouchStart(n,s)),t.widgets.seriesWidget.addListener("touchmove",(n,s)=>this.onTouchMove(n,s)),t.widgets.seriesWidget.addListener("touchend",n=>this.onTouchEnd(n)),t.widgets.seriesWidget.addListener("touchcancel",n=>this.onTouchEnd(n)),t.updateService.addListener("process-data",n=>this.onProcessData(n)),t.eventsHub.on("layout:complete",n=>this.onLayoutComplete(n)),t.eventsHub.on("zoom:change-request",n=>this.onZoomChangeRequested(n)),t.eventsHub.on("zoom:pan-start",n=>this.onZoomPanStart(n)),this.panner.addListener("update",n=>this.onPanUpdate(n)),()=>this.teardown()),this.autoScaler=new yut(this.autoScaling,t.zoomManager,this,t.eventsHub,this.cleanup)}teardown(){this.ctx.zoomManager.setZoomModuleEnabled(!1),this.buttons.destroy(),this.destroyContextMenuActions?.(),this.dataChangeHandler.destroy()}onEnabledChange(t){this.ctx.zoomManager.setZoomModuleEnabled(t),this.contextMenu&&(this.destroyContextMenuActions?.(),this.destroyContextMenuActions=this.contextMenu.registerActions(t))}isIgnoredTouch(t){return t?.device!=="touch"?!1:this.ctx.chartService.touch.dragAction!=="drag"?!0:this.enableSelecting?!1:this.enablePanning?pf(this.getZoom()):!0}onSeriesAreaDoubleClick(t){const{enabled:e,enableDoubleClickToReset:i}=this;!e||!i||t?.preventZoomDblClick||!this.isState(jy.ZoomClickable)||this.resetZoom("zoom-seriesarea-dblclick")}onSeriesAreaDragStart(t){const{enabled:e,enablePanning:i,enableSelecting:n,ctx:{domManager:s,zoomManager:a}}=this;if(!e||!this.isState(jy.ZoomDraggable)||this.dragState!==0||this.isIgnoredTouch(t)||(this.panner.stopInteractions(),this.hoveredAxisId))return;let o=0;const r=this.isPanningKeyPressed(t.sourceEvent);i&&(!n||r)?(s.updateCursor(Bh,"grabbing"),o=2,this.panner.start()):n&&!r&&(o=3),(this.dragState=o)!==0&&a.fireZoomPanStartEvent("zoom")}onSeriesAreaDragMove(t){const{dragState:e,enabled:i,paddedRect:n,panner:s,selector:a,ctx:{interactionManager:o,tooltipManager:r,eventsHub:l}}=this;if(!this.hoveredAxisId&&!(!i||!n||!this.isState(jy.ZoomDraggable)||this.isIgnoredTouch(t))){switch(o.pushState(j.InteractionState.ZoomDrag),t.device==="touch"&&t.sourceEvent.preventDefault(),e){case 2:s.update(t);break;case 3:a.update(t,this.getModuleProperties(),n);break;case 0:return}o.isState(j.InteractionState.Frozen)||r.updateTooltip(Gy),l.emit("chart:request-update",{type:Ct.PERFORM_LAYOUT,opts:{skipAnimations:!0}})}}onSeriesAreaDragEnd(){const{ctx:{interactionManager:t}}=this;this.hoveredAxisId||(t.popState(j.InteractionState.ZoomDrag),!(!this.enabled||this.dragState===0)&&(this.handleRegularDragEnd(),this.resetDragState()))}handleRegularDragEnd(){const{panner:t,selector:e}=this;switch(this.dragState){case 2:t.stop();break;case 3:if(e.didUpdate()){const i=e.stop(this.seriesRect,this.paddedRect,this.getZoom());i?this.updateZoom(zh("zoom-seriesarea-selector"),i):this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER})}break}}resetDragState(){this.dragState=0,this.ctx.domManager.updateCursor(Bh),this.ctx.tooltipManager.removeTooltip(Gy)}onAxisMouseEnter(t){const{anchorPointX:e,anchorPointY:i,axisDraggingMode:n,enabled:s,enableAxisDragging:a}=this;if(this.hoveredAxisId=t.axisId,!s||!a){this.ctx.domManager.updateCursor(Bh);return}const o=this.getZoom();let r,l=!1;if(t.direction===z.X){if(r="ew-resize",l=!be(jn(o),$d),!l){const c=HM(o,.999,1);c.x=lo(c.x,o.x,e),l=this.isZoomValid(c,{includeYVisibleRange:!0})}}else if(r="ns-resize",l=!be(Ha(o),$d),!l){const c=HM(o,1,.999);c.y=lo(c.y,o.y,i),l=this.isZoomValid(c,{includeYVisibleRange:!0})}n==="pan"&&(r="grab"),l?(t.stopProcessing(),this.ctx.domManager.updateCursor(Bh,r)):this.ctx.domManager.updateCursor(Bh)}onAxisMouseLeave(){this.hoveredAxisId=void 0,this.ctx.domManager.updateCursor(Bh),!this.enabled||this.enableAxisDragging}onAxisDoubleClick(t){const{enabled:e,enableDoubleClickToReset:i,ctx:{zoomManager:n}}=this;!e||!i||!this.isState(jy.ZoomClickable)||(this.previousAxisZoomValid={[z.X]:!0,[z.Y]:!0},n.resetAxisZoom({source:"user-interaction",sourceDetail:"zoom-axis-dblclick"},t))}onAxisDragStart(t){const{axisDraggingMode:e,enabled:i,enableAxisDragging:n,panner:s,ctx:{zoomManager:a}}=this;!i||!n||(s.stopInteractions(),e==="pan"?(this.ctx.domManager.updateCursor(Bh,"grabbing"),this.dragState=2,this.panner.start(t),a.fireZoomPanStartEvent("zoom")):this.dragState=1)}onAxisDragMove(t,e,i){const{anchorPointX:n,anchorPointY:s,axisDragger:a,dragState:o,enabled:r,enableAxisDragging:l,seriesRect:c,shouldFlipXY:u,ctx:{interactionManager:d,tooltipManager:g,eventsHub:f,zoomManager:y}}=this;if(!r||!l||!c)return;d.pushState(j.InteractionState.ZoomDrag),i.device==="touch"&&i.sourceEvent.preventDefault();const x=this.getZoom();if(o===2)this.panner.update({currentX:i.offsetX,currentY:i.offsetY});else{let S=e===z.X?n:s;u&&(S=e===z.X?s:n);const D=y.getAxisZoom(t),A=a.update(i,e,S,c,x,D);this.autoScaler.onManualAdjustment(e),this.updateAxisZoom(zh("zoom-axis-drag"),t,e,A,{directional:!0})}g.updateTooltip(Gy),f.emit("chart:request-update",{type:Ct.PERFORM_LAYOUT,opts:{skipAnimations:!0}})}onAxisDragEnd(){const{axisDraggingMode:t,axisDragger:e,dragState:i,enabled:n,enableAxisDragging:s,ctx:{domManager:a,interactionManager:o,tooltipManager:r}}=this;o.popState(j.InteractionState.ZoomDrag),!(!n||!s||i===0)&&(this.dragState=0,t==="pan"&&this.panner.stop(),e.stop(),a.updateCursor(Bh),r.removeTooltip(Gy))}onNavZoom(t){const{enabled:e,enableScrolling:i,scroller:n}=this;!this.ctx.interactionManager.isState(j.InteractionState.Focusable)||!e||!i||(t.widgetEvent.sourceEvent.preventDefault(),this.updateZoom(zh(`keyboard(${t.delta})`),n.updateDelta(t.delta,this.getModuleProperties(),this.getZoom())))}onNavPanX(t){const{enabled:e}=this;if(!this.ctx.interactionManager.isState(j.InteractionState.Focusable)||!e)return;t.widgetEvent.sourceEvent.preventDefault();const n=t.reverse?{[-1]:1,1:-1,home:"end",end:"home"}[t.delta]:t.delta,s=this.getZoom(),a=jn(s);if(n==="home")s.x.min=0,s.x.max=a;else if(n==="end")s.x.min=1-a,s.x.max=1;else{const o=n*a;s.x.min+=o,s.x.max+=o,s.x=lx(s.x)}this.updateZoom(zh(`keyboard-page(${t.delta})`),s)}onWheel(t){const{enabled:e,enablePanning:i,enableScrolling:n,paddedRect:s,scrollingMode:a}=this;if(!e||!n||!s||!this.isState(jy.ZoomWheelable))return;t.stopProcessing();const{deltaX:o,deltaY:r}=t.event,l=o!=null&&r!=null&&Math.abs(o)>Math.abs(r);i&&(a==="pan"||l)?this.onWheelPanning(t):this.onWheelScrolling(t)}onWheelPanning(t){const{scrollingStep:e,scrollPanner:i,seriesRect:n,scrollingMode:s,ctx:{zoomManager:a}}=this;if(!n){t.abort();return}const{event:o}=t,r=this.getZoom(),l=o.deltaY>0&&r.y.min===vo||o.deltaY<0&&r.y.max===Hn,c=i.update(o,e,s,n,a.getAxisZooms());this.updateChanges(zh("zoom-seriesarea-wheel"),c),l?t.capped():t.uncapped()}onWheelScrolling(t){const e=this.getZoom(),i=t.event.deltaY>0&&pf(e);this.handleWheelScrolling(t,i)}onAxisWheel(t){if(!this.enabled||!this.enableAxisScrolling)return;t.stopProcessing();const{event:e,direction:i}=t;if(i!==z.X&&i!==z.Y)return;const n=i===z.X,s=!n,a=this.getModuleProperties({isScalingX:n,isScalingY:s}),o=this.getZoom(),r=e.deltaY>0&&o[i].min===vo&&o[i].max===Hn;this.autoScaler.onManualAdjustment(i),this.handleWheelScrolling(t,r,a)}handleWheelScrolling(t,e,i=this.getModuleProperties()){const{enableIndependentAxes:n,scroller:s,seriesRect:a,ctx:{zoomManager:o}}=this;if(!a){t.abort();return}const{event:r}=t;let l=!0;const c=zh("zoom-axis-wheel");if(n===!0){const u=s.updateAxes(r,i,a,o.getAxisZooms());for(const[d,{direction:g,min:f,max:y}]of Xe(u)){const x=g===z.X?this.constrainZoom({x:{min:f,max:y},y:{min:Hn,max:Hn}}).x:{min:f,max:y};l&&(l=this.updateAxisZoom(c,d,g,x))}}else{const u=s.update(r,i,a,this.getZoom());if(u==null)return"abort";l=this.updateUnifiedZoom(c,u,{directional:!0})}e||r.deltaY<0&&!l?t.capped():t.uncapped()}onTouchStart(t,e){!this.enableTwoFingerZoom||this.dragState!==0||this.twoFingers.start(t,e,this.getZoom())&&(this.dragState=4)}onTouchMove(t,e){if(!this.enableTwoFingerZoom||this.dragState!==4)return;const i=this.twoFingers.update(t,e);this.updateZoom(zh("zoom-seriesarea-twofingers"),lr(i))}onTouchEnd(t){!this.enableTwoFingerZoom||this.dragState!==4||(t.sourceEvent.preventDefault(),this.twoFingers.end(t)&&(this.dragState=0))}onProcessData(t){this.shouldFlipXY=t.series.shouldFlipXY}onLayoutComplete(t){this.ctx.eventsHub.emit("axis-dom-proxy:update",{source:"zoom",enabled:this.enabled,enableDoubleClick:this.enableDoubleClickToReset,enableDragging:this.enableAxisDragging,enableScrolling:this.enableAxisScrolling}),this.enabled&&(this.seriesRect=t.series.rect,this.paddedRect=t.series.paddedRect)}onZoomChangeRequested(t){t.sourceDetail!=="zoom-seriesarea-panner"&&this.panner.stopInteractions();const e=this.getZoom();this.buttons.toggleVisibleZoomed(pf(e))}onZoomPanStart(t){t.callerId==="zoom"&&this.panner.stopInteractions()}onPanUpdate(t){const{panner:e,seriesRect:i,ctx:{tooltipManager:n,zoomManager:s,interactionManager:a}}=this;if(!i)return;const o=e.translateZooms(i,s.getAxisZooms(),t.deltaX,t.deltaY);this.updateChanges(zh("zoom-seriesarea-panner"),o),a.isState(j.InteractionState.Frozen)||n.updateTooltip(Gy)}isPanningKeyPressed(t){switch(this.panKey){case"alt":return t.altKey;case"ctrl":return t.ctrlKey;case"shift":return t.shiftKey;case"meta":return t.metaKey}}isScalingX(){return this.axes==="xy"?!0:this.shouldFlipXY?this.axes==="y":this.axes==="x"}isScalingY(){return this.axes==="xy"?!0:this.shouldFlipXY?this.axes==="x":this.axes==="y"}getAnchorPointX(){return this.shouldFlipXY?this.anchorPointY:this.anchorPointX}getAnchorPointY(){return this.shouldFlipXY?this.anchorPointX:this.anchorPointY}constrainZoom(t){return this.ctx.zoomManager.constrainZoomToItemCount(t,this.minVisibleItems,this.autoScaler.enabled)}isZoomValid(t,e){const{minVisibleItems:i,ctx:{zoomManager:n}}=this;if(i===0)return this.previousZoomValid=!0,!0;const s=this.getZoom(),a=bS(jn(t))=r)return this.previousAxisZoomValid[t]=!0,!0;if(!this.previousAxisZoomValid[t]&&i?.directional)return!1;const c={includeYVisibleRange:!1,autoScaleYAxis:this.autoScaler.enabled},u=s.isVisibleItemsCountAtLeast(l,n,c);return this.previousAxisZoomValid[t]=i?.directional?u:!0,u}resetZoom(t){this.previousZoomValid=!0,this.previousAxisZoomValid={[z.X]:!0,[z.Y]:!0},this.ctx.zoomManager.resetZoom({source:"user-interaction",sourceDetail:t})}updateSyncZoom(t){this.updateZoom({source:"sync",sourceDetail:"internal-updateSyncZoom"},t)}updateChanges(t,e){const i=this.ctx.zoomManager.toZoomState(e)??{},n=Ni(this.ctx.zoomManager.getZoom());this.updateZoom(t,{x:i.x??n.x,y:i.y??n.y})}updateZoom(t,e){this.enableIndependentAxes?this.updatePrimaryAxisZooms(t,e):this.updateUnifiedZoom(t,e)}updateUnifiedZoom(t,e,i){return e=this.constrainZoom(e),this.isZoomValid(e,i)?(this.ctx.zoomManager.updateZoom(t,e),!0):(this.ctx.eventsHub.emit("chart:request-update",{type:Ct.SCENE_RENDER,opts:{skipAnimations:!0}}),!1)}updatePrimaryAxisZooms(t,e){this.updatePrimaryAxisZoom(t,e,z.X),this.updatePrimaryAxisZoom(t,e,z.Y)}updatePrimaryAxisZoom(t,e,i){const n=this.ctx.zoomManager.getPrimaryAxisId(i);n!=null&&this.updateAxisZoom(t,n,i,e[i])}updateAxisZoom(t,e,i,n,s){const{enableIndependentAxes:a,ctx:{zoomManager:o}}=this;if(!n)return!1;const r=this.getZoom();if(a!==!0)return r[i]=n,this.updateUnifiedZoom(t,r,s);if(!this.isAxisZoomValid(i,n,s))return!1;const{source:l,sourceDetail:c}=t;return o.updateChanges({source:l,sourceDetail:c,changes:{[e]:n},isReset:!1}),!0}getZoom(){return Ni(this.ctx.zoomManager.getZoom())}getModuleProperties(t){return{anchorPointX:t?.anchorPointX??this.getAnchorPointX(),anchorPointY:t?.anchorPointY??this.getAnchorPointY(),enabled:t?.enabled??this.enabled,independentAxes:t?.independentAxes??this.enableIndependentAxes===!0,isScalingX:t?.isScalingX??this.isScalingX(),isScalingY:t?.isScalingY??this.isScalingY(),keepAspectRatio:t?.keepAspectRatio??this.keepAspectRatio,scrollingStep:t?.scrollingStep??this.scrollingStep}}};M([Pe({newValue(t){this.onEnabledChange(t)}}),b],Qi.prototype,"enabled");M([b],Qi.prototype,"enableAxisDragging");M([b],Qi.prototype,"enableAxisScrolling");M([b],Qi.prototype,"enableDoubleClickToReset");M([Pe({changeValue(t){this.ctx.zoomManager.setIndependentAxes(!!t)}}),b],Qi.prototype,"enableIndependentAxes");M([b],Qi.prototype,"enablePanning");M([b],Qi.prototype,"enableScrolling");M([b],Qi.prototype,"enableSelecting");M([b],Qi.prototype,"enableTwoFingerZoom");M([b],Qi.prototype,"panKey");M([b],Qi.prototype,"axes");M([b],Qi.prototype,"scrollingMode");M([b],Qi.prototype,"scrollingStep");M([b],Qi.prototype,"keepAspectRatio");M([b],Qi.prototype,"minVisibleItems");M([b],Qi.prototype,"anchorPointX");M([b],Qi.prototype,"anchorPointY");M([b],Qi.prototype,"autoScaling");M([b],Qi.prototype,"axisDraggingMode");M([b],Qi.prototype,"buttons");M([b],Qi.prototype,"onDataChange");M([qi("panner.deceleration"),b],Qi.prototype,"deceleration");var GM=dt("pointer","start","middle","end"),FA={type:"plugin",name:"zoom",enterprise:!0,version:oi,dependencies:[Ght],options:{enabled:J,enableAxisDragging:J,enableAxisScrolling:J,enableDoubleClickToReset:J,enablePanning:J,enableScrolling:J,enableSelecting:J,enableTwoFingerZoom:J,keepAspectRatio:J,anchorPointX:GM,anchorPointY:GM,axisDraggingMode:dt("pan","zoom"),axes:dt("x","y","xy"),deceleration:Xt(dt("off","short","long"),Ot),minVisibleItems:X,panKey:dt("alt","ctrl","meta","shift"),scrollingMode:dt("pan","zoom"),scrollingStep:Ot,autoScaling:{enabled:J,padding:Ot},onDataChange:{strategy:fx()("reset","preserveDomain","preserveRatios"),stickToEnd:J},buttons:{enabled:J,buttons:Xi({...Zh,value:dt("reset","zoom-in","zoom-out","pan-left","pan-right","pan-start","pan-end"),section:K},"zoom button options array"),visible:dt("always","zoomed","hover")}},themeTemplate:{enabled:!1,enableAxisDragging:!0,enableAxisScrolling:!0,enableDoubleClickToReset:!0,enablePanning:!0,enableScrolling:!0,enableSelecting:!1,enableTwoFingerZoom:!0,deceleration:"short",minVisibleItems:2,panKey:"alt",scrollingStep:.1,autoScaling:{enabled:{$and:[{$eq:[{$path:"../axes"},"x"]},{$not:{$eq:[{$path:"/series/0/direction"},"horizontal"]}}]},padding:.05},onDataChange:{strategy:"preserveDomain",stickToEnd:!1},anchorPointX:"end",anchorPointY:"middle",axes:"x",buttons:{enabled:{$path:"../enabled"},visible:"hover",buttons:{$shallowSimple:[{icon:"zoom-out",value:"zoom-out",section:"scale"},{icon:"zoom-in",value:"zoom-in",section:"scale"},{icon:"pan-left",value:"pan-left",section:"pan"},{icon:"pan-right",value:"pan-right",section:"pan"},{icon:"reset",value:"reset",section:"reset"}]}}},create:t=>new Qi(t)};FA.options.enableIndependentAxes=Mt(J);FA.options.buttons.anchorPointX=Mt(GM);FA.options.buttons.anchorPointY=Mt(GM);function cx(t,e,i){return js(t.chartService,e,i)}var{AxisInterval:Out,AxisLabel:Eut,LinearScale:Rut,BBox:Put,TranslatableGroup:zut,Selection:But,Text:Vut}=j,HA=class a1{constructor(e,i){this.ctx=e,this.dataProvider=i,this.id=Nn(this),this.axisGroup=new zut({name:`${this.id}-AxisTicks`,zIndex:pe.AXIS}),this.labelSelection=But.select(this.axisGroup,Vut),this.interval=new Out,this.label=new Eut,this.scale=new Rut,this.placement="bottom",this.translationX=0,this.translationY=0,this.padding=0}get horizontal(){return this.placement.startsWith("top")||this.placement.startsWith("bottom")}attachAxis(e){e.appendChild(this.axisGroup)}calculateLayout(){const{placement:e,translationX:i,translationY:n,horizontal:s,label:a}=this;let o,r;switch(e){case"top":case"top-right":case"top-left":o="bottom",r="center",a.mirrored=!1,a.parallel=!0;break;case"bottom":case"bottom-right":case"bottom-left":o="top",r="center",a.mirrored=!1,a.parallel=!0;break;case"right":case"right-top":case"right-bottom":case"left":case"left-top":case"left-bottom":o="middle",r="left",a.mirrored=!0,a.parallel=!1;break}const l=[],c=this.generateTicks(),{ticks:u}=c;return this.labelSelection.update(u,void 0,d=>d.tickId),this.axisGroup.setProperties({translationX:i,translationY:n}),this.labelSelection.each((d,g)=>{d.fontFamily=a.fontFamily,d.fontSize=a.fontSize,d.fontStyle=a.fontStyle,d.fontWeight=a.fontWeight,d.fill=a.color,d.textBaseline=o,d.textAlign=r,d.text=g.tickLabel,d.x=s?g.translation:0,d.y=s?0:g.translation,l.push(d.getBBox())}),l.length>0?Put.merge(l).translate(i,n):void 0}tickFormatter(e,i,n,s){const{ctx:a}=this,{formatManager:o}=a,r=this.dataProvider.data.flatMap(l=>l.series);return(l,c)=>{const u={type:"number",value:l,datum:void 0,seriesId:void 0,legendItemName:void 0,key:void 0,source:"gradient-legend",property:"color",domain:e,boundSeries:r,fractionDigits:s,visibleDomain:void 0};return this.label.formatValue((d,g)=>cx(a,d,g),u,c)??o.format((d,g)=>cx(a,d,g),u)??o.defaultFormat(u)}}inRange(e,i=.001){const[n,s]=xi(this.scale.range);return e>=n-i&&e<=s+i}generateTicks(){const{minSpacing:e,maxSpacing:i}=this.interval,{maxTickCount:n,minTickCount:s,tickCount:a}=MT(Tc(this.scale.range),1,e,i,a1.DefaultTickCount,a1.DefaultMinSpacing),o=this.getTicksData({nice:[!0,!0],interval:this.interval.step,tickCount:a,minTickCount:s,maxTickCount:n});if(this.placement==="bottom"||this.placement==="top"){const r=Ve(this.label),{domain:l}=this.scale,u=l[0]>l[1]?-1:1;let d=-1/0*u;o.ticks=o.ticks.filter(g=>{if(Math.sign(g.translation-d)!==u)return!1;const{width:f}=qt(g.tickLabel)?Va(g.tickLabel,this.label):r.measureLines(bi(g.tickLabel));return d=g.translation+f*u,!0})}return o}getTicksData(e){const i=[],n=e.nice?this.scale.niceDomain(e):this.scale.domain,s=this.scale.ticks(e,n)?.ticks??[],a=s.reduce((l,c)=>Math.max(l,Hf(c)),0),o=CD(),r=this.tickFormatter(n,s,!1,a);for(let l=0;lthis.onChartHoverChange()),t.layoutManager.registerElement(Fut.Legend,e=>this.onStartLayout(e)),()=>this.legendGroup.remove())}isVertical(){const{placement:t}=qd(this.position);return t.startsWith("right")||t.startsWith("left")}destroy(){this.cleanup.flush()}attachLegend(t){t.appendChild(this.legendGroup)}onStartLayout({layoutBox:t}){const[e]=this.data;if(!this.enabled||!e?.enabled||e.legendType!=="gradient"){this.legendGroup.visible=!1;return}const{colorRange:i}=this.normalizeColorArrays(e),{strokeWidth:n,padding:s}=this.getContainerStyles(),a=this.updateGradientRect(t,i),o=this.updateAxis(e,a)??new Lw(0,0,0,0),r=Lw.merge([a,o]);r.grow(s).grow(n);const{left:l,top:c}=this.getMeasurements(t,r);this.updateContainer(r),this.updateArrow(),this.legendGroup.visible=!0,this.legendGroup.translationX=l,this.legendGroup.translationY=c}normalizeColorArrays(t){let e=t.colorDomain.slice();const i=t.colorRange.slice();if(e.length===i.length)return{colorDomain:e,colorRange:i};e.length>i.length&&i.splice(e.length);const[n,s]=e,a=i.length;return e=i.map((o,r)=>r===0?n:r===a-1?s:n+(s-n)*r/(a-1)),{colorDomain:e,colorRange:i}}updateGradientRect(t,e){const{gradientRect:i,gradient:n}=this,{preferredLength:s,thickness:a}=n,o=new Lw(0,0,0,0),r=Math.max(e.length-1,1);let l;return this.isVertical()?(l=0,o.width=a,o.height=Math.min(t.height,s)):(l=90,o.width=Math.min(t.width,s),o.height=a),i.x=o.x,i.y=o.y,i.width=o.width,i.height=o.height,i.fill={type:"gradient",gradient:"linear",colorSpace:"oklch",colorStops:e.map((c,u)=>({stop:u/r,color:c})),rotation:l},o}updateAxis(t,e){const{axisTicks:i,gradient:n,scale:s}=this,{placement:a}=qd(this.position),o=this.isVertical(),r=this.reverseOrder!==o;i.placement=a;const l=n.thickness+(s.padding??0);return i.translationX=o?l:e.x,i.translationY=o?e.y:l,i.scale.domain=r?t.colorDomain.slice().reverse():t.colorDomain,i.scale.range=o?[e.x,e.height]:[e.y,e.width],i.calculateLayout()}updateContainer(t){const e=this.getContainerStyles();this.containerNode.setStyleProperties(e),this.containerNode.cornerRadius=e.cornerRadius,this.containerNode.x=t.x,this.containerNode.y=t.y,this.containerNode.width=t.width,this.containerNode.height=t.height}updateArrow(){const t=this.highlightManager.getActiveHighlight(),{arrow:e}=this;if(t?.colorValue==null||t.series?.isHighlightEnabled()===!1){e.visible=!1;return}const{scale:i,label:n}=this.axisTicks,s=n.fontSize??0,a=i.convert(t.colorValue);let{x:o,y:r}=this.gradientRect,l=Math.PI;this.isVertical()?(o-=s/2,r+=a,l/=2):(o+=a,r-=s/2),e.visible=!0,e.fill=n.color,e.rotation=l,e.size=s,e.translationX=o,e.translationY=r}getMeasurements(t,e){let{x:i,y:n}=t;const{width:s,height:a}=e,{placement:o,floating:r,xOffset:l,yOffset:c}=qd(this.position),u=this.getContainerStyles();switch(i+=u.strokeWidth+u.padding.left,n+=u.strokeWidth+u.padding.top,o){case"left":n+=t.height/2-a/2;break;case"right":i+=t.width-s,n+=t.height/2-a/2;break;case"top":i+=t.width/2-s/2;break;case"bottom":i+=t.width/2-s/2,n+=t.height-a;break;case"right-top":case"top-right":i+=t.width-s;break;case"right-bottom":case"bottom-right":i+=t.width-s,n+=t.height-a;break;case"left-bottom":case"bottom-left":n+=t.height-a;break}if(!r)switch(o){case"left":case"left-top":case"left-bottom":t.shrink(s+this.spacing,"left");break;case"right":case"right-top":case"right-bottom":t.shrink(s+this.spacing,"right");break;case"top":case"top-left":case"top-right":t.shrink(a+this.spacing,"top");break;case"bottom":case"bottom-left":case"bottom-right":t.shrink(a+this.spacing,"bottom");break}return i+=l,n+=c,{top:n,left:i}}getContainerStyles(){const{stroke:t,strokeOpacity:e,strokeWidth:i}=this.border,{cornerRadius:n,fill:s,fillOpacity:a,padding:o}=this,r=typeof o=="number";return{cornerRadius:n,fill:s,fillOpacity:a,padding:{top:r?o:o.top??0,right:r?o:o.right??0,bottom:r?o:o.bottom??0,left:r?o:o.left??0},stroke:t,strokeOpacity:e,strokeWidth:this.border.enabled?i:0}}onChartHoverChange(){this.enabled&&this.updateArrow()}};fr.className="GradientLegend";M([b],fr.prototype,"enabled");M([b],fr.prototype,"position");M([b],fr.prototype,"reverseOrder");M([b],fr.prototype,"gradient");M([b],fr.prototype,"spacing");M([b],fr.prototype,"border");M([b],fr.prototype,"cornerRadius");M([b],fr.prototype,"fill");M([b],fr.prototype,"fillOpacity");M([b],fr.prototype,"padding");M([b],fr.prototype,"scale");({...De},Me(X,Fs("maxSpacing")),Me(X,Hs("minSpacing"))),{...F1};var{DataSet:Uut}=j,Wut=class extends Uut{constructor(t,e,i){super(t,e),this.childrenKey=i}commitPendingTransactions(){const t=super.commitPendingTransactions();return t&&this.dataIdKey&&(this.removeNestedDuplicatesFromRoot(),this.idToIndexCache=void 0),t}removeNestedDuplicatesFromRoot(){const t=new Set;for(const i of this.data)this.collectNestedIds(i,t);if(t.size===0)return;let e=0;for(;e0&&pt.warnOnce(`dataIdKey '${this.dataIdKey}' was not found on any data item.`)}return this.idToIndexCache}indexItemRecursively(t,e){const i=this.getIdValue(t);i!==void 0&&(this.idToIndexCache.has(i)||this.idToIndexCache.set(i,e));const n=t?.[this.childrenKey];if(Array.isArray(n))for(const s of n)this.indexItemRecursively(s,e)}collectUpdatedOriginalIndicesById(t,e){const i=this.getIdToIndexMap();for(const[n,s]of t){const a=i.get(n);if(a!==void 0&&!e.removedOriginalIndices.has(a)){const o=this.data[a];this.getIdValue(o)===n?(e.updatedOriginalIndices.add(a),e.pendingReplacements??(e.pendingReplacements=new Map),e.pendingReplacements.set(n,s)):this.replaceNestedItem(o,n,s)&&e.updatedOriginalIndices.add(a),t.delete(n)}}}applyRemovalsById(t,e){const i=new Set;for(const n of t){const s=this.getIdValue(n);s===void 0?pt.warnOnce(`applyTransaction() remove item is missing '${this.dataIdKey}' field; ignoring.`):i.add(s)}if(i.size!==0&&(this.removeFromGroupsByIdForHierarchy(e.prependsList,i),i.size>0&&this.removeFromGroupsByIdForHierarchy(e.insertionsList,i),e.trackedInsertions.length>0&&this.removeFromTrackedInsertionsById(t,e),i.size>0&&this.removeFromGroupsByIdForHierarchy(e.appendsList,i),i.size>0)){const n=this.getIdToIndexMap();for(const s of i){const a=n.get(s);if(a!==void 0){const o=this.data[a];this.getIdValue(o)===s?(e.removedOriginalIndices.add(a),e.virtualLength--):this.removeNestedItem(o,s)&&e.updatedOriginalIndices.add(a),i.delete(s)}}}}replaceNestedItem(t,e,i){const n=t?.[this.childrenKey];if(!Array.isArray(n))return!1;for(let s=0;s0;){const s=this.getIdValue(i[n]);s!==void 0&&e.has(s)?(e.delete(s),i.splice(n,1)):n++}if(e.size===0)break}}},{Chart:Kut}=j,y5=class extends Kut{getChartType(){return"standalone"}createDataSet(t){for(const e of this.series)if("childrenKey"in e.properties)return new Wut(t,this.dataIdKey,e.properties.childrenKey);return super.createDataSet(t)}performLayout(t){const{seriesRoot:e,annotationRoot:i}=this,n=t.layoutBox.clone().shrink(this.seriesArea.getPadding());this.seriesRect=n,this.animationRect=n;for(const s of[e,i])s.translationX=Math.floor(n.x),s.translationY=Math.floor(n.y);e.visible=this.series[0].visible,this.ctx.layoutManager.emitLayoutComplete(t,{series:{visible:!0,rect:n,paddedRect:t.layoutBox},layoutBox:t.layoutBox})}getAriaLabel(){const t=this.series[0]?.type;if(t==null)return"";const e=this.getCaptionText();switch(t){case"radial-gauge":case"linear-gauge":{const i=[];e.length!==0&&i.push(e);for(const n of this.series)i.push(n.getCaptionText());return this.ctx.localeManager.t("ariaAnnounceGaugeChart",{caption:i.join(". ")})}case"treemap":case"sunburst":return this.ctx.localeManager.t("ariaAnnounceHierarchyChart",{caption:e});default:return this.ctx.localeManager.t("ariaAnnounceStandaloneChart",{caption:e})}}};y5.className="StandaloneChart";y5.type="standalone";var{standaloneChartOptionsDefs:Dbt}=j;function kF(t,e,i){i||(e=Yut(e));const n=new Map;for(const a of t){const o=a.datumIndex.type===0?`link-${a.datumIndex.index}`:`node-${a.datumIndex.index}`;n.set(a.id,{itemId:o,datum:a,linksBefore:[],linksAfter:[],maxPathLengthBefore:-1,maxPathLengthAfter:-1})}let s=0;for(const[a,o]of n.entries())s=Math.max(s,o1(n,e,o,a,-1,[])+o1(n,e,o,a,1,[])+1);return{links:e,nodeGraph:n,maxPathLength:s}}function b5(t,e,i,n){const s=n.indexOf(e);if(s!==-1){for(let o=s;o!e.has(i))}function o1(t,e,i,n,s,a){if(a.includes(n))return 1/0;let o=s===-1?i.maxPathLengthBefore:i.maxPathLengthAfter;if(o===-1){o=0;const r=s===-1?i.linksBefore:i.linksAfter;for(const l of e){const{fromNode:c,toNode:u}=l,d=s===-1?u.id:c.id,g=s===-1?c.id:u.id,f=n===d?t.get(g):void 0;f!=null&&(r.push({node:f,link:l}),a?.push(n),o=Math.max(o,o1(t,e,f,g,s,a)+1),a?.pop())}s===-1?i.maxPathLengthBefore=o:i.maxPathLengthAfter=o}return o}var{findNodeDatumInArray:$ut,keyProperty:Xut,valueProperty:xS,DataController:Zut,Group:Uy,HighlightState:CF,Selection:Ed,Series:qut,TransformableText:Qut}=j,Jut=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n);const{datumIndex:s}=i,a=n.contextNodeData?.nodeData.find(o=>o.datumIndex.type===s.type&&o.datumIndex.index===s.index);this.size=a?.size,this.label=a?.type===1?a?.label:void 0}},x5=class extends qut{constructor(){super(...arguments),this.NodeEvent=Jut,this.nodeCount=0,this.linkCount=0,this.linksDataModel=void 0,this.linksProcessedData=void 0,this.nodesDataModel=void 0,this.nodesProcessedData=void 0,this.processedNodes=new Map,this.linkGroup=this.contentGroup.appendChild(new Uy({name:"linkGroup"})),this.nodeGroup=this.contentGroup.appendChild(new Uy({name:"nodeGroup"})),this.focusLinkGroup=this.highlightGroup.appendChild(new Uy({name:"linkGroup"})),this.focusNodeGroup=this.highlightGroup.appendChild(new Uy({name:"nodeGroup"})),this.highlightLinkGroup=this.highlightGroup.appendChild(new Uy({name:"linkGroup"})),this.labelSelection=Ed.select(this.labelGroup,Qut),this.linkSelection=Ed.select(this.linkGroup,()=>this.linkFactory()),this.nodeSelection=Ed.select(this.nodeGroup,()=>this.nodeFactory()),this.focusLinkSelection=Ed.select(this.focusLinkGroup,()=>this.linkFactory()),this.focusNodeSelection=Ed.select(this.focusNodeGroup,()=>this.nodeFactory()),this.highlightLinkSelection=Ed.select(this.highlightLinkGroup,()=>this.linkFactory()),this.highlightNodeSelection=Ed.select(this.highlightNodeGroup,()=>this.nodeFactory())}get nodes(){return this.properties.nodes}async processData(t){const{data:e,nodes:i}=this;if(e==null)return;const{fromKey:n,toKey:s,sizeKey:a,idKey:o,labelKey:r}=this.properties,l=new Zut("standalone",t.suppressFieldDotNotation,this.ctx.eventsHub),c=i==null?null:l.request(this.id,j.DataSet.wrap(i)??j.DataSet.empty(),{props:[Xut(o,void 0,{id:"idValue",includeProperty:!1}),...r==null?[]:[xS(r,void 0,{id:"labelValue",includeProperty:!1})]],groupByKeys:!0}),u=t.request(this.id,e,{props:[xS(n,void 0,{id:"fromValue",includeProperty:!1}),xS(s,void 0,{id:"toValue",includeProperty:!1}),...a==null?[]:[xS(a,void 0,{id:"sizeValue",includeProperty:!1,missingValue:0})]],groupByKeys:!1});i!=null&&l.execute();const[d,g]=await Promise.all([c??Promise.resolve(null),u]);this.nodesDataModel=d?.dataModel,this.nodesProcessedData=d?.processedData,this.linksDataModel=g?.dataModel,this.linksProcessedData=g?.processedData;const f=new Map;if(d==null){const y=g.dataModel.resolveColumnById(this,"fromValue",g.processedData),x=g.dataModel.resolveColumnById(this,"toValue",g.processedData),S=A=>{const I=f.size,w=A;return{series:this,itemId:`node-${I}`,datum:{},datumIndex:{type:1,index:I},type:1,index:I,linksBefore:[],linksAfter:[],id:A,size:0,label:w,style:this.getNodeStyle({datumIndex:{type:1,index:I},datum:{},size:0,label:w},I,!1)}},D=g.processedData.dataSources.get(this.id)?.data;if(D)for(const[A]of D.entries()){const I=y[A],w=x[A];I==null||w==null||(f.has(I)||f.set(I,S(I)),f.has(w)||f.set(w,S(w)))}}else{const y=d.dataModel.resolveColumnById(this,"idValue",d.processedData),x=r==null?void 0:d.dataModel.resolveColumnById(this,"labelValue",d.processedData),S=this.data?.dataIdKey,D=d.processedData.dataSources.get(this.id)?.data;if(D)for(const[A,I]of D.entries()){const w=y[A],N=x?.[A],O={type:1,index:A},L=S==null?void 0:I[S];f.set(w,{series:this,itemId:L==null?`node-${A}`:String(L),datum:I,datumIndex:O,type:1,index:A,linksBefore:[],linksAfter:[],id:w,size:0,label:N,style:this.getNodeStyle({datumIndex:O,datum:I,size:0,label:N},A,!1)})}}this.processedNodes=f}findNodeDatum(t){return $ut(t,this.contextNodeData?.nodeData,this.data?.dataIdKey)}getNodeGraph(t,e,{includeCircularReferences:i}){const{linksDataModel:n,linksProcessedData:s}=this;if(n==null||s==null){const{links:S,nodeGraph:D,maxPathLength:A}=kF(new Map().values(),[],i);return this.nodeCount=0,this.linkCount=0,{nodeGraph:D,links:S,maxPathLength:A}}const{sizeKey:a}=this.properties,o=n.resolveColumnById(this,"fromValue",s),r=n.resolveColumnById(this,"toValue",s),l=a==null?void 0:n.resolveColumnById(this,"sizeValue",s),c=new Map;for(const S of this.processedNodes.values()){const D=t(S);c.set(S.id,D)}const u=[],d=this.data?.dataIdKey,g=s.dataSources.get(this.id)?.data;if(g)for(const[S,D]of g.entries()){const A=o[S],I=r[S],w=l==null?1:l[S],N=c.get(A),O=c.get(I);if(w<=0||N==null||O==null)continue;const L={type:0,index:S},R=d==null?void 0:D[d],P=e({series:this,itemId:R==null?`link-${S}`:String(R),datum:D,datumIndex:L,type:0,index:S,fromNode:N,toNode:O,size:w,style:this.getLinkStyle({datum:D,datumIndex:L},N.datumIndex,!1)});u.push(P)}const{links:f,nodeGraph:y,maxPathLength:x}=kF(c.values(),u,i);for(const S of y.values())S.datum.linksBefore=S.linksBefore.map(D=>D.link),S.datum.linksAfter=S.linksAfter.map(D=>D.link);return this.nodeCount=y.size,this.linkCount=f.length,{nodeGraph:y,links:f,maxPathLength:x}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}update(t){const{seriesRect:e}=t,i={seriesRectWidth:e?.width??0,seriesRectHeight:e?.height??0};(this._nodeDataDependencies==null||this._nodeDataDependencies.seriesRectWidth!==i.seriesRectWidth||this._nodeDataDependencies.seriesRectHeight!==i.seriesRectHeight)&&(this._nodeDataDependencies=i),this.updateSelections();const n=this.contextNodeData?.nodeData??[],s=this.contextNodeData?.labelData??[],a=this.getHighlightedDatum();this.contentGroup.visible=this.visible;const o=a==null?CF.None:CF.OtherItem;this.contentGroup.opacity=this.properties.highlight.getStyle(o).opacity??1,this.labelSelection=this.updateLabelSelection({labelData:s,labelSelection:this.labelSelection}),this.updateLabelNodes({labelSelection:this.labelSelection}),this.linkSelection=this.updateLinkSelection({nodeData:n.filter(d=>d.type===0),datumSelection:this.linkSelection}),this.updateLinkNodes({datumSelection:this.linkSelection,isHighlight:!1}),this.nodeSelection=this.updateNodeSelection({nodeData:n.filter(d=>d.type===1),datumSelection:this.nodeSelection}),this.updateNodeNodes({datumSelection:this.nodeSelection,isHighlight:!1});let r,l,c,u;a?.type===1?(r=n.filter(d=>d.type===0&&(d.toNode===a||d.fromNode===a)),l=r.map(d=>d.fromNode===a?d.toNode:d.fromNode),l.push(a),c=[],u=[a]):a?.type===0?(r=[a],l=[a.fromNode,a.toNode],c=[a],u=[]):(r=[],l=[],c=[],u=[]),this.focusLinkSelection=this.updateLinkSelection({nodeData:r,datumSelection:this.focusLinkSelection}),this.updateLinkNodes({datumSelection:this.focusLinkSelection,isHighlight:!1}),this.focusNodeSelection=this.updateNodeSelection({nodeData:l,datumSelection:this.focusNodeSelection}),this.updateNodeNodes({datumSelection:this.focusNodeSelection,isHighlight:!1}),this.highlightLinkSelection=this.updateLinkSelection({nodeData:c,datumSelection:this.highlightLinkSelection}),this.updateLinkNodes({datumSelection:this.highlightLinkSelection,isHighlight:!0}),this.highlightNodeSelection=this.updateNodeSelection({nodeData:u,datumSelection:this.highlightNodeSelection}),this.updateNodeNodes({datumSelection:this.highlightNodeSelection,isHighlight:!0})}getHighlightedDatum(){let t=this.ctx.highlightManager?.getActiveHighlight();if(t?.series===this&&t.type==null){const{itemId:e}=t,i=this.contextNodeData?.nodeData??[];t=e==null?void 0:i.find(n=>n.type===1&&n.id===e)}else t?.series!==this&&(t=void 0);return t}isLabelHighlighted(t,e){return e==null?!1:e.type===1?e===t:e.type===0?e.fromNode===t||e.toNode===t:!1}resetAnimation(t){}dataCount(){return Number.NaN}getSeriesDomain(t){return{domain:[]}}getSeriesRange(t,e){return[Number.NaN,Number.NaN]}legendItemSymbol(t,e,i={}){const{fills:n,strokes:s}=this.properties,{fill:a=n[e%n.length],fillOpacity:o=1,stroke:r=s[e%s.length],strokeWidth:l=0,strokeOpacity:c=1,lineDash:u=[0],lineDashOffset:d=0}=i;return{marker:{fill:a,fillOpacity:o,stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}}}getLegendData(t){if(t!=="category")return[];const{showInLegend:e}=this.properties;return Array.from(this.processedNodes.values(),({id:i,label:n},s)=>({legendType:"category",id:this.id,itemId:i,seriesId:this.id,enabled:!0,label:{text:n??i},symbol:this.legendItemSymbol(1,s),hideInLegend:!e,isFixed:!0}))}pickNodeClosestDatum({x:t,y:e}){let i=1/0,n;return this.linkSelection.each((s,a)=>{const o=s.distanceSquared(t,e);o{const o=s.distanceSquared(t,e);ou.datum),c=r.indexOf(n)+e;c>=0&&c0?s=r.at(-1):s=Array.from(this.nodeSelection,d=>d.datum).at(-1)}else if(n?.type===1){const r=Array.from(this.nodeSelection,u=>u.datum),c=r.indexOf(n)+e;c>=0&&cd.datum)[0]}if(s==null)return;const a=s.type===1?Array.from(this.nodeSelection).find(r=>r.datum===s):Array.from(this.linkSelection).find(r=>r.datum===s);if(a==null)return;const o=this.computeFocusBounds(a.node);if(o!=null)return{datum:a.datum,datumIndex:this.contextNodeData?.nodeData.indexOf(a.datum)??0,otherIndex:0,bounds:o,clipFocusBox:!0}}getCategoryValue(t){}datumIndexForCategoryValue(t){}},{Path:tdt}=j;function wF({radius:t,startAngle:e,endAngle:i,tension:n}){const s=t*Math.cos(e),a=t*Math.sin(e),o=t*Math.cos(i),r=t*Math.sin(i),l=s*n,c=a*n,u=o*n,d=r*n;return{x:[s,l,u,o],y:[a,c,d,r]}}var th=class extends tdt{constructor(){super(...arguments),this.centerX=0,this.centerY=0,this.radius=0,this.startAngle1=0,this.endAngle1=0,this.startAngle2=0,this.endAngle2=0,this.tension=1}tensionedCurveTo(t,e,i,n,s,a,o,r){const{path:l,tension:c}=this,u=1-c;l.cubicCurveTo((i-t)*u+t,(n-e)*u+e,(s-o)*u+o,(a-r)*u+r,o,r)}updatePath(){const{path:t,centerX:e,centerY:i,radius:n}=this;let{startAngle1:s,endAngle1:a,startAngle2:o,endAngle2:r}=this;s>o&&([s,o]=[o,s],[a,r]=[r,a]),t.clear();const l=e+n*Math.cos(s),c=i+n*Math.sin(s);t.moveTo(l,c),this.tensionedCurveTo(l,c,e,i,e,i,e+n*Math.cos(r),i+n*Math.sin(r)),t.arc(e,i,n,r,o,!0),this.tensionedCurveTo(e+n*Math.cos(o),i+n*Math.sin(o),e,i,e,i,e+n*Math.cos(a),i+n*Math.sin(a)),t.arc(e,i,n,a,s,!0),t.closePath()}};M([ut()],th.prototype,"centerX");M([ut()],th.prototype,"centerY");M([ut()],th.prototype,"radius");M([ut()],th.prototype,"startAngle1");M([ut()],th.prototype,"endAngle1");M([ut()],th.prototype,"startAngle2");M([ut()],th.prototype,"endAngle2");M([ut()],th.prototype,"tension");var{FillGradientDefaults:edt,FillPatternDefaults:idt,FillImageDefaults:ndt,makeSeriesTooltip:sdt,SeriesProperties:adt,Label:odt}=j,$O=class extends odt{constructor(){super(...arguments),this.spacing=1,this.maxWidth=1}};M([b],$O.prototype,"spacing");M([b],$O.prototype,"maxWidth");var jl=class extends xt{constructor(){super(...arguments),this.fill=void 0,this.fillOpacity=1,this.stroke=void 0,this.strokeOpacity=1,this.strokeWidth=1,this.lineDash=[0],this.lineDashOffset=0,this.tension=0}getStyle(t,e,i){const{fillOpacity:n,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,tension:l}=this,c=this.fill??t[i%t.length],u=this.stroke??e[i%t.length];return{fill:c,fillOpacity:n,stroke:u,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,tension:l}}};M([b],jl.prototype,"fill");M([b],jl.prototype,"fillOpacity");M([b],jl.prototype,"stroke");M([b],jl.prototype,"strokeOpacity");M([b],jl.prototype,"strokeWidth");M([b],jl.prototype,"lineDash");M([b],jl.prototype,"lineDashOffset");M([b],jl.prototype,"tension");M([b],jl.prototype,"itemStyler");var Ur=class extends xt{constructor(){super(...arguments),this.spacing=1,this.width=1,this.fill=void 0,this.fillOpacity=1,this.stroke=void 0,this.strokeOpacity=1,this.strokeWidth=1,this.lineDash=[0],this.lineDashOffset=0}getStyle(t,e,i){const{fillOpacity:n,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r}=this,l=this.fill??t[i%t.length],c=this.stroke??e[i%t.length];return{fill:l,fillOpacity:n,stroke:c,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r}}};M([b],Ur.prototype,"spacing");M([b],Ur.prototype,"width");M([b],Ur.prototype,"fill");M([b],Ur.prototype,"fillOpacity");M([b],Ur.prototype,"stroke");M([b],Ur.prototype,"strokeOpacity");M([b],Ur.prototype,"strokeWidth");M([b],Ur.prototype,"lineDash");M([b],Ur.prototype,"lineDashOffset");M([b],Ur.prototype,"itemStyler");var Un=class extends adt{constructor(){super(...arguments),this.idKey="",this.idName=void 0,this.labelKey=void 0,this.labelName=void 0,this.sizeKey=void 0,this.sizeName=void 0,this.nodes=void 0,this.fillGradientDefaults=new edt,this.fillPatternDefaults=new idt,this.fillImageDefaults=new ndt,this.fills=[],this.strokes=[],this.label=new $O,this.link=new jl,this.node=new Ur,this.tooltip=sdt()}};M([b],Un.prototype,"fromKey");M([b],Un.prototype,"toKey");M([b],Un.prototype,"idKey");M([b],Un.prototype,"idName");M([b],Un.prototype,"labelKey");M([b],Un.prototype,"labelName");M([b],Un.prototype,"sizeKey");M([b],Un.prototype,"sizeName");M([b],Un.prototype,"nodes");M([b],Un.prototype,"fillGradientDefaults");M([b],Un.prototype,"fillPatternDefaults");M([b],Un.prototype,"fillImageDefaults");M([b],Un.prototype,"fills");M([b],Un.prototype,"strokes");M([b],Un.prototype,"label");M([b],Un.prototype,"link");M([b],Un.prototype,"node");M([b],Un.prototype,"tooltip");var{SeriesNodePickMode:NF,createDatumId:vS,Sector:rdt,getShapeStyle:SS,getLabelStyles:ldt,BBox:cdt}=j,MS=t=>t.startAngle+fl(t.startAngle,t.endAngle)/2,v5=class extends x5{constructor(t){super({moduleCtx:t,pickModes:[NF.NEAREST_NODE,NF.EXACT_SHAPE_MATCH]}),this.properties=new Un}isLabelEnabled(){return(this.properties.labelKey!=null||this.nodes==null)&&this.properties.label.enabled}linkFactory(){return new th}nodeFactory(){return new rdt}createNodeData(){const{id:t,_nodeDataDependencies:{seriesRectWidth:e,seriesRectHeight:i}={seriesRectWidth:0,seriesRectHeight:0},properties:n}=this,{fromKey:s,toKey:a,sizeKey:o,labelKey:r,label:{spacing:l,maxWidth:c,fontSize:u},node:{width:d,spacing:g}}=n,f=e/2,y=i/2;let x=[];const{nodeGraph:S,links:D}=this.getNodeGraph(U=>({...U,centerX:f,centerY:y,innerRadius:Number.NaN,outerRadius:Number.NaN,startAngle:Number.NaN,endAngle:Number.NaN}),U=>({...U,centerX:f,centerY:y,radius:Number.NaN,startAngle1:Number.NaN,endAngle1:Number.NaN,startAngle2:Number.NaN,endAngle2:Number.NaN}),{includeCircularReferences:!0});let A=0;for(const[U,{datum:V,linksBefore:Z,linksAfter:W}]of S.entries()){const q=Z.reduce((nt,{link:G})=>nt+G.size,0)+W.reduce((nt,{link:G})=>nt+G.size,0);if(q===0)S.delete(U);else{const{label:nt}=n;V.size=q,A+=V.size;const G=nt.enabled?this.getLabelText(V.label,V.datum,r,"label",[],nt,{datum:V.datum,value:V.label,fromKey:s,toKey:a,sizeKey:o,size:V.size}):void 0;V.label=ce(G)}}let I=0;if(this.isLabelEnabled()){const U=Ve(this.properties.label);let V=0;for(const{datum:Z}of S.values()){const{id:W,label:q}=Z;if(q==null)continue;const nt=kc(q,{maxWidth:c,font:this.properties.label,textWrap:"never"}),{width:G}=U.measureLines(nt);V=Math.max(G,V),x.push({id:W,text:nt,centerX:f,centerY:y,angle:Number.NaN,radius:Number.NaN,size:Z.size,datumIndex:Z.datumIndex,nodeDatum:Z})}I=V+l}const w=S.size;let N=Math.min(e,i)/2-d-I,O=g/N;if(I!==0&&(w*O>=1.5*Math.PI||N<=0)&&(x=[],N=Math.min(e,i)/2-d,O=g/N),w*O>=2*Math.PI||N<=0){pt.warnOnce("There was insufficient space to display the Chord Series.");return}const L=N,R=N+d,P=Math.max((2*Math.PI-w*O)/A,0);let B=0;for(const{datum:U}of S.values()){U.innerRadius=L,U.outerRadius=R,U.startAngle=B,U.endAngle=B+U.size*P,B=U.endAngle+O;const V=(U.innerRadius+U.outerRadius)/2,Z=MS(U);U.midPoint={x:U.centerX+V*Math.cos(Z),y:U.centerY+V*Math.sin(Z)}}const F=[];for(const{datum:U,linksBefore:V,linksAfter:Z}of S.values()){const W=MS(U),q=[...V.map(G=>({link:G.link,distance:fl(MS(G.node.datum),W),after:!1})),...Z.map(G=>({link:G.link,distance:fl(MS(G.node.datum),W),after:!0}))];let nt=U.startAngle;for(const{link:G,after:et}of q.toSorted((st,lt)=>st.distance-lt.distance)){const st=G.size*P;et?(G.startAngle1=nt,G.endAngle1=nt+st):(G.startAngle2=nt,G.endAngle2=nt+st),nt+=G.size*P}F.push(U)}const{tension:H}=this.properties.link;for(const U of D){U.radius=N;const V=wF({radius:N,startAngle:U.startAngle1,endAngle:U.endAngle2,tension:H}),Z=wF({radius:N,startAngle:U.startAngle2,endAngle:U.endAngle1,tension:H}),W=dl(...V.x,.5),q=dl(...V.y,.5),nt=dl(...Z.x,.5),G=dl(...Z.y,.5);U.midPoint={x:U.centerX+(W+nt)/2,y:U.centerY+(q+G)/2},F.push(U)}for(const U of x){const V=S.get(U.id)?.datum;V!=null&&(U.radius=R+l,U.angle=ze(V.startAngle+fl(V.startAngle,V.endAngle)/2),U.datumIndex=V.datumIndex,U.nodeDatum=V)}x.sort((U,V)=>U.angle-V.angle);let $=1/0,Y=-1/0;return x=x.filter(U=>{const V=nr(u),Z=Math.atan2(V/2,U.radius),W=U.angle-Z,q=U.angle+Z;return Ba($,W,q)||Ba(Y,W,q)?!1:($=Math.min(W,$),Y=Math.max(q,Y),!0)}),{itemId:t,nodeData:F,labelData:x}}updateLabelSelection(t){const e=this.isLabelEnabled()?t.labelData:[];return t.labelSelection.update(e)}updateLabelNodes(t){const e={toKey:this.properties.toKey,fromKey:this.properties.fromKey,sizeKey:this.properties.sizeKey,size:Number.NaN},i=this.getHighlightedDatum();t.labelSelection.each((n,s)=>{const{size:a,text:o,centerX:r,centerY:l,radius:c,angle:u,datumIndex:d,nodeDatum:g}=s;e.size=a;const f=this.isLabelHighlighted(g,i),y=this.getHighlightStyle(f,d),x=ldt(this,void 0,e,this.properties.label,f,i),{fontStyle:S,fontWeight:D,fontSize:A,fontFamily:I,color:w}=x;n.visible=!0,n.translationX=r+c*Math.cos(u),n.translationY=l+c*Math.sin(u),n.text=o,n.fill=w,n.fontStyle=S,n.fontWeight=D,n.fontSize=A,n.fontFamily=I,n.textBaseline="middle",Math.cos(u)>=0?(n.textAlign="left",n.rotation=u):(n.textAlign="right",n.rotation=u-Math.PI);const N=y.opacity??1;n.opacity=N,n.fillOpacity=N,n.setBoxing(x)})}updateNodeSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>vS(e.type,e.id))}getNodeStyle(t,e,i){const{properties:n}=this,{fills:s,strokes:a,fillGradientDefaults:o,fillPatternDefaults:r,fillImageDefaults:l}=n,{itemStyler:c}=n.node,u=this.getHighlightStyle(i,t.datumIndex),d=Et(u,n.node.getStyle(s,a,e));let g=SS(d,o,r,l);if(c!=null&&t.datumIndex!=null){const f=this.cachedDatumCallback(vS(t.datumIndex.index,"node",i?"highlight":"node"),()=>{const y=this.makeItemStylerParams(t,i,g);return this.callWithContext(c,y)});f&&(g=SS(Et(f,g),o,r,l))}return g.opacity=1,g}makeItemStylerParams({datum:t,datumIndex:e,size:i=0,label:n},s,a){const{id:o}=this,r=this.ctx.highlightManager?.getActiveHighlight(),l=this.getHighlightStateString(r,s,e),c=this.filterItemStylerFillParams(a.fill)??a.fill;return{seriesId:o,datum:t,highlightState:l,...a,size:i,label:n,fill:c}}updateNodeNodes(t){const{datumSelection:e,isHighlight:i}=t,n=this.getShapeFillBBox();e.each((s,a)=>{const{datumIndex:o}=a,r=this.getNodeStyle(a,o.index,i);s.setStyleProperties(r,n),s.centerX=a.centerX,s.centerY=a.centerY,s.innerRadius=a.innerRadius,s.outerRadius=a.outerRadius,s.startAngle=a.startAngle,s.endAngle=a.endAngle,s.inset=s.strokeWidth/2})}updateLinkSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>vS(e.type,e.index,e.fromNode.id,e.toNode.id))}getLinkStyle({datumIndex:t,datum:e},i,n){const{id:s,properties:a}=this,{fills:o,strokes:r,fillGradientDefaults:l,fillPatternDefaults:c,fillImageDefaults:u}=a,{itemStyler:d}=a.link,g=this.getHighlightStyle(n,t),f=Et(g,a.link.getStyle(o,r,i.index));let y=SS(f,l,c,u);if(d!=null&&t!=null){const x=this.ctx.highlightManager?.getActiveHighlight(),S=this.cachedDatumCallback(vS(t.index,"link",n?"highlight":"node"),()=>{const D=this.getHighlightStateString(x,n,i);return this.callWithContext(d,{seriesId:s,datum:e,highlightState:D,...y})});S&&(y=SS(Et(S,y),l,c,u))}return y.opacity=1,y}updateLinkNodes(t){const{datumSelection:e,isHighlight:i}=t,n=this.getShapeFillBBox();e.each((s,a)=>{const o=a.fromNode.datumIndex,r=this.getLinkStyle(a,o,i);s.centerX=a.centerX,s.centerY=a.centerY,s.radius=a.radius,s.startAngle1=a.startAngle1,s.endAngle1=a.endAngle1,s.startAngle2=a.startAngle2,s.endAngle2=a.endAngle2,s.tension=r.tension,s.setStyleProperties(r,n)})}getShapeFillBBox(){const t=this._nodeDataDependencies?.seriesRectWidth??0,e=this._nodeDataDependencies?.seriesRectHeight??0,i=Math.min(t,e),n=(t-i)/2,s=(e-i)/2,a=new cdt(n,s,t,e);return{series:a,axis:a}}getTooltipContent(t){const{id:e,linksProcessedData:i,nodesProcessedData:n,properties:s,ctx:{formatManager:a}}=this,{fromKey:o,toKey:r,sizeKey:l,sizeName:c,tooltip:u}=s,d=this.contextNodeData?.nodeData.find(A=>A.datumIndex.type===t.type&&A.datumIndex.index===t.index);if(d==null)return;const g=d.type===0?d.fromNode.index:d.index,f=d.type===0?`${d.fromNode.label} - ${d.toNode.label}`:d.label,y=t.type===0?i?.dataSources.get(this.id)?.data[t.index]:n?.dataSources.get(this.id)?.data[t.index],x=d.size;let S;if(d.type===0){const A=d.fromNode.datumIndex;S=this.getLinkStyle({datumIndex:t,datum:y},A,!1)}else{const A=d.label;S=this.getNodeStyle({datumIndex:t,datum:y,size:x,label:A},t.index,!1)}const D=[];if(l!=null){const A=a.format(this.callWithContext.bind(this),{type:"number",value:x,datum:y,seriesId:e,legendItemName:void 0,key:l,source:"tooltip",property:"size",domain:[],boundSeries:this.getFormatterContext("size"),fractionDigits:void 0,visibleDomain:void 0});D.push({label:c,fallbackLabel:l,value:A??String(x)})}return this.formatTooltipWithContext(u,{title:f,symbol:this.legendItemSymbol(d.type,g,S),data:D},{seriesId:e,datum:y,title:f,fromKey:o,toKey:r,sizeKey:l,sizeName:c,size:x,...S})}computeFocusBounds(t){return t}hasItemStylers(){return this.properties.node.itemStyler!=null||this.properties.link.itemStyler!=null||this.properties.label.itemStyler!=null}};v5.className="ChordSeries";v5.type="chord";var{chordSeriesThemeableOptionsDef:hdt}=j,XO={...hdt,..._e,type:ht(Jt("chord")),fromKey:ht(K),toKey:ht(K)};XO.fillGradientDefaults=Mt(sD);XO.fillPatternDefaults=Mt(aD);XO.fillImageDefaults=Mt(oD);({...Oe});var DS={$eq:[{$path:["/series/0/direction",void 0]},"horizontal"]};ie.NUMBER,ie.CATEGORY,he.LEFT,he.RIGHT,he.LEFT,ie.CATEGORY,ie.NUMBER,he.TOP,he.BOTTOM,he.BOTTOM;({...Oe},ie.NUMBER+"",ie.CATEGORY+"");var{BBox:udt,Path:ddt}=j,TF=1e-6;function LF([t,e],[i,n]){return Math.abs(t-i)<=TF&&Math.abs(e-n)<=TF}var Gl=class extends ddt{constructor(){super(...arguments),this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0}get midPoint(){const{x0:t,y0:e,x1:i,y1:n,x2:s,y2:a,x3:o,y3:r}=this;return{x:(t+i+s+o)/4,y:(e+n+a+r)/4}}distanceSquared(t,e){if(this.containsPoint(t,e))return 0;const{x0:i,y0:n,x1:s,y1:a,x2:o,y2:r,x3:l,y3:c}=this;return Math.min(Jh(t,e,i,n,s,a,1/0),Jh(t,e,s,a,o,r,1/0),Jh(t,e,o,r,l,c,1/0),Jh(t,e,l,c,i,n,1/0))}computeBBox(){const{x0:t,y0:e,x1:i,y1:n,x2:s,y2:a,x3:o,y3:r}=this,l=Math.min(t,i,s,o),c=Math.max(t,i,s,o)-l,u=Math.min(e,n,a,r),d=Math.max(e,n,a,r)-u;return new udt(l,u,c,d)}updatePath(){const{path:t,x0:e,y0:i,x1:n,y1:s,x2:a,y2:o,x3:r,y3:l}=this,c=[[e,i],[n,s],[a,o],[r,l]];t.clear();let u,d;for(const g of c){if(u!=null&&LF(u,g)||d!=null&&LF(d,g))continue;const[f,y]=g;u==null?t.moveTo(f,y):t.lineTo(f,y),u??(u=g),d=g}t.closePath()}};M([ut()],Gl.prototype,"x0");M([ut()],Gl.prototype,"y0");M([ut()],Gl.prototype,"x1");M([ut()],Gl.prototype,"y1");M([ut()],Gl.prototype,"x2");M([ut()],Gl.prototype,"y2");M([ut()],Gl.prototype,"x3");M([ut()],Gl.prototype,"y3");var{NODE_UPDATE_STATE_TO_PHASE_MAPPING:pdt}=j;function OF(t,e,i,n){const{x0:s,y0:a,x1:o,y1:r,x2:l,y2:c,x3:u,y3:d,opacity:g}=t;return i?{x0:(s+u)/2,y0:(a+d)/2,x1:(o+l)/2,y1:(r+c)/2,x2:(o+l)/2,y2:(r+c)/2,x3:(s+u)/2,y3:(a+d)/2,opacity:g}:{x0:(s+o)/2,y0:(a+r)/2,x1:(s+o)/2,y1:(a+r)/2,x2:(l+u)/2,y2:(c+d)/2,x3:(l+u)/2,y3:(c+d)/2,opacity:g}}function gdt(t,e){const i=a=>a==null;return{fromFn:(a,o,r)=>{r==="updated"&&i(o)?r="removed":r==="updated"&&i(a.previousDatum)&&(r="added");let l;r==="added"&&a.previousDatum==null&&e==="fade"||(r==="unknown"||r==="added"?l=OF(o,a.previousDatum,t):l={x0:a.x0,y0:a.y0,x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2,x3:a.x3,y3:a.y3,opacity:a.opacity});const c=pdt[r];return{...l,phase:c}},toFn:(a,o,r)=>{let l;return r==="removed"&&a.datum==null&&e==="fade"||(r==="removed"||i(o)?l=OF(o,a.previousDatum,t):l=r1(a,o)),l}}}function r1(t,e){const{x0:i,y0:n,x1:s,y1:a,x2:o,y2:r,x3:l,y3:c,opacity:u}=e;return{x0:i,y0:n,x1:s,y1:a,x2:o,y2:r,x3:l,y3:c,opacity:u}}var{SeriesNodePickMode:EF,valueProperty:fdt,keyProperty:mdt,updateLabelNode:ydt,SMALLEST_KEY_INTERVAL:bdt,LARGEST_KEY_INTERVAL:xdt,diff:vdt,fixNumericExtent:Sdt,seriesLabelFadeInAnimation:RF,resetMotion:Mdt,resetLabelFn:Ddt,animationValidation:Adt,computeBarFocusBounds:Idt,Group:kdt,Selection:Cdt,PointerEvents:PF,motion:wdt,checkCrisp:Ndt,createDatumId:Tdt}=j,Ldt=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.xKey=n.properties.stageKey,this.yKey=n.properties.valueKey}},S5=class extends j.AbstractBarSeries{constructor({moduleCtx:t,animationResetFns:e}){super({moduleCtx:t,pickModes:[EF.AXIS_ALIGNED,EF.EXACT_SHAPE_MATCH],propertyKeys:{x:["stageKey"],y:["valueKey"]},propertyNames:{x:[],y:[]},categoryKey:"xValue",datumSelectionGarbageCollection:!1,animationResetFns:{datum:e.datum,label:Ddt}}),this.NodeEvent=Ldt,this.connectorNodeGroup=this.contentGroup.appendChild(new kdt({name:`${this.id}-series-connectorNodes`,zIndex:Vs.BACKGROUND})),this.connectorSelection=Cdt.select(this.connectorNodeGroup,()=>this.connectionFactory()),this.connectorNodeGroup.pointerEvents=PF.None}get pickModeAxis(){return"main-category"}setZIndex(t){return super.setZIndex(t),this.connectorNodeGroup.zIndex=[Vs.BACKGROUND,t],!0}isVertical(){return!super.isVertical()}connectionFactory(){return new Gl}getKeyAxis(t){if(t===z.X)return this.properties.xKeyAxis;if(t===z.Y)return this.properties.yKeyAxis}async processData(t){const{stageKey:e,valueKey:i}=this.properties,{visible:n,id:s}=this,a=(x,S,D)=>n&&this.ctx.legendManager.getItemEnabled({seriesId:s,itemId:D}),o=this.getCategoryAxis()?.scale,r=this.getValueAxis()?.scale,{isContinuousX:l,xScaleType:c,yScaleType:u}=this.getScaleInformation({xScale:o,yScale:r}),d=[];this.needsDataModelDiff()&&this.processedData&&d.push(vdt(this.id,this.processedData)),this.ctx.animationManager.isSkipped()||d.push(Adt());const g=this.visible?{}:{forceValue:0},f=this.properties.allowNullKeys??!1,{processedData:y}=await this.requestDataModel(t,this.data,{props:[mdt(e,c,{id:"xValue",allowNullKey:f}),fdt(i,u,{id:"yValue",...g,validation:a,invalidValue:0}),...l?[bdt,xdt]:[],...d],groupByKeys:!1});this.smallestDataInterval=y.reduced?.smallestKeyInterval,this.largestDataInterval=y.reduced?.largestKeyInterval,this.animationState.transition("updateData")}getSeriesDomain(t){const{processedData:e,dataModel:i,id:n,ctx:{legendManager:s}}=this;if(!e||!i)return{domain:[]};const{keys:[a]}=e.domain;if(t===this.getCategoryDirection()){const o=i.resolveProcessedDataDefById(this,"xValue");if(o?.def.type==="key"&&o?.def.valueType==="category"){if(!this.hasData)return{domain:[]};const r=a.filter((c,u)=>s.getItemEnabled({seriesId:n,itemId:u})),l=i.getKeySortMetadata(this,"xValue",e);return{domain:r,sortMetadata:l}}return{domain:this.padBandExtent(a)}}else{const o=this.domainForClippedRange(t,["yValue"],"xValue"),r=Math.max(...o),l=[-r,r];return{domain:Sdt(l)}}}getSeriesRange(t,e){return[Number.NaN,Number.NaN]}createNodeData(){const{hasData:t,data:e,dataModel:i,processedData:n,id:s,ctx:{legendManager:a}}=this,o=this.getCategoryAxis(),r=this.getValueAxis();if(!(t&&e&&o&&r&&i&&n?.type==="ungrouped"))return;const l=o.scale,c=r.scale,u=this.getBarDirection()===z.X,{stageKey:d,valueKey:g}=this.properties,f=`${g}`,y={itemId:f,nodeData:[],labelData:[],connectorData:[],scales:this.calculateScaling(),groupScale:this.getScaling(this.ctx.seriesStateManager.getGroupScale(this)),visible:this.visible},x=this.visible;if(!x)return y;const S=i.resolveKeysById(this,"xValue",n),D=i.resolveColumnById(this,"yValue",n),{groupOffset:A,barOffset:I,barWidth:w}=this.getBarDimensions(),N=Ndt(o?.scale,o?.visibleRange,this.smallestDataInterval,this.largestDataInterval);let O;const L=n.dataSources.get(this.id)?.data??[];for(const[R,P]of L.entries()){const B=x&&a.getItemEnabled({seriesId:s,itemId:R}),F=S[R];if(F===void 0&&!this.properties.allowNullKeys)continue;const H=l.convert(F);if(!Number.isFinite(H))continue;const $=Math.round(H)+A+I,Y=D[R],U=Math.round(c.convert(-Y)),V=Math.round(c.convert(Y)),Z=this.getItemStyle({datum:P,datumIndex:R},!1),W=Math.max(Z.strokeWidth??0,Math.abs(V-U)),q={x:u?Math.min(V,U):$,y:u?$:Math.min(V,U),width:u?W:w,height:u?w:W},nt={x:q.x+q.width/2,y:q.y+q.height/2},G=this.createLabelData({datumIndex:R,rect:q,barAlongX:u,yDatum:Y,datum:P,visible:B}),et={index:R,series:this,datum:P,datumIndex:R,xValue:F,yValue:Y,xKey:d,yKey:g,x:q.x,y:q.y,width:q.width,height:q.height,midPoint:nt,crisp:N,label:G,visible:B};if(y.nodeData.push(et),G!=null&&y.labelData.push(G),O!=null){const st=O.rect,lt=O.nodeDatum,mt=O.datumIndex;u?y.connectorData.push({datum:lt,datumIndex:mt,x0:st.x,y0:st.y+st.height,x1:st.x+st.width,y1:st.y+st.height,x2:q.x+q.width,y2:q.y,x3:q.x,y3:q.y,opacity:1}):y.connectorData.push({datum:lt,datumIndex:mt,x0:st.x+st.width,y0:st.y,x1:q.x,y1:q.y,x2:q.x,y2:q.y+q.height,x3:st.x+st.width,y3:st.y+st.height,opacity:1})}B&&(O={itemId:f,rect:q,nodeDatum:et,datumIndex:R})}return y}updateNodes(t,e){super.updateNodes(t,e);const{connectorSelection:i}=this,n=this.contextNodeData?.connectorData??[];this.connectorSelection=this.updateConnectorSelection({connectorSelection:i,connectorData:n}),this.updateConnectorNodes({connectorSelection:i})}updateDatumSelection(t){const{nodeData:e,datumSelection:i}=t,n=e??[];return i.update(n,void 0,s=>this.getDatumId(s))}updateConnectorSelection(t){const{connectorData:e,connectorSelection:i}=t;return i.update(this.connectorEnabled()?e:[],void 0,n=>this.getDatumId(n.datum))}updateConnectorNodes(t){const e=this.getShapeFillBBox();t.connectorSelection.each((i,n)=>{const{fill:s,fillOpacity:a,stroke:o,strokeOpacity:r,strokeWidth:l,lineDash:c,lineDashOffset:u}=this.connectorStyle(n.datumIndex);i.setProperties(r1(i,n)),i.setStyleProperties({fill:s,stroke:o,fillOpacity:a,strokeOpacity:r,strokeWidth:l,lineDash:c,lineDashOffset:u},e)})}updateLabelSelection(t){const e=this.properties.label.enabled?t.labelData:[];return t.labelSelection.update(e,i=>{i.pointerEvents=PF.None})}updateLabelNodes(t){const e={stageKey:this.properties.stageKey,valueKey:this.properties.valueKey},i=this.ctx.highlightManager?.getActiveHighlight(),{isHighlight:n=!1,labelSelection:s}=t;s.each((a,o)=>{const r=this.getHighlightStyle(n,o.datumIndex);a.visible=o.visible||n,a.fillOpacity=r.opacity??1,a.opacity=r.opacity??1,ydt(this,a,e,this.properties.label,o,n,i)})}getHighlightLabelData(t,e){if(e.label)return[{...e.label}]}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s}=this,{stageKey:a,valueKey:o,tooltip:r,legendItemName:l}=s,c=this.getCategoryAxis(),u=this.getValueAxis();if(!i||!n||!c||!u)return;const d=n.dataSources.get(this.id)?.data[t],g=i.resolveKeysById(this,"xValue",n)[t],f=i.resolveColumnById(this,"yValue",n)[t],y=this.properties.allowNullKeys??!1;if(!(g===void 0&&!y))return this.formatTooltipWithContext(r,{symbol:this.legendItemSymbol(t),data:[{label:this.getAxisValueText(c,"tooltip",g,d,a,l),value:this.getAxisValueText(u,"tooltip",f,d,o,l)}]},{seriesId:e,datum:d,title:a,stageKey:a,valueKey:o,...this.tooltipStyle(d,t)})}resetAllAnimation(t){super.resetAllAnimation(t),Mdt([this.connectorSelection],r1)}animateEmptyUpdateReady({labelSelection:t}){const{connectorSelection:e}=this,i=this.isVertical(),s=gdt(i,"normal");wdt.fromToMotion(this.id,"connectors",this.ctx.animationManager,[e],s),RF(this,"labels",this.ctx.animationManager,t)}animateWaitingUpdateReady(t){const{labelSelection:e}=t;this.ctx.animationManager.stopByAnimationGroupId(this.id),RF(this,"labels",this.ctx.animationManager,e)}getDatumId(t){return Tdt(t.xValue)}isLabelEnabled(){return this.properties.label.enabled}computeFocusBounds({datumIndex:t}){return Idt(this,this.contextNodeData?.nodeData[t])}legendItemSymbol(t){const{strokeWidth:e,fillOpacity:i,strokeOpacity:n,lineDash:s,lineDashOffset:a,fill:o,stroke:r}=this.properties.getStyle(t);return{marker:{fill:o,fillOpacity:i,stroke:r,strokeWidth:e,strokeOpacity:n,lineDash:s,lineDashOffset:a}}}getLegendData(t){const{id:e,processedData:i,dataModel:n,ctx:{legendManager:s},visible:a}=this;if(!n||!i||t!=="category")return[];const{showInLegend:o}=this.properties,r=n.resolveKeysById(this,"xValue",i);return(i.dataSources.get(this.id)?.data??[]).map((l,c)=>{const u=r[c],d=this.properties.allowNullKeys??!1;if(!(u==null&&!d))return{legendType:"category",id:e,datum:l,itemId:c,seriesId:e,enabled:a&&s.getItemEnabled({seriesId:e,itemId:c}),label:{text:String(u)},symbol:this.legendItemSymbol(c),skipAnimations:!0,hideInLegend:!o}}).filter(l=>l!=null)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.label.itemStyler!=null}},{Label:Odt,AbstractBarSeriesProperties:Edt,makeSeriesTooltip:Rdt,AxisLabel:Pdt}=j,ZO=class extends Odt{constructor(){super(...arguments),this.spacing=0}};M([b],ZO.prototype,"placement");M([b],ZO.prototype,"spacing");var M5=class extends Pdt{};M([b],M5.prototype,"placement");var wo=class extends Edt{constructor(){super(...arguments),this.fills=[],this.fillOpacity=1,this.strokes=[],this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.label=new ZO,this.stageLabel=new M5,this.tooltip=Rdt()}getStyle(t){const{fills:e,strokes:i,fillOpacity:n,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r}=this;return{fill:e[t],fillOpacity:n,stroke:i[t],strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,opacity:1}}};M([b],wo.prototype,"stageKey");M([b],wo.prototype,"valueKey");M([b],wo.prototype,"fills");M([b],wo.prototype,"fillOpacity");M([b],wo.prototype,"strokes");M([b],wo.prototype,"strokeWidth");M([b],wo.prototype,"strokeOpacity");M([b],wo.prototype,"lineDash");M([b],wo.prototype,"lineDashOffset");M([b],wo.prototype,"label");M([b],wo.prototype,"stageLabel");M([b],wo.prototype,"tooltip");function zF(t,{x:e,y:i,width:n,height:s,opacity:a}){return{x1:e,y1:i,x2:e+n,y2:i+s,opacity:a??1}}var{Line:zdt}=j,D5=class extends S5{constructor(t){super({moduleCtx:t,animationResetFns:{datum:zF}}),this.properties=new wo}get hasData(){const{id:t,ctx:{legendManager:e}}=this,i=this.data?.data.reduce((n,s,a)=>n+(e.getItemEnabled({seriesId:t,itemId:a})?1:0),0);return i!=null&&i>1}getBandScalePadding(){return{inner:1,outer:0}}connectorEnabled(){return!0}getItemStyle({datumIndex:t},e){return this.properties.getStyle(t)}connectorStyle(t){return this.properties.getStyle(t)}nodeFactory(){return new zdt}createLabelData({datumIndex:t,rect:e,barAlongX:i,yDatum:n,datum:s,visible:a}){const{stageKey:o,valueKey:r,label:l}=this.properties,{spacing:c,placement:u}=l;if(!l.enabled)return;let d,g,f,y;if(i)switch(d=e.x+e.width/2,f="center",u){case"before":g=e.y-c,y="bottom";break;case"after":g=e.y+e.height+c,y="top";break;default:g=e.y+e.height/2,y="middle"}else switch(g=e.y+e.height/2,y="middle",u){case"before":d=e.x-c,f="right";break;case"after":d=e.x+e.width+c,f="left";break;default:d=e.x+e.width/2,f="center"}const x=this.getSeriesDomain(z.Y).domain,S=this.getLabelText(n,s,r,"y",x,l,{itemId:r,value:n,datum:s,stageKey:o,valueKey:r});return{x:d,y:g,textAlign:f,textBaseline:y,text:S,itemId:r,datum:s,datumIndex:t,series:this,visible:a}}updateDatumNodes(t){const e=this.getHighlightStyle(t.isHighlight);t.datumSelection.each((i,n)=>{i.setProperties(zF(i,n)),i.stroke=e?.stroke,i.strokeWidth=e?.strokeWidth??0,i.strokeOpacity=e?.strokeOpacity??1,i.lineDash=e?.lineDash,i.lineDashOffset=e?.lineDashOffset??0,i.opacity=e?.opacity??1})}tooltipStyle(t,e){const{fill:i,stroke:n,fillOpacity:s,strokeOpacity:a,strokeWidth:o,lineDash:r,lineDashOffset:l}=this.properties.getStyle(e);return{fill:i,fillOpacity:s,stroke:n,strokeOpacity:a,strokeWidth:o,lineDash:r,lineDashOffset:l}}hasItemStylers(){return this.properties.label.itemStyler!=null}};D5.className="ConeFunnelSeries";D5.type="cone-funnel";var{coneFunnelSeriesThemeableOptionsDef:Bdt}=j;({...At(_e,["showInLegend"]),...Bdt,type:ht(Jt("cone-funnel")),stageKey:ht(K),valueKey:ht(K)});({...Oe},ie.NUMBER+"",ie.CATEGORY+"");var{Label:Vdt,DropShadow:_dt,AbstractBarSeriesProperties:Fdt,makeSeriesTooltip:Hdt,AxisLabel:jdt}=j,Gdt=class extends Vdt{},A5=class extends jdt{};M([b],A5.prototype,"placement");var eh=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.fill=void 0,this.fillOpacity=1,this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}getStyle(){const{fill:t,stroke:e,fillOpacity:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o}=this;return{fill:t,fillOpacity:i,stroke:e,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,opacity:1}}};M([b],eh.prototype,"enabled");M([b],eh.prototype,"fill");M([b],eh.prototype,"fillOpacity");M([b],eh.prototype,"stroke");M([b],eh.prototype,"strokeWidth");M([b],eh.prototype,"strokeOpacity");M([b],eh.prototype,"lineDash");M([b],eh.prototype,"lineDashOffset");var Ls=class extends Fdt{constructor(){super(...arguments),this.fills=[],this.fillOpacity=1,this.strokes=[],this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.spacingRatio=0,this.dropOff=new eh,this.shadow=new _dt().set({enabled:!1}),this.label=new Gdt,this.stageLabel=new A5,this.tooltip=Hdt()}getStyle(t){const{fills:e,strokes:i,fillOpacity:n,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r}=this;return{fill:e[t],fillOpacity:n,stroke:i[t],strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,opacity:1}}};M([b],Ls.prototype,"stageKey");M([b],Ls.prototype,"valueKey");M([b],Ls.prototype,"fills");M([b],Ls.prototype,"fillOpacity");M([b],Ls.prototype,"strokes");M([b],Ls.prototype,"strokeWidth");M([b],Ls.prototype,"strokeOpacity");M([b],Ls.prototype,"lineDash");M([b],Ls.prototype,"lineDashOffset");M([b],Ls.prototype,"spacingRatio");M([b],Ls.prototype,"itemStyler");M([b],Ls.prototype,"dropOff");M([b],Ls.prototype,"shadow");M([b],Ls.prototype,"label");M([b],Ls.prototype,"stageLabel");M([b],Ls.prototype,"tooltip");var{resetBarSelectionsFn:Udt,prepareBarAnimationFunctions:BF,midpointStartingBarPosition:VF,createDatumId:Wdt,Rect:Kdt,motion:_F}=j,I5=class extends S5{constructor(t){super({moduleCtx:t,animationResetFns:{datum:Udt}}),this.properties=new Ls}getBandScalePadding(){return{inner:this.properties.spacingRatio,outer:0}}connectorEnabled(){return this.properties.dropOff.enabled}connectorStyle(t){return Et(this.properties.dropOff.getStyle(),this.properties.getStyle(t))}nodeFactory(){return new Kdt}createLabelData({datumIndex:t,rect:e,yDatum:i,datum:n,visible:s}){const{valueKey:a,stageKey:o,label:r}=this.properties;if(!r.enabled)return;const l=this.getSeriesDomain(z.Y).domain,c=this.getLabelText(i,n,a,"y",l,r,{itemId:a,value:i,datum:n,stageKey:o,valueKey:a});return{x:e.x+e.width/2,y:e.y+e.height/2,textAlign:"center",textBaseline:"middle",text:c,itemId:o,datum:n,datumIndex:t,series:this,visible:s}}getItemStyle({datum:t,datumIndex:e},i){const{id:n,properties:s}=this,{stageKey:a,valueKey:o,itemStyler:r}=s,l=this.getHighlightStyle(i,e);let u=Et(l,s.getStyle(e));if(r!=null){const d=this.ctx.highlightManager?.getActiveHighlight(),g=this.cachedDatumCallback(Wdt(e,i?"highlight":"node"),()=>{const f=this.getHighlightStateString(d,i,e);return this.callWithContext(r,{seriesId:n,datum:t,highlightState:f,stageKey:a,valueKey:o,...u})});g&&(u=Et(g,u))}return u}updateDatumNodes({datumSelection:t,isHighlight:e}){const{contextNodeData:i}=this;if(!i)return;const{shadow:n}=this.properties,s=this.getCategoryDirection()===z.X,a=this.getShapeFillBBox();t.each((o,r)=>{const l=this.getItemStyle(r,e);o.setStyleProperties(l,a),o.visible=s?r.width>0:r.height>0,o.crisp=r.crisp,o.fillShadow=n})}tooltipStyle(t,e){return this.getItemStyle({datum:t,datumIndex:e},!1)}animateEmptyUpdateReady(t){super.animateEmptyUpdateReady(t);const{datumSelection:e}=t,i=this.isVertical(),s=BF(VF(i,"normal"),"unknown");_F.fromToMotion(this.id,"datums",this.ctx.animationManager,[e],s)}animateWaitingUpdateReady(t){super.animateWaitingUpdateReady(t);const{datumSelection:e}=t,{processedData:i}=this,n=i?.reduced?.diff?.[this.id],s=BF(VF(this.isVertical(),"fade"),"added");_F.fromToMotion(this.id,"datums",this.ctx.animationManager,[e],s,(a,o)=>o.xValue,n)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.label.itemStyler!=null}};I5.className="FunnelSeries";I5.type="funnel";var{funnelSeriesThemeableOptionsDef:Ydt}=j;({...Ydt,...At(_e,["showInLegend"]),type:ht(Jt("funnel")),stageKey:ht(K),valueKey:ht(K)});var hx={theme:jt,container:jt,animation:jt,background:jt,contextMenu:jt,context:()=>!0,listeners:jt,locale:jt,width:jt,height:jt,minWidth:jt,minHeight:jt,title:jt,subtitle:jt,footnote:jt,padding:jt,tooltip:{...Re,...Zt.tooltip}};hx.overrideDevicePixelRatio=Mt(X);hx.foreground=Mt(jt);hx.withinStudio=Mt(J);xp({"linear-gauge":{...At(Du,["type"]),...hx},"radial-gauge":{...At(yx,["type"]),...hx}},"gauge options");var k5=class{*[Symbol.iterator](){const{node:t,datum:e}=this;t&&e&&(yield{node:t,datum:e})}nodes(){return this.node?[this.node]:[]}update(t,e,i,n){const s=t.nodes();if(s.length===0)this.node?.remove(),this.node=void 0;else{this.node===void 0&&(this.node=new i,this.node.fillOpacity=0,this.node.strokeOpacity=0,e.appendChild(this.node));const a=s[0],o=s.toReversed().find(r=>r.datum.datum.value>r.datum.datum.segmentStart)??s.at(-1);this.node.datum=this.datum=a.datum,n(this.node,a,o)}}},C5={fromFn:()=>({opacity:0,phase:"initial"}),toFn:()=>({opacity:1})};function w5(t,e){if(t==null)return"";const{min:i,max:n}=e,s=i===0?0:Math.ceil(Math.log10(Math.abs(i))),a=n===0?0:Math.ceil(Math.log10(Math.abs(n))),o=Math.max(2-Math.max(s,a),0);return t.toFixed(o)}function ux(t,e,i,n){if(i.text!=null)return i.text;const s=n??i.value;let a;return i?.formatter!=null&&(a=cx(e,i.formatter,{seriesId:t,datum:void 0,value:s})),a==null||qt(a)?a:String(a)}function N5({path:t,x:e,y:i,size:n}){t.moveTo(e,i-n/2),t.lineTo(e,i+n/2)}function T5(t,e){const i=Mu(t.datumUnion.nodes(),t.targetSelection.nodes());return t.pickNodeNearestDistantObject(e,i)}function L5(t,e){const i=[{data:t.contextNodeData?.nodeData,selection:t.datumUnion},{data:t.contextNodeData?.targetData,selection:t.targetSelection}].filter(l=>l.data&&l.data.length>0),n=Nt(0,e.otherIndex+e.otherIndexDelta,i.length-1);if(i.length===0)return;const{data:s,selection:a}=i[n];if(s==null||s.length===0)return;const o=Nt(0,e.datumIndex,s.length-1),r=s[o];for(const l of a)if(l.datum===r)return{bounds:l.node,clipFocusBox:!0,datum:r,datumIndex:o,otherIndex:n}}function O5(t,e){const i=t.data?.dataIdKey;return j.findNodeDatumInArray(e,t.contextNodeData?.nodeData,i)??j.findNodeDatumInArray(e,t.contextNodeData?.targetData,i)}var GA=class extends xt{getSegments(t,e){const{values:i,step:n,count:s}=this,a=Math.min(...t.domain),o=Math.max(...t.domain);let r;if(i!=null){const l=i.filter(c=>c>a&&cc-u);r=[a,...l,o]}else if(n!=null){const l=[];for(let c=a;cc>a&&cu/l*(o-a)+a)}return r!=null&&r.length>e&&(pt.warnOnce("the configured segmentation results in more than 1 item per pixel, ignoring. Supply a segmentation configuration that results in larger segments or omit this configuration"),r=void 0),r??(r=[a,o]),r}};M([b],GA.prototype,"values");M([b],GA.prototype,"step");M([b],GA.prototype,"count");var cv=class extends xt{constructor(){super(...arguments),this.enabled=!1,this.interval=new GA,this.spacing=0}};M([b],cv.prototype,"enabled");M([b],cv.prototype,"interval");M([b],cv.prototype,"spacing");var{makeSeriesTooltip:$dt,SeriesProperties:Xdt,Label:Zdt,AxisLabel:qdt,getColorStops:Qdt}=j,E5=class extends Zdt{};M([b],E5.prototype,"spacing");var ws=class extends xt{constructor(){super(...arguments),this.value=0,this.label=new E5}getStyle(t){const{fill:e=t.fill??"black",fillOpacity:i=t.fillOpacity??1,stroke:n=t.stroke??"black",strokeWidth:s=t.strokeWidth??0,strokeOpacity:a=t.strokeOpacity??1,lineDash:o=t.lineDash??[0],lineDashOffset:r=t.lineDashOffset??0}=this;return{fill:e,fillOpacity:i,stroke:n,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r}}};M([b],ws.prototype,"text");M([b],ws.prototype,"value");M([b],ws.prototype,"shape");M([b],ws.prototype,"placement");M([b],ws.prototype,"spacing");M([b],ws.prototype,"size");M([b],ws.prototype,"rotation");M([b],ws.prototype,"fill");M([b],ws.prototype,"fillOpacity");M([b],ws.prototype,"stroke");M([b],ws.prototype,"strokeWidth");M([b],ws.prototype,"strokeOpacity");M([b],ws.prototype,"lineDash");M([b],ws.prototype,"lineDashOffset");M([b],ws.prototype,"label");var No=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.thicknessRatio=1,this.fills=new ss(j.StopProperties),this.fillMode="continuous",this.fillOpacity=1,this.stroke="black",this.strokeWidth=0,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}getStyle(t,e,i){const{fill:n,fills:s,fillMode:a,fillOpacity:o,stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}=this;return{fill:n??P5(s,a,t,i,e),fillOpacity:o,stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}}};M([b],No.prototype,"enabled");M([b],No.prototype,"thickness");M([b],No.prototype,"thicknessRatio");M([b],No.prototype,"fills");M([b],No.prototype,"fillMode");M([b],No.prototype,"fill");M([b],No.prototype,"fillOpacity");M([b],No.prototype,"stroke");M([b],No.prototype,"strokeWidth");M([b],No.prototype,"strokeOpacity");M([b],No.prototype,"lineDash");M([b],No.prototype,"lineDashOffset");var hv=class extends xt{constructor(){super(...arguments),this.values=void 0,this.step=void 0,this.minSpacing=0,this.maxSpacing=1e3}};M([b],hv.prototype,"values");M([b],hv.prototype,"step");M([b],hv.prototype,"minSpacing");M([b],hv.prototype,"maxSpacing");var R5=class extends qdt{constructor(){super(...arguments),this.placement=void 0}};M([b],R5.prototype,"placement");var Ys=class extends xt{constructor(){super(...arguments),this.min=0,this.max=1,this.fills=new ss(j.StopProperties),this.fillMode="continuous",this.fillOpacity=1,this.stroke="black",this.strokeWidth=0,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.defaultFill="black",this.interval=new hv,this.label=new R5}getStyle(t,e,i,n){const{fill:s,fills:a,defaultFill:o,fillMode:r,fillOpacity:l,stroke:c,strokeWidth:u,strokeOpacity:d,lineDash:g,lineDashOffset:f}=this;return{fill:s??(t&&a.length===0?o:void 0)??P5(a,r,e,n,i),fillOpacity:l,stroke:c,strokeWidth:u,strokeOpacity:d,lineDash:g,lineDashOffset:f}}};M([b],Ys.prototype,"min");M([b],Ys.prototype,"max");M([b],Ys.prototype,"fills");M([b],Ys.prototype,"fillMode");M([b],Ys.prototype,"fill");M([b],Ys.prototype,"fillOpacity");M([b],Ys.prototype,"stroke");M([b],Ys.prototype,"strokeWidth");M([b],Ys.prototype,"strokeOpacity");M([b],Ys.prototype,"lineDash");M([b],Ys.prototype,"lineDashOffset");M([b],Ys.prototype,"defaultFill");M([b],Ys.prototype,"interval");M([b],Ys.prototype,"label");var UA=class extends Om{constructor(){super(...arguments),this.placement="inside-center",this.avoidCollisions=!0}};M([b],UA.prototype,"text");M([b],UA.prototype,"placement");M([b],UA.prototype,"avoidCollisions");var ta=class extends Xdt{constructor(){super(...arguments),this.value=0,this.segmentation=new cv,this.defaultColorRange=[],this.targets=new ss(ws),this.defaultTarget=new ws,this.defaultScale=new Ys,this.direction="vertical",this.thickness=1,this.cornerRadius=0,this.cornerMode="container",this.margin=0,this.scale=new Ys,this.bar=new No,this.label=new UA,this.tooltip=$dt()}};M([b],ta.prototype,"value");M([b],ta.prototype,"segmentation");M([b],ta.prototype,"defaultColorRange");M([b],ta.prototype,"targets");M([b],ta.prototype,"defaultTarget");M([b],ta.prototype,"defaultScale");M([b],ta.prototype,"direction");M([b],ta.prototype,"thickness");M([b],ta.prototype,"cornerRadius");M([b],ta.prototype,"cornerMode");M([b],ta.prototype,"margin");M([b],ta.prototype,"scale");M([b],ta.prototype,"bar");M([b],ta.prototype,"label");M([b],ta.prototype,"tooltip");function P5(t,e,i,n,s){return{type:"gradient",gradient:"linear",colorSpace:"oklch",colorStops:Qdt(t,i,n.domain,e),rotation:s?90:0,bounds:"series"}}var{BBox:Jdt}=j;function qO(t){const{x0:e,y0:i,x1:n,y1:s,horizontalInset:a,verticalInset:o}=t,r=Math.min(e,n)+a,l=Math.min(i,s)+o,c=Math.max(Math.abs(n-e)-2*a,0),u=Math.max(Math.abs(s-i)-2*o,0);return{x:r,y:l,width:c,height:u}}function tpt(t,e){if(e==null)return!0;const i=qO(t),n=1e-6,s=i.x+n,a=i.y+n,o=i.x+i.width-n,r=i.y+i.height-n,l=e.x,c=e.x+e.width,u=e.y,d=e.y+e.height;return Math.max(s,l)<=Math.min(o,c)&&Math.max(a,u)<=Math.min(r,d)}function l1(t){const{clipX0:e,clipX1:i,clipY0:n,clipY1:s}=t;return e!=null&&i!=null||n!=null&&s!=null}function ept(t){if(!l1(t))return;const{x0:e,y0:i,x1:n,y1:s}=t,{x:a,y:o,width:r,height:l}=qO(t);let{clipX0:c,clipX1:u,clipY0:d,clipY1:g}=t;(c==null||u==null)&&(c=e,u=n),(d==null||g==null)&&(d=i,g=s);const f=Math.min(c,u),y=Math.min(d,g),x=Math.abs(u-c),S=Math.abs(g-d);return c=Math.max(a,f),d=Math.max(o,y),u=Math.min(a+r,f+x),g=Math.min(o+l,y+S),new Jdt(Math.min(c,u),Math.min(d,g),Math.abs(u-c),Math.abs(g-d))}function FF(t,e){const i=t?"initial":"update";return{node:{fromFn(s,a){const o=s.previousDatum;let{x0:r,y0:l,x1:c,y1:u,clipX0:d,clipY0:g,clipX1:f,clipY1:y}=o??a;const{horizontalInset:x,verticalInset:S}=a,D=o!=null&&l1(o),A=l1(a);return D&&A||(!D&&A?({x0:r,y0:l,x1:c,y1:u,clipX0:d,clipY0:g,clipX1:f,clipY1:y}=a,t&&(e?f=a.clipX0:y=a.clipY0)):D&&!A?({x0:r,y0:l,x1:c,y1:u}=a,d=void 0,g=void 0,f=void 0,y=void 0):t&&(e?c=r:u=l)),{x0:r,y0:l,x1:c,y1:u,clipX0:d,clipY0:g,clipX1:f,clipY1:y,horizontalInset:x,verticalInset:S,phase:i}},toFn(s,a){const{x0:o,y0:r,x1:l,y1:c,clipX0:u,clipY0:d,clipX1:g,clipY1:f,horizontalInset:y,verticalInset:x}=a;return{x0:o,y0:r,x1:l,y1:c,clipX0:u,clipY0:d,clipX1:g,clipY1:f,horizontalInset:y,verticalInset:x}},applyFn(s,a){s.setProperties(lb(s,a))}}}}function lb(t,e){const{x:i,y:n,width:s,height:a}=qO(e),o=ept(e),r=tpt(e,o);return{x:i,y:n,width:s,height:a,clipBBox:o,visible:r}}var ipt={Before:"right",Center:"center",After:"left"},npt={Before:"top",Center:"middle",After:"bottom"},spt={Before:-1,Center:-.5,After:0},apt={Before:0,Center:-.5,After:-1};function opt(t,e,i,n,s,a){const{seriesRect:o,gaugeRect:r,barRect:l}=s,{padding:c,horizontal:u}=n;i.each((d,g)=>{const f=ux(t.id,e,g,a?.label);let y,x;g.placement==="outside-start"?u?(y=r.x,x=o.height):(y=o.width,x=o.height-(r.y+r.height)):g.placement==="outside-end"?u?(y=o.width-(r.x+r.width),x=o.height):(y=o.width,x=r.y):g.avoidCollisions&&(y=r.width,x=r.height);let S;if(f==null)return;if(y!=null&&x!=null){const U=()=>({width:y,height:x,meta:null});S=rx(ce(f),g,{padding:c},U)?.[0]}else{const U=Ve(g),{width:V,height:Z}=qt(f)?Va(f,g):U.measureLines(bi(f));S={text:f,fontSize:g.fontSize,lineHeight:g.lineHeight??U.lineHeight(),width:V,height:Z}}if(S==null){d.visible=!1;return}const D=u?r.x:r.y+r.height,A=u?r.x+r.width:r.y,I=u?l.x:l.y+l.height,w=u?l.x+l.width:l.y,N=g.spacing*(u?1:-1);let O,L,R,P;switch(g.placement){case"outside-start":O=-1/0,L=1/0,R=D-N,P="Before";break;case"outside-end":O=-1/0,L=1/0,R=A+N,P="After";break;case"inside-start":O=D,L=w,R=D+N,P="After";break;case"inside-end":O=w,L=A,R=A-N,P="Before";break;case"inside-center":O=D,L=A,R=(D+A)/2,P="Center";break;case"bar-inside":O=I,L=w,R=(I+w)/2,P="Center";break;case"bar-inside-end":O=I,L=w,R=w-N,P="Before";break;case"bar-outside-end":O=w,L=A,R=w+N,P="After";break;case"bar-end":O=-1/0,L=1/0,R=w,P="Center";break}const B=u?R:r.x+r.width/2,F=u?r.y+r.height/2:R;let H,$;u?(H=B+spt[P]*S.width,$=H+S.width):(H=F+apt[P]*S.height,$=H+S.height);const Y=Math.min(H,$)>=Math.min(O,L)&&Math.max(H,$)<=Math.max(O,L);if(g.avoidCollisions&&!Y){d.visible=!1;return}d.visible=!0,d.text=S.text,d.fontSize=S.fontSize,d.lineHeight=S.lineHeight,d.textAlign=u?ipt[P]:"center",d.textBaseline=u?"middle":npt[P],d.x=B,d.y=F})}var{fromToMotion:Ow,resetMotion:rpt,SeriesNodePickMode:HF,createDatumId:jF,BBox:el,Group:Rd,PointerEvents:GF,Selection:Pd,Rect:lpt,Text:UF,TransformableText:cpt,Marker:hpt,LinearScale:upt,generateTicks:dpt,NiceMode:WF}=j,ppt={before:180,middle:0,after:0},gpt={before:90,middle:0,after:-90},z5=class extends j.Series{constructor(t){super({moduleCtx:t,pickModes:[HF.EXACT_SHAPE_MATCH,HF.NEAREST_NODE]}),this.properties=new ta,this.seriesRect=el.NaN,this.gaugeRect=el.NaN,this.scale=new upt,this.originX=0,this.originY=0,this.scaleGroup=this.contentGroup.appendChild(new Rd({name:"scaleGroup"})),this.itemGroup=this.contentGroup.appendChild(new Rd({name:"itemGroup"})),this.itemTargetGroup=this.contentGroup.appendChild(new Rd({name:"itemTargetGroup"})),this.itemTargetLabelGroup=this.contentGroup.appendChild(new Rd({name:"itemTargetLabelGroup"})),this.itemLabelGroup=this.contentGroup.appendChild(new Rd({name:"itemLabelGroup"})),this.highlightTargetGroup=this.highlightGroup.appendChild(new Rd({name:"itemTargetLabelGroup"})),this.tickGroup=this.contentGroup.appendChild(new Rd({name:"tickGroup"})),this.scaleSelection=Pd.select(this.scaleGroup,()=>this.nodeFactory()),this.datumSelection=Pd.select(this.itemGroup,()=>this.nodeFactory()),this.targetSelection=Pd.select(this.itemTargetGroup,()=>this.markerFactory()),this.targetLabelSelection=Pd.select(this.itemTargetLabelGroup,UF),this.labelSelection=Pd.select(this.itemLabelGroup,UF),this.highlightTargetSelection=Pd.select(this.highlightTargetGroup,()=>this.markerFactory()),this.tickSelection=Pd.select(this.tickGroup,cpt),this.datumUnion=new k5,this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:()=>this.animateEmptyUpdateReady()},reset:"empty",skip:"ready"},ready:{updateData:"waiting",clear:"clearing",resize:()=>this.animateReadyResize(),reset:"empty",skip:"ready"},waiting:{update:{target:"ready",action:()=>this.animateWaitingUpdateReady()},reset:"empty",skip:"ready"},clearing:{update:{target:"empty"},reset:"empty",skip:"ready"}}),this.scaleGroup.pointerEvents=GF.None,this.tickGroup.pointerEvents=GF.None}get range(){return this.horizontal?[0,this.gaugeRect.width]:[0,this.gaugeRect.height]}get horizontal(){return this.properties.direction==="horizontal"}get hasData(){return!0}nodeFactory(){const t=new lpt;return t.crisp=!0,t}markerFactory(){return new hpt}processData(){this.nodeDataRefresh=!0,this.animationState.transition("updateData")}formatLabel(t){return w5(t,this.properties.scale)}getShapeFillBBox(){const{properties:t,originX:e,originY:i,horizontal:n,scale:s}=this,{thickness:a}=t,o=Tc(s.range),r=new el(e,i,n?o:a,n?a:o);return{axis:r,series:r}}getTargets(){const{properties:t}=this,e=t.defaultTarget;return Array.from(t.targets).map(i=>{const{text:n=e.text,value:s=e.value??0,shape:a=e.shape??"triangle",rotation:o=e.rotation??0,placement:r=e.placement??"middle",spacing:l=e.spacing??0,size:c=e.size??0}=i,{enabled:u=e.label.enabled,color:d=e.label.color??"black",fontStyle:g=e.label.fontStyle??"normal",fontWeight:f=e.label.fontWeight??"normal",fontSize:y=e.label.fontSize,fontFamily:x=e.label.fontFamily,spacing:S=e.label.spacing??0}=i.label;return{text:n,value:s,shape:a,placement:r,spacing:l,size:c,rotation:o,label:{enabled:u,color:d,fontStyle:g,fontWeight:f,fontSize:y,fontFamily:x,spacing:S},style:i.getStyle(e)}})}getTargetPoint(t){const{properties:e,originX:i,originY:n,horizontal:s,scale:a,gaugeRect:o}=this,{thickness:r}=e,{value:l,placement:c,spacing:u,size:d}=t,g=a.convert(l);let f;switch(c){case"before":f=-(u+d/2);break;case"after":f=r+u+d/2;break;default:f=r/2;break}return{x:i+o.x+(s?g:f),y:n+o.y+(s?f:g)}}getTargetLabel(t){const{size:e,placement:i,label:n}=t,{spacing:s,color:a,fontStyle:o,fontWeight:r,fontSize:l,fontFamily:c}=n,u=void 0,d=e/2+s;let g,f,y=0,x=0;return this.horizontal?(g="center",i==="after"?(f="top",x=d):(f="bottom",x=-d)):(f="middle",i==="before"?(g="right",y=-d):(g="left",y=d)),{offsetX:y,offsetY:x,fill:a,textAlign:g,textBaseline:f,fontStyle:o,fontWeight:r,fontSize:l,fontFamily:c,lineHeight:u}}labelDatum(t,e){const{placement:i,avoidCollisions:n,spacing:s,text:a,color:o,fontSize:r,minimumFontSize:l,fontStyle:c,fontWeight:u,fontFamily:d,lineHeight:g,wrapping:f,overflowStrategy:y,formatter:x=S=>this.formatLabel(S.value)}=t;return{series:this,datum:void 0,datumIndex:{type:0},placement:i,avoidCollisions:n,spacing:s,text:a,value:e,fill:o,fontSize:r,minimumFontSize:l,fontStyle:c,fontWeight:u,fontFamily:d,lineHeight:g,wrapping:f,overflowStrategy:y,formatter:x}}verticalLabelInset(){const{label:t}=this.properties,e=Ve(t),i=t.text?.split(` +`),n=(t.lineHeight??e.lineHeight())*(i?.length??1);return t.spacing+n}horizontalLabelInset(){const{scale:t,properties:e}=this,{scale:i,label:n}=e,s=n.text?.split(` +`),a=Ve(n),o=i.interval.values??t.ticks({nice:[!1,!1],interval:i.interval.step,minTickCount:0,maxTickCount:6,tickCount:5})?.ticks??[],l=(s??o?.map(c=>ux(this.id,this.ctx,this.labelDatum(n,c))??"")).reduce((c,u)=>{const{width:d}=qt(u)?Va(u,n):a.measureLines(bi(u));return Math.max(c,d)},0);return n.spacing+l}tickFormatter(t,e){const{format:i,formatter:n}=this.properties.scale.label;let s;return i!=null&&(s=vT(e,typeof i=="string"?i:void 0)),(a,o)=>{let r;return n&&(r??(r=cx(this.ctx,n,{value:a,index:o,domain:t,boundSeries:void 0}))),r??(r=s?.(a)),r??this.formatLabel(a)}}createNodeData(){const{id:t,properties:e,horizontal:i,scale:n,seriesRect:s}=this,{value:a,segmentation:o,thickness:r,cornerRadius:l,cornerMode:c,bar:u,scale:d,label:g,defaultColorRange:f,defaultScale:y}=e;n.domain=[d.min,d.max],n.range=i?[0,s.width]:[s.height,0];let x,S;i?(S=1,x=Math.PI/-2):d.label.placement==="before"?(S=1,x=0):(S=-1,x=0);let D,A,I,w;i?(D=0,A=s.width,I=(s.height-r)/2,w=I+r,g.placement==="outside-start"?D+=this.horizontalLabelInset():g.placement==="outside-end"&&(A-=this.horizontalLabelInset())):(D=(s.width-r)/2,A=D+r,w=0,I=s.height,g.placement==="outside-start"?I-=this.verticalLabelInset():g.placement==="outside-end"&&(w+=this.verticalLabelInset())),this.gaugeRect=new el(Math.min(D,A),Math.min(I,w),Math.abs(A-D),Math.abs(w-I));const N=0,O=0;n.domain=[d.min,d.max],n.range=i?[D,A]:[I,w];const L=Et({parallel:i},d.label,y.label),{tickData:{ticks:R}}=dpt({scale:n,label:L,interval:d.interval,tickFormatter:(Qt,zt)=>this.tickFormatter(Qt,zt),domain:n.domain,range:this.range,reverse:!1,primaryTickCount:void 0,defaultTickMinSpacing:0,visibleRange:[0,1],niceMode:[WF.Off,WF.Off],labelOffset:0,axisRotation:x,sideFlag:S}),P=this.getTargets(),B=[],F=[],H=[],$=[],[Y,U]=n.range,V=Math.abs(U-Y),Z=i?n.convert(a):A,W=i?w:n.convert(a),q=o.enabled?o.spacing/2:0,nt=i?q:0,G=i?0:q,et=Math.min(u.thickness??Math.round(u.thicknessRatio*r),r),st=-(r-et)/2,lt=i?0:st,mt=i?st:0,Dt=c==="item",kt=Math.ceil(V);let Vt=o.enabled?o.interval.getSegments(n,kt):void 0;const Kt=u.getStyle(f,i,n),ae=d.getStyle(u.enabled,f,i,n);if(Vt==null&&Dt){const Qt=Math.min(...n.domain),zt=Math.max(...n.domain),Pt={value:a,segmentStart:Qt,segmentEnd:zt};if(u.enabled){const Di=Math.min(l,et/2,V/2)*1,zn=i?Di:0,Kn=i?0:Di;B.push({series:this,itemId:"value",datum:Pt,datumIndex:{type:0},type:0,x0:N+D-zn-lt,y0:O+I-Kn-mt,x1:N+Z+zn+lt,y1:O+W+Kn+mt,clipX0:void 0,clipY0:void 0,clipX1:void 0,clipY1:void 0,topLeftCornerRadius:l,topRightCornerRadius:l,bottomRightCornerRadius:l,bottomLeftCornerRadius:l,horizontalInset:nt,verticalInset:G,style:Kt})}const oe=Math.min(l,r/2,V/2)*1,ke=i?oe:0,Ye=i?0:oe;$.push({series:this,itemId:"scale",datum:Pt,datumIndex:{type:0},type:0,x0:N+D-ke,y0:O+I-Ye,x1:N+A+ke,y1:O+w+Ye,clipX0:void 0,clipY0:void 0,clipX1:void 0,clipY1:void 0,topLeftCornerRadius:l,topRightCornerRadius:l,bottomRightCornerRadius:l,bottomLeftCornerRadius:l,horizontalInset:nt,verticalInset:G,style:ae})}else{Vt??(Vt=n.domain);const Qt=N+D-lt,zt=O+I-mt,Pt=N+Z+lt,ue=O+W+mt;for(let oe=0;oejF(t.nodeData.length,e.itemId))}updateDatumNodes(t){const{datumSelection:e}=t,{ctx:i}=this,n=i.animationManager.isSkipped(),s=this.getShapeFillBBox();e.each((o,r)=>{const{topLeftCornerRadius:l,topRightCornerRadius:c,bottomRightCornerRadius:u,bottomLeftCornerRadius:d}=r;o.setStyleProperties(r.style,s),o.topLeftCornerRadius=l,o.topRightCornerRadius=c,o.bottomRightCornerRadius=u,o.bottomLeftCornerRadius=d,o.pointerEvents=this.properties.bar.enabled?j.PointerEvents.All:j.PointerEvents.None,(n||o.previousDatum==null)&&o.setProperties(lb(o,r))});const{horizontal:a}=this;this.datumUnion.update(e,this.itemGroup,j.Rect,(o,r,l)=>{const c=Math.min(r.x,l.x),u=Math.max(r.x+r.width,l.x+l.width),d=Math.min(r.y,l.y),g=Math.max(r.y+r.height,l.y+l.height),f=u-c,y=g-d;o.pointerEvents=j.PointerEvents.None,o.x=c,o.y=d,o.width=f,o.height=y,o.topLeftCornerRadius=a?r.topLeftCornerRadius:l.topLeftCornerRadius,o.topRightCornerRadius=l.topRightCornerRadius,o.bottomRightCornerRadius=a?l.bottomRightCornerRadius:r.bottomRightCornerRadius,o.bottomLeftCornerRadius=r.bottomLeftCornerRadius;const x=r.clipBBox,S=l.clipBBox??x;x&&S?o.clipBBox=el.merge([x,S]).intersection(a?new el(c,-1/0,f,1/0):new el(-1/0,d,1/0,y)):o.clipBBox=void 0})}updateScaleSelection(t){return t.scaleSelection.update(t.scaleData,void 0,e=>jF(t.scaleData.length,e.itemId))}updateScaleNodes(t){const{scaleSelection:e}=t,i=this.getShapeFillBBox();e.each((n,s)=>{const{topLeftCornerRadius:a,topRightCornerRadius:o,bottomRightCornerRadius:r,bottomLeftCornerRadius:l}=s;n.setStyleProperties(s.style,i),n.setProperties(lb(n,s)),n.topLeftCornerRadius=a,n.topRightCornerRadius=o,n.bottomRightCornerRadius=r,n.bottomLeftCornerRadius=l,n.setProperties(lb(n,s))})}updateTargetSelection(t){return t.targetSelection.update(t.targetData,void 0,e=>e.itemId)}updateTargetNodes(t){const{targetSelection:e,isHighlight:i}=t;e.each((n,s)=>{const{x:a,y:o,shape:r,size:l,rotation:c}=s,u=this.getTargetStyle(i,s);n.setStyleProperties(u),n.size=l,n.shape=r==="line"?N5:r,n.translationX=a,n.translationY=o,n.rotation=c})}getTargetStyle(t,{datumIndex:e,style:i}){const n=this.getHighlightStyle(t,e);return Et(n,{...i,opacity:1})}updateTargetLabelSelection(t){return t.targetLabelSelection.update(t.targetData)}updateTargetLabelNodes(t){const{targetLabelSelection:e}=t;e.each((i,n)=>{const{x:s,y:a,text:o}=n,{offsetX:r,offsetY:l,fill:c,fontStyle:u,fontWeight:d,fontSize:g,fontFamily:f,textAlign:y,textBaseline:x}=n.label;i.visible=!0,i.x=s+r,i.y=a+l,i.text=o,i.fill=c,i.fontStyle=u,i.fontWeight=d,i.fontSize=g,i.fontFamily=f,i.textAlign=y,i.textBaseline=x})}updateTickSelection(t){return t.tickSelection.update(t.tickData,void 0,e=>e.tickId)}updateTickNodes(t){const{gaugeRect:e,properties:i}=this,n=i.defaultScale,{enabled:s,color:a=n.label.color,fontFamily:o=n.label.fontFamily,fontSize:r=n.label.fontSize,fontStyle:l,fontWeight:c=n.label.fontWeight,spacing:u}=i.scale.label;let{placement:d}=i.scale.label;const g=Ze(i.scale.label.rotation??0);let f,y,x,S;this.horizontal?(d??(d="after"),f="center",y=d==="before"?"bottom":"top",S=this.originY+e.y+(d==="before"?-u:e.height+u)):(d??(d="before"),f=d==="before"?"end":"start",y="middle",x=this.originX+e.x+(d==="before"?-u:e.width+u)),t.tickSelection.each((D,A)=>{if(!s){D.visible=!1;return}const I=x??A.translation,w=S??A.translation;D.visible=!0,D.text=A.tickLabel,D.fill=a,D.fontFamily=o,D.fontSize=r,D.fontStyle=l,D.fontWeight=c,D.textBaseline=y,D.textAlign=f,D.x=I,D.y=w,D.rotationCenterX=I,D.rotationCenterY=w,D.rotation=g})}updateLabelSelection(t){return t.labelSelection.update(t.labelData,void 0,e=>"primary")}updateLabelNodes(t){const{labelSelection:e}=t,i=this.ctx.animationManager.isSkipped();e.each((n,s)=>{n.fill=s.fill,n.fontStyle=s.fontStyle,n.fontWeight=s.fontWeight,n.fontFamily=s.fontFamily}),(i||this.labelsHaveExplicitText())&&this.formatLabelText()}labelsHaveExplicitText(){for(const{datum:t}of this.labelSelection)if(t.text==null)return!1;return!0}formatLabelText(t){const{labelSelection:e,horizontal:i,scale:n,seriesRect:s,gaugeRect:a}=this,{x:o,y:r,width:l,height:c}=a,u=t?.label??this.properties.value;let d;if(i){const y=n.convert(u);d=new el(o,r,y-o,c)}else{const y=n.convert(u);d=new el(o,y,l,c-y)}const g={seriesRect:s,gaugeRect:a,barRect:d},{margin:f}=this.properties;opt(this,this.ctx,e,{padding:f,horizontal:i},g,t)}resetAllAnimation(){this.ctx.animationManager.stopByAnimationGroupId(this.id),rpt([this.datumSelection],lb),this.formatLabelText()}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"&&this.animationState.transition("skip")}animateLabelText(t={}){const{animationManager:e}=this.ctx;let i=0,n=0;if(this.labelSelection.each((s,a)=>{s.opacity=1,i=s.previousDatum?.value??t.from??a.value,n=a.value}),!this.labelsHaveExplicitText())if(i===n)this.formatLabelText({label:n});else{const s=`${this.id}_labels`;e.animate({id:s,groupId:"label",from:{label:i},to:{label:n},phase:t.phase??"update",ease:Lc,onUpdate:a=>this.formatLabelText(a),onStop:()=>this.formatLabelText({label:n})})}}animateEmptyUpdateReady(){const{animationManager:t}=this.ctx,{node:e}=FF(!0,this.horizontal);Ow(this.id,"node",t,[this.datumSelection],e,(i,n)=>n.itemId),Ow(this.id,"label",t,[this.labelSelection],C5,()=>"primary"),this.animateLabelText({from:0,phase:"initial"})}animateWaitingUpdateReady(){const{animationManager:t}=this.ctx,{node:e}=FF(!1,this.horizontal);Ow(this.id,"node",t,[this.datumSelection],e,(i,n)=>n.itemId),this.animateLabelText()}animateReadyResize(){this.resetAllAnimation()}getSeriesDomain(){return{domain:[0,1]}}dataCount(){return Number.NaN}getSeriesRange(){return[Number.NaN,Number.NaN]}getLegendData(){return[]}getTooltipContent(t){const{id:e,properties:i}=this,{tooltip:n}=i;if(t==null)return;let s,a,o;if(t.type===0?(s=i.value,a=i.label.text,o=this.ctx.localeManager.t("ariaLabelGaugeValue")):({value:s,text:a}=i.targets[t.index],o=this.ctx.localeManager.t("ariaLabelGaugeTarget")),s!=null)return this.formatTooltipWithContext(n,{data:[{label:a,fallbackLabel:o,value:this.formatLabel(s)}]},{seriesId:e,title:void 0,datum:void 0,value:s})}pickNodeClosestDatum(t){return T5(this,t)}pickFocus(t){return L5(this,t)}getCaptionText(){return this.formatLabel(this.properties.value)}getCategoryValue(t){}datumIndexForCategoryValue(t){}hasItemStylers(){return this.properties.label.itemStyler!=null}};z5.className="LinearGaugeSeries";z5.type="linear-gauge";({...Oe,minimumFontSize:zc.SMALL});var{Chart:fpt,MercatorScale:KF}=j;function mpt(t){return t.type==="map-shape"||t.type==="map-line"||t.type==="map-marker"||t.type==="map-shape-background"||t.type==="map-line-background"}var QO=class extends fpt{constructor(t,e){super(t,e),this.xAxis={id:Nn(j.Axis),direction:z.X},this.yAxis={id:Nn(j.Axis),direction:z.Y},this.ctx.zoomManager.setAxes([this.xAxis,this.yAxis]),this.ctx.zoomManager.panToBBoxScalingMode=j.PanToBBoxScalingModeEnum.WhenViewportTooSmallScaleXYProportionally}getChartType(){return"topology"}updateData(){super.updateData();const t=this.getOptions();this.topology!==t.topology&&(this.topology=t.topology);const{topology:e}=this;for(const i of this.series)mpt(i)&&i.setChartTopology(e)}performLayout(t){const{seriesRoot:e,annotationRoot:i}=this,n=t.layoutBox.clone().shrink(this.seriesArea.getPadding());this.seriesRect=n,this.animationRect=n;const s=this.series,a=s.reduce((l,c)=>{if(!c.visible)return l;const u=c.topologyBounds;return u==null?l:l==null?u:l.merge(u)},void 0);let o;if(a!=null){const{lon0:l,lat0:c,lon1:u,lat1:d}=a,g=[[l,c],[u,d]],f=KF.bounds(g),{width:y,height:x}=n,S=Math.min(y/f.width,x/f.height),D=f.width*S,A=f.height*S,I=(y-D)/2,w=(x-A)/2,N=I,O=w,L=I+D,R=w+A,P=this.ctx.zoomManager.getAxisZoom(this.xAxis.id),B=this.ctx.zoomManager.getAxisZoom(this.yAxis.id),F=(L-N)/(P.max-P.min),H=N-F*P.min,$=(R-O)/(1-B.min-(1-B.max)),Y=O-$*(1-B.max);o=new KF(g,[[H,Y],[H+F,Y+$]])}for(const l of s)l.scale=o;const r=this.series.some(l=>l.visible);e.visible=r;for(const l of[e,i])l.translationX=Math.floor(n.x),l.translationY=Math.floor(n.y),l.setClipRect(n.clone());this.ctx.layoutManager.emitLayoutComplete(t,{series:{visible:r,rect:n,paddedRect:t.layoutBox},layoutBox:t.layoutBox})}hasPgUpPgDownSupport(){return!1}};QO.className="TopologyChart";QO.type="topology";M([b],QO.prototype,"topology");var{topologyChartOptionsDefs:Abt}=j;function Sl(t){const e=le(t);return Ic(e,i=>{typeof i=="object"&&"$palette"in i&&(i.$mapPalette=i.$palette,delete i.$palette)}),e}var ypt=1e-9;function B5(t,e,i,n){const[s,a]=t,[o,r]=e,l=o-s,c=r-a,u=l*l+c*c;let d,g;if(Math.abs(u)e){const u=(e-s)/l,d=[i+(o-i)*u,n+(r-n)*u],g=Math.atan2(r-n,o-i);return{point:d,angle:g}}s=c,i=o,n=r}}var Tb=class V5{constructor(e,i,n,s){this.lon0=e,this.lat0=i,this.lon1=n,this.lat1=s}extend(e,i,n,s){return this.lon0=Math.min(this.lon0,e),this.lat0=Math.min(this.lat0,i),this.lon1=Math.max(this.lon1,n),this.lat1=Math.max(this.lat1,s),this}merge(e){return this.extend(e.lon0,e.lat0,e.lon1,e.lat1)}static extend(e,i,n,s,a){return e?e.extend(i,n,s,a):new V5(i,n,s,a)}};function ef(t,e){for(const i of t){const[n,s]=i;e=Tb.extend(e,n,s,n,s)}return e}function bpt(t){if(t.length===0)return;let e=0,i=0,n=0,[s,a]=t.at(-1);for(const[o,r]of t){const l=s*r-o*a;n+=l,e+=(s+o)*l,i+=(a+r)*l,s=o,a=r}return n*=3,[e/n,i/n]}function WM(t,e,i){let n=!1,s=1/0;for(const a of t){let o=a.at(-1),[r,l]=o;for(const c of a){const[u,d]=c;d>i!=l>i&&e<(r-u)*(i-d)/(l-d)+u&&(n=!n),s=Math.min(s,B5(o,c,e,i)),o=c,r=u,l=d}}return(n?-1:1)*Math.sqrt(s)}var{Path:xpt,ExtendedPath2D:vpt,BBox:Spt}=j,Rm=class extends xpt{constructor(){super(...arguments),this.projectedGeometry=void 0,this.renderMode=3,this.strokePath=new vpt}computeBBox(){return(this.dirtyPath||this.isDirtyPath())&&(this.updatePath(),this.dirtyPath=!1),this.bbox?.clone()}updatePath(){const{projectedGeometry:t}=this;this.strokePath.clear(),this.path.clear(),this.bbox=t==null?void 0:this.drawGeometry(t,void 0)}drawPath(t){super.drawPath(t),this.renderStroke(t,this.strokePath.getPath2D())}containsPoint(t,e){const{projectedGeometry:i}=this;return i==null||!this.getBBox().containsPoint(t,e)?!1:this.geometryDistance(i,t,e)<=0}distanceSquared(t,e){const{projectedGeometry:i}=this;if(i==null)return 1/0;const n=this.geometryDistance(i,t,e);return n>0?n*n:0}geometryDistance(t,e,i){const{renderMode:n,strokeWidth:s}=this,a=(n&1)!==0,o=(n&2)!==0,r=Math.max(s/2,1)+1;switch(t.type){case"GeometryCollection":return t.geometries.reduce((l,c)=>Math.min(l,this.geometryDistance(c,e,i)),1/0);case"MultiPolygon":return a?t.coordinates.reduce((l,c)=>Math.min(l,Math.max(WM(c,e,i),0)),1/0):1/0;case"Polygon":return a?Math.max(WM(t.coordinates,e,i),0):1/0;case"MultiLineString":return o?t.coordinates.reduce((l,c)=>Math.min(l,Math.max(YF(c,e,i)-r,0)),1/0):1/0;case"LineString":return o?Math.max(YF(t.coordinates,e,i)-r,0):1/0;default:return 1/0}}shouldDrawPolygons(){return(this.renderMode&1)!==0}shouldDrawLines(){return(this.renderMode&2)!==0}drawGeometryCollection(t,e){for(const i of t)e=this.drawGeometry(i,e);return e}drawMultiPolygon(t,e){if(!this.shouldDrawPolygons())return e;for(const i of t)e=this.drawPolygon(this.path,i,e);return e}drawSinglePolygon(t,e){return this.shouldDrawPolygons()?this.drawPolygon(this.path,t,e):e}drawMultiLineString(t,e){if(!this.shouldDrawLines())return e;for(const i of t)e=this.drawLineString(this.strokePath,i,e,!1);return e}drawSingleLineString(t,e){return this.shouldDrawLines()?this.drawLineString(this.strokePath,t,e,!1):e}drawGeometry(t,e){switch(t.type){case"GeometryCollection":return this.drawGeometryCollection(t.geometries,e);case"MultiPolygon":return this.drawMultiPolygon(t.coordinates,e);case"Polygon":return this.drawSinglePolygon(t.coordinates,e);case"MultiLineString":return this.drawMultiLineString(t.coordinates,e);case"LineString":return this.drawSingleLineString(t.coordinates,e);case"Point":case"MultiPoint":return e}}drawPolygon(t,e,i){if(e.length<1)return i;i=this.drawLineString(t,e[0],i,!0);for(let n=1;ni)&&(i=a,n=s)}return n}function Pm(t,e){if(t.bbox!=null){const[i,n,s,a]=t.bbox;return e=Tb.extend(e,i,n,s,a),e}switch(t.type){case"GeometryCollection":for(const i of t.geometries)e=Pm(i,e);break;case"MultiPolygon":for(const i of t.coordinates)i.length>0&&(e=ef(i[0],e));break;case"Polygon":t.coordinates.length>0&&(e=ef(t.coordinates[0],e));break;case"MultiLineString":for(const i of t.coordinates)e=ef(i,e);break;case"LineString":e=ef(t.coordinates,e);break;case"MultiPoint":for(const i of t.coordinates){const[n,s]=i;e=Tb.extend(e,n,s,n,s)}break;case"Point":{const[i,n]=t.coordinates;e=Tb.extend(e,i,n,i,n);break}}return e}function YM(t){switch(t.type){case"Polygon":return t.coordinates;case"MultiPolygon":return KM(t.coordinates,$F);case"GeometryCollection":{const e=t.geometries.map(YM).filter(i=>i!=null);return KM(e,$F)}case"MultiLineString":case"LineString":case"MultiPoint":case"Point":return}}function $M(t){switch(t.type){case"LineString":return t.coordinates;case"MultiLineString":return KM(t.coordinates,c1);case"GeometryCollection":{const e=t.geometries.map($M).filter(i=>i!=null);return KM(e,c1)}case"MultiPolygon":case"Polygon":case"MultiPoint":case"Point":return}}function JO(t,e){if(t==null)return!1;switch(t.type){case"GeometryCollection":return t.geometries.some(i=>JO(i,e));case"MultiPolygon":case"Polygon":return(e&1)!==0;case"MultiLineString":case"LineString":return(e&2)!==0;case"MultiPoint":case"Point":return(e&4)!==0}}function yp(t,e){switch(t.type){case"GeometryCollection":return{type:"GeometryCollection",geometries:t.geometries.map(i=>yp(i,e))};case"Polygon":return{type:"Polygon",coordinates:h1(t.coordinates,e)};case"MultiPolygon":return{type:"MultiPolygon",coordinates:Mpt(t.coordinates,e)};case"MultiLineString":return{type:"MultiLineString",coordinates:h1(t.coordinates,e)};case"LineString":return{type:"LineString",coordinates:u1(t.coordinates,e)};case"MultiPoint":return{type:"MultiPoint",coordinates:u1(t.coordinates,e)};case"Point":return{type:"Point",coordinates:e.convert(t.coordinates)}}}function Mpt(t,e){return t.map(i=>h1(i,e))}function h1(t,e){return t.map(i=>u1(i,e))}function u1(t,e){return t.map(i=>e.convert(i))}function Dpt(){return{fromFn:(i,n,s)=>s==="removed"?{scalingX:1,scalingY:1}:i.previousDatum==null?{scalingX:0,scalingY:0}:{scalingX:i.scalingX,scalingY:i.scalingY},toFn:(i,n,s)=>s==="removed"?{scalingX:0,scalingY:0}:{scalingX:1,scalingY:1}}}function _5(t,e){const i=t.contextNodeData?.nodeData[e.datumIndex];if(i!==void 0){for(const n of t.datumSelection.nodes())if(n.datum===i)return n}}(class extends j.SeriesProperties{});var uv=class extends j.DataModelSeries{constructor(t){super(t),this.cleanup.register(this.ctx.eventsHub.on("data:update",()=>{}),this.ctx.eventsHub.on("legend:item-click",e=>{this.onLegendItemClick(e)}),this.ctx.eventsHub.on("legend:item-double-click",e=>{this.onLegendItemDoubleClick(e)}))}getSeriesDomain(){return{domain:[Number.NaN,Number.NaN]}}getSeriesRange(){return[Number.NaN,Number.NaN]}getHighlightedDatum(){let t=this.ctx.highlightManager?.getActiveHighlight();const{legendItemName:e}=this.properties,i=e!=null&&t?.datum==null&&e===t?.legendItemName;return t!=null&&(t.series!==this&&!i||t.datum==null)&&(t=void 0),t}isSeriesHighlighted(t){if(!this.properties.highlight.enabled)return!1;const{series:e,legendItemName:i}=t??{},{legendItemName:n}=this.properties;return e===this||n!=null&&n===i}},{SeriesProperties:Apt,makeSeriesTooltip:Ipt,Label:kpt}=j,Fi=class extends Apt{constructor(){super(...arguments),this.topology=void 0,this.idKey="",this.topologyIdKey="name",this.idName=void 0,this.labelKey=void 0,this.labelName=void 0,this.colorRange=void 0,this.maxStrokeWidth=void 0,this.stroke="black",this.strokeOpacity=1,this.strokeWidth=0,this.lineDash=[0],this.lineDashOffset=0,this.label=new kpt,this.tooltip=Ipt()}getStyle(){const{stroke:t,strokeOpacity:e,strokeWidth:i,lineDash:n,lineDashOffset:s}=this;return{stroke:t,strokeOpacity:e,strokeWidth:i,lineDash:n,lineDashOffset:s,opacity:1}}};M([b],Fi.prototype,"topology");M([b],Fi.prototype,"title");M([b],Fi.prototype,"legendItemName");M([b],Fi.prototype,"idKey");M([b],Fi.prototype,"topologyIdKey");M([b],Fi.prototype,"idName");M([b],Fi.prototype,"labelKey");M([b],Fi.prototype,"labelName");M([b],Fi.prototype,"sizeKey");M([b],Fi.prototype,"sizeName");M([b],Fi.prototype,"colorKey");M([b],Fi.prototype,"colorName");M([b],Fi.prototype,"sizeDomain");M([b],Fi.prototype,"colorRange");M([b],Fi.prototype,"maxStrokeWidth");M([b],Fi.prototype,"stroke");M([b],Fi.prototype,"strokeOpacity");M([b],Fi.prototype,"strokeWidth");M([b],Fi.prototype,"lineDash");M([b],Fi.prototype,"lineDashOffset");M([b],Fi.prototype,"itemStyler");M([b],Fi.prototype,"label");M([b],Fi.prototype,"tooltip");var{getMissCount:Cpt,getLabelStyles:wpt,createDatumId:XF,SeriesNodePickMode:ZF,valueProperty:Wy,ColorScale:Npt,LinearScale:Tpt,Selection:AS,Text:qF,Transformable:Lpt}=j,F5=class extends uv{constructor(t){super({moduleCtx:t,categoryKey:void 0,propertyKeys:{size:["colorKey"],color:["colorKey"],label:["labelKey"]},propertyNames:{size:["sizeName"],color:["colorName"],label:["labelName"]},pickModes:[ZF.EXACT_SHAPE_MATCH,ZF.NEAREST_NODE],usesPlacedLabels:!0}),this.properties=new Fi,this._chartTopology=void 0,this.colorScale=new Npt,this.sizeScale=new Tpt,this.datumSelection=AS.select(this.contentGroup,()=>this.nodeFactory()),this.labelSelection=AS.select(this.labelGroup,qF),this.highlightDatumSelection=AS.select(this.highlightNodeGroup,()=>this.nodeFactory()),this.highlightLabelSelection=AS.select(this.highlightLabelGroup,qF),this.placedLabelData=[],this._previousDatumMidPoint=void 0}getNodeData(){return this.contextNodeData?.nodeData}get topology(){return this.properties.topology??this._chartTopology}get hasData(){return super.hasData&&this.topology!=null}renderToOffscreenCanvas(){return!0}setZIndex(t){return super.setZIndex(t),this.contentGroup.zIndex=[1,t],this.highlightGroup.zIndex=[4,t],!0}setChartTopology(t){this._chartTopology=t,this.topology===t&&(this.nodeDataRefresh=!0)}isLabelEnabled(){return this.properties.labelKey!=null&&this.properties.label.enabled}nodeFactory(){const t=new Rm;return t.renderMode=2,t.lineJoin="round",t.lineCap="round",t}async processData(t){if(this.data==null)return;const{data:e,topology:i,sizeScale:n,colorScale:s}=this,{topologyIdKey:a,idKey:o,sizeKey:r,colorKey:l,labelKey:c,sizeDomain:u,colorRange:d}=this.properties,g=new Map;for(const I of i?.features.values()??[]){const w=I.properties?.[a];w==null||!JO(I.geometry,2)||g.set(w,I)}const f=this.sizeScale.type,y=this.colorScale.type,x=this.scale?.type,{dataModel:S,processedData:D}=await this.requestDataModel(t,e,{props:[Wy(o,x,{id:"idValue",includeProperty:!1}),Wy(o,x,{id:"featureValue",includeProperty:!1,processor:()=>I=>g.get(I)}),...c==null?[]:[Wy(c,"category",{id:"labelValue"})],...r==null?[]:[Wy(r,f,{id:"sizeValue"})],...l==null?[]:[Wy(l,y,{id:"colorValue"})]]}),A=S.resolveColumnById(this,"featureValue",D);if(this.topologyBounds=A.reduce((I,w)=>{const N=w?.geometry;return N==null?I:Pm(N,I)},void 0),r!=null){const I=S.resolveProcessedDataIndexById(this,"sizeValue"),w=D.domain.values[I]??[];n.domain=u??w}if(d!=null&&this.isColorScaleValid()){const I=S.resolveProcessedDataIndexById(this,"colorValue");s.domain=D.domain.values[I],s.range=d,s.update()}i==null&&pt.warnOnce("no topology was provided for [MapLineSeries]; nothing will be rendered.")}isColorScaleValid(){const{colorKey:t}=this.properties;if(!t)return!1;const{dataModel:e,processedData:i}=this;if(!e||!i)return!1;const n=e.resolveProcessedDataIndexById(this,"colorValue"),s=i.input.count,a=Cpt(this,i.defs.values[n].missing);return!(s===0||s===a)}getLabelDatum(t,e,i,n,s,a){if(n==null||s==null||i==null)return;const o=$M(s);if(o==null)return;const{idKey:r,idName:l,sizeKey:c,sizeName:u,colorKey:d,colorName:g,labelKey:f,labelName:y,label:x}=this.properties;if(f==null||!x.enabled)return;const S=this.getLabelText(n,t,f,"label",[],x,{value:n,datum:t,idKey:r,idName:l,sizeKey:c,sizeName:u,colorKey:d,colorName:g,labelKey:f,labelName:y});if(S==null)return;const D=a.measureLines(String(S)),A=UM(o);if(A==null)return;const[I,w]=A.point,{width:N,height:O}=D;return{point:{x:I,y:w,size:0},label:{width:N,height:O,text:S},anchor:void 0,placement:void 0,datumIndex:e,idValue:i}}resolveColumn(t,e,i){if(!(t==null||this.dataModel==null))return this.dataModel.resolveColumnById(this,e,i)}resolveLineDataColumns(t){const{sizeKey:e,colorKey:i,labelKey:n}=this.properties;return{idValues:this.dataModel.resolveColumnById(this,"idValue",t),featureValues:this.dataModel.resolveColumnById(this,"featureValue",t),labelValues:this.resolveColumn(n,"labelValue",t),sizeValues:this.resolveColumn(e,"sizeValue",t),colorValues:this.resolveColumn(i,"colorValue",t)}}prepareProjectedLineGeometries(t,e,i){const n=new Map;for(const[s]of i.dataSources.get(this.id)?.data.entries()??[]){const a=t[s],o=e[s]?.geometry,r=o!=null&&this.scale!=null?yp(o,this.scale):void 0;a!=null&&r!=null&&n.set(a,r)}return n}warnMissingGeometries(t){if(t.length===0)return;const e=10;if(t.length>e){const i=t.length-e;t.length=e,t.push(`(+${i} more)`)}pt.warnOnce("some data items do not have matches in the provided topology",t)}createNodeData(){const{id:t,dataModel:e,processedData:i,sizeScale:n,properties:s}=this,{label:a,legendItemName:o,colorKey:r}=s;if(e==null||i==null)return;if(!this.visible)return{itemId:t,nodeData:[],labelData:[]};const l=this.resolveLineDataColumns(i),c=s.maxStrokeWidth??s.strokeWidth;n.range=[Math.min(s.strokeWidth,c),c];const u=Ve(a),d=this.prepareProjectedLineGeometries(l.idValues,l.featureValues,i),g=[],f=[],y=[],x=i.dataSources.get(this.id)?.data??[];for(const[S,D]of x.entries()){const A={idValue:l.idValues[S],colorValue:l.colorValues?.[S],sizeValue:l.sizeValues?.[S],labelValue:l.labelValues?.[S]},I=d.get(A.idValue);if(I==null&&y.push(A.idValue),r!=null&&A.colorValue==null)continue;const w=this.getLabelDatum(D,S,A.idValue,A.labelValue,I,u);w!=null&&f.push(w),g.push({series:this,datum:D,datumIndex:S,...A,projectedGeometry:I,legendItemName:o,style:this.getItemStyle({datumIndex:S,datum:D,colorValue:A.colorValue,sizeValue:A.sizeValue},!1)})}return this.warnMissingGeometries(y),{itemId:t,nodeData:g,labelData:f}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}update(){const{datumSelection:t,highlightDatumSelection:e}=this;this.updateSelections(),this.contentGroup.visible=this.visible,this.labelGroup.visible=this.visible;const i=this.ctx.chartService.highlight?.drawingMode??"overlay",n=this.getHighlightedDatum(),s=this.contextNodeData?.nodeData??[];this.datumSelection=this.updateDatumSelection({nodeData:s,datumSelection:t}),this.updateDatumStyles({datumSelection:t,isHighlight:!1}),this.updateDatumNodes({datumSelection:t,isHighlight:!1,drawingMode:"overlay"}),this.highlightDatumSelection=this.updateDatumSelection({nodeData:n==null?[]:[n],datumSelection:e}),this.updateDatumStyles({datumSelection:e,isHighlight:!0}),this.updateDatumNodes({datumSelection:e,isHighlight:!0,drawingMode:i}),this.updateLabelNodes({labelSelection:this.labelSelection,isHighlight:!1}),this.updateHighlightLabelSelection(n)}updateDatumSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>XF(e.idValue))}getItemStyle({datumIndex:t=0,datum:e,colorValue:i,sizeValue:n},s){const{properties:a,colorScale:o,sizeScale:r}=this,{colorRange:l,itemStyler:c}=a,u=a.getStyle();i!=null&&(u.stroke=this.isColorScaleValid()?o.convert(i):l?.[0]??a.stroke);const d=this.getHighlightStyle(s,t),g=Et(d,u);n!=null&&(g.strokeWidth=r.convert(n,{clamp:!0}));let f;return c!=null&&(f=this.cachedDatumCallback(XF(t,s?"highlight":"node"),()=>{const y=this.makeItemStylerParams(e,t,s,g);return this.callWithContext(c,y)})),f?Et(g,f):g}makeItemStylerParams(t,e,i,n){const{id:s}=this,a=this.ctx.highlightManager?.getActiveHighlight(),o=this.getHighlightStateString(a,i,e);return{seriesId:s,datum:t,highlightState:o,...n}}updateDatumStyles({datumSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getItemStyle(n,e)})}updateDatumNodes({datumSelection:t,drawingMode:e}){t.each((i,n)=>{const{projectedGeometry:s,style:a}=n;if(s==null){i.visible=!1,i.projectedGeometry=void 0;return}i.visible=!0,i.projectedGeometry=s,i.setProperties(a),i.drawingMode=e})}updatePlacedLabelData(t){this.placedLabelData=t,this.labelSelection=this.labelSelection.update(t,e=>{e.pointerEvents=j.PointerEvents.None}),this.updateLabelNodes({labelSelection:this.labelSelection,isHighlight:!1}),this.updateHighlightLabelSelection()}updateLabelNodes({isHighlight:t,labelSelection:e}){const{properties:i}=this,n=this.getHighlightedDatum();e.each((s,a)=>{const{x:o,y:r,width:l,height:c,text:u,datum:d}=a,g=wpt(this,void 0,i,i.label,t,n),{color:f,fontStyle:y,fontWeight:x,fontSize:S,fontFamily:D}=g;s.visible=!0,s.x=o+l/2,s.y=r+c/2,s.text=u,s.fill=f,s.fontStyle=y,s.fontWeight=x,s.fontSize=S,s.fontFamily=D,s.textAlign="center",s.textBaseline="middle";const A=d?.datumIndex;s.fillOpacity=this.getHighlightStyle(t,A).opacity??1,s.setBoxing(g)})}updateHighlightLabelSelection(t=this.getHighlightedDatum()){const e=t?.idValue,i=e==null||!this.isLabelEnabled()?[]:this.placedLabelData.filter(n=>n.datum.idValue===e);this.highlightLabelSelection=this.highlightLabelSelection.update(i),i.length===0&&this.highlightLabelSelection.cleanup(),this.updateLabelNodes({labelSelection:this.highlightLabelSelection,isHighlight:!0})}resetAnimation(){}getLabelData(){return this.isLabelEnabled()?this.contextNodeData?.labelData??[]:[]}pickNodeClosestDatum({x:t,y:e}){let i=1/0,n;return this.datumSelection.each((s,a)=>{const o=s.distanceSquared(t,e);othis.nodeFactory()),this.itemGroup.pointerEvents=QF.None}getNodeData(){return this.contextNodeData?.nodeData}get topology(){return this.properties.topology??this._chartTopology}get focusable(){return!1}setOptionsData(){}setChartData(){}get hasData(){return!1}renderToOffscreenCanvas(){return!0}setChartTopology(t){this._chartTopology=t,this.topology===t&&(this.nodeDataRefresh=!0)}setZIndex(t){return super.setZIndex(t),this.contentGroup.zIndex=[0,t,0],this.highlightGroup.zIndex=[0,t,1],!0}nodeFactory(){const t=new Rm;return t.renderMode=2,t.lineJoin="round",t.lineCap="round",t.pointerEvents=QF.None,t}processData(){const{topology:t}=this;this.topologyBounds=t?.features.reduce((e,i)=>{const n=i.geometry;return n==null?e:Pm(n,e)},void 0),t==null&&pt.warnOnce("no topology was provided for [MapShapeBackgroundSeries]; nothing will be rendered.")}createNodeData(){const{id:t,topology:e,scale:i,properties:n}=this;if(e==null)return;const{stroke:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,strokeWidth:l}=n,c=[],u=[];for(const[d,g]of e.features.entries()){const{geometry:f}=g,y=f!=null&&i!=null?yp(f,i):void 0;y!=null&&c.push({series:this,datum:g,datumIndex:0,index:d,projectedGeometry:y,style:{stroke:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,strokeWidth:l}})}return{itemId:t,nodeData:c,labelData:u}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}update(){const{datumSelection:t}=this;this.updateSelections(),this.contentGroup.visible=this.visible,this.labelGroup.visible=this.visible;const{nodeData:e=[]}=this.contextNodeData??{};this.datumSelection=this.updateDatumSelection({nodeData:e,datumSelection:t}),this.updateDatumNodes({datumSelection:t})}updateDatumSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>zpt(e.index))}updateDatumNodes(t){const{datumSelection:e}=t;e.each((i,n)=>{const{projectedGeometry:s}=n;if(s==null){i.visible=!1,i.projectedGeometry=void 0;return}i.visible=!0,i.projectedGeometry=s,i.setProperties(n.style)})}resetAnimation(){}getLegendData(){return[]}getTooltipContent(t){}computeFocusBounds(t){}hasItemStylers(){return!1}};H5.className="MapLineBackgroundSeries";H5.type="map-line-background";var{mapLineBackgroundSeriesThemeableOptionsDef:_pt}=j;({..._pt,type:ht(Jt("map-line-background"))});function j5(t,e,i){const n=ef(t[0],void 0);if(n==null)return;const s=(n.lon0+n.lon1)/2,a=(n.lat0+n.lat1)/2,o=Math.abs(n.lon1-n.lon0),r=Math.abs(n.lat1-n.lat0),l=bpt(t[0]),[c,u]=l,d=-WM(t,c,u);let g;const f=(N,O)=>{const R=Math.max(O-d,0);return N-.5*R},y=(N,O,L)=>{const{distance:R,maxDistance:P}=i(t,N,O,L),B=Math.hypot(c-N,u-O),F=Math.min(Math.max(c,N-L/2),N+L/2),H=Math.min(Math.max(u,O-L/2),O+L/2),$=Math.hypot(c-F,u-H),Y=f(R,B),U=f(P,$);return{distance:R,maxDistance:P,value:Y,maxValue:U,x:N,y:O,stride:L}},x=(N,O,L,R)=>{const P=y(O,L,R);P.maxDistance>=0&&N.push(P)},S=Math.min(o,r)/2;let D={value:y(s,a,S),next:null};for(;D!=null;){const N=D.value,{distance:O,value:L,maxValue:R,x:P,y:B,stride:F}=N;if(D=D.next,O>0&&(g==null||L>g.value)&&(g=N),g!=null&&R-g.value<=e)continue;const H=F/2,$=[];x($,P-H,B-H,H),x($,P+H,B-H,H),x($,P-H,B+H,H),x($,P+H,B+H,H),$.sort(JF),D=hT(D,$,JF)}if(g==null)return;const{distance:A,x:I,y:w}=g;return{x:I,y:w,distance:A}}var JF=(t,e)=>e.maxValue-t.maxValue;function d1(t,e){const i=j5(t,e,(a,o,r,l)=>{const c=-WM(a,o,r),u=c+l*Math.SQRT2;return{distance:c,maxDistance:u}});if(i==null)return;const{x:n,y:s}=i;return[n,s]}function G5(t,e){let i;switch(t.type){case"GeometryCollection":return t.geometries.flatMap(n=>G5(n,e));case"MultiPoint":return t.coordinates;case"Point":return[t.coordinates];case"MultiPolygon":{const n=YM(t);i=n==null?void 0:d1(n,e);break}case"Polygon":{const n=t.coordinates;i=n==null?void 0:d1(n,e);break}case"MultiLineString":{const n=$M(t);i=n==null?void 0:UM(n)?.point;break}case"LineString":{const n=t.coordinates;i=UM(n)?.point;break}}return i==null?[]:[i]}var{BBox:Fpt}=j;function U5(t){if(!t)return;const{range:e}=t,i=e[0][0],n=e[0][1],s=e[1][0]-i,a=e[1][1]-n,o=new Fpt(i,n,s,a);return{series:o,axis:o}}var{SeriesProperties:Hpt,makeSeriesTooltip:jpt,Label:Gpt}=j,W5=class extends Gpt{constructor(){super(...arguments),this.placement="bottom"}};M([b],W5.prototype,"placement");var Ke=class extends Hpt{constructor(){super(...arguments),this.topology=void 0,this.idKey=void 0,this.topologyIdKey="name",this.idName=void 0,this.latitudeKey=void 0,this.latitudeName=void 0,this.longitudeKey=void 0,this.longitudeName=void 0,this.labelKey=void 0,this.labelName=void 0,this.colorRange=void 0,this.shape="circle",this.size=6,this.fill="black",this.fillOpacity=1,this.stroke="black",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.label=new W5,this.tooltip=jpt()}getStyle(){const{size:t,shape:e,fill:i,fillOpacity:n,stroke:s,strokeWidth:a,strokeOpacity:o,lineDash:r,lineDashOffset:l}=this;return{size:t,shape:e,fill:i,fillOpacity:n,opacity:1,stroke:s,strokeWidth:a,strokeOpacity:o,lineDash:r,lineDashOffset:l}}};M([b],Ke.prototype,"topology");M([b],Ke.prototype,"title");M([b],Ke.prototype,"legendItemName");M([b],Ke.prototype,"idKey");M([b],Ke.prototype,"topologyIdKey");M([b],Ke.prototype,"idName");M([b],Ke.prototype,"latitudeKey");M([b],Ke.prototype,"latitudeName");M([b],Ke.prototype,"longitudeKey");M([b],Ke.prototype,"longitudeName");M([b],Ke.prototype,"labelKey");M([b],Ke.prototype,"labelName");M([b],Ke.prototype,"sizeKey");M([b],Ke.prototype,"sizeName");M([b],Ke.prototype,"colorKey");M([b],Ke.prototype,"colorName");M([b],Ke.prototype,"colorRange");M([b],Ke.prototype,"shape");M([b],Ke.prototype,"size");M([b],Ke.prototype,"maxSize");M([b],Ke.prototype,"sizeDomain");M([b],Ke.prototype,"fill");M([b],Ke.prototype,"fillOpacity");M([b],Ke.prototype,"stroke");M([b],Ke.prototype,"strokeWidth");M([b],Ke.prototype,"strokeOpacity");M([b],Ke.prototype,"lineDash");M([b],Ke.prototype,"lineDashOffset");M([b],Ke.prototype,"itemStyler");M([b],Ke.prototype,"label");M([b],Ke.prototype,"tooltip");var{fromToMotion:Upt,getMissCount:Wpt,createDatumId:IS,SeriesNodePickMode:tH,valueProperty:zd,computeMarkerFocusBounds:Kpt,ColorScale:Ypt,LinearScale:$pt,Group:Xpt,Selection:kS,Text:eH,Marker:Ew,getLabelStyles:Zpt}=j,K5=class extends uv{constructor(t){super({moduleCtx:t,categoryKey:void 0,propertyKeys:{size:["colorKey"],color:["colorKey"],label:["labelKey"]},propertyNames:{size:["sizeName"],color:["colorName"],label:["labelName"]},pickModes:[tH.EXACT_SHAPE_MATCH,tH.NEAREST_NODE],usesPlacedLabels:!0}),this.properties=new Ke,this._chartTopology=void 0,this.colorScale=new Ypt,this.sizeScale=new $pt,this.markerGroup=this.contentGroup.appendChild(new Xpt({name:"markerGroup"})),this.labelSelection=kS.select(this.labelGroup,eH,!1),this.highlightLabelSelection=kS.select(this.highlightLabelGroup,eH,!1),this.markerSelection=kS.select(this.markerGroup,Ew,!1),this.highlightMarkerSelection=kS.select(this.highlightNodeGroup,Ew),this.placedLabelData=[],this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:()=>this.animateMarkers()},reset:"empty",skip:"ready"},ready:{updateData:"waiting",clear:"clearing",resize:()=>this.resetAllAnimation(),reset:"empty",skip:"ready"},waiting:{update:{target:"ready",action:()=>this.animateMarkers()},resize:{target:"ready",action:()=>this.resetAllAnimation()},reset:"empty",skip:"ready"},clearing:{update:{target:"empty",action:()=>this.resetAllAnimation()},reset:"empty",skip:"ready"}},()=>this.checkProcessedDataAnimatable())}getNodeData(){return this.contextNodeData?.nodeData}get topology(){return this.properties.topology??this._chartTopology}get hasData(){const t=this.properties.latitudeKey!=null&&this.properties.longitudeKey!=null;return super.hasData&&(this.topology!=null||t)}renderToOffscreenCanvas(){return!0}setChartTopology(t){this._chartTopology=t,this.topology===t&&(this.nodeDataRefresh=!0)}setZIndex(t){return super.setZIndex(t),this.contentGroup.zIndex=[2,t],this.highlightGroup.zIndex=[3,t],!0}isLabelEnabled(){return this.properties.labelKey!=null&&this.properties.label.enabled}async processData(t){if(this.data==null)return;const{data:e,sizeScale:i,colorScale:n}=this,{topologyIdKey:s,idKey:a,latitudeKey:o,longitudeKey:r,sizeKey:l,colorKey:c,labelKey:u,sizeDomain:d,colorRange:g}=this.properties,f=this.buildFeatureMap(s),y=this.sizeScale.type,x=this.colorScale.type,S=this.scale?.type,D=o!=null&&r!=null,{dataModel:A,processedData:I}=await this.requestDataModel(t,e,{props:[...a==null?[]:[zd(a,S,{id:"idValue",includeProperty:!1}),zd(a,S,{id:"featureValue",includeProperty:!1,processor:()=>L=>f.get(L)})],...D?[zd(o,S,{id:"latValue"}),zd(r,S,{id:"lonValue"})]:[],...u?[zd(u,"category",{id:"labelValue"})]:[],...l?[zd(l,y,{id:"sizeValue"})]:[],...c?[zd(c,x,{id:"colorValue"})]:[]]}),w=a==null?void 0:A.resolveColumnById(this,"featureValue",I),N=D?A.resolveColumnById(this,"latValue",I):void 0,O=D?A.resolveColumnById(this,"lonValue",I):void 0;if(this.topologyBounds=I.dataSources.get(this.id)?.data.reduce((L,R,P)=>{const F=w?.[P]?.geometry;if(F!=null&&(L=Pm(F,L)),N!=null&&O!=null){const H=O[P],$=N[P];L=Tb.extend(L,H,$,H,$)}return L},void 0),l!=null){const L=A.resolveProcessedDataIndexById(this,"sizeValue"),R=I.domain.values[L]??[];i.domain=d??R}if(g!=null&&this.isColorScaleValid()){const L=A.resolveProcessedDataIndexById(this,"colorValue");n.domain=I.domain.values[L],n.range=g,n.update()}this.animationState.transition("updateData")}isColorScaleValid(){const{colorKey:t}=this.properties;if(!t)return!1;const{dataModel:e,processedData:i}=this;if(!e||!i)return!1;const n=e.resolveProcessedDataIndexById(this,"colorValue"),s=i.input.count,a=Wpt(this,i.defs.values[n].missing);return!(s===0||s===a)}getLabelDatum(t,e,i){if(e==null)return;const{idKey:n,idName:s,latitudeKey:a,latitudeName:o,longitudeKey:r,longitudeName:l,sizeKey:c,sizeName:u,colorKey:d,colorName:g,labelKey:f,labelName:y,label:x,shape:S}=this.properties;if(f==null||!x.enabled)return;const{datum:D,datumIndex:A,index:I,idValue:w,lonValue:N,latValue:O,point:L}=t,{placement:R}=x,P=this.getLabelText(e,D,f,"label",[],x,{value:e,datum:D,idKey:n,idName:s,latitudeKey:a,latitudeName:o,longitudeKey:r,longitudeName:l,sizeKey:c,sizeName:u,colorKey:d,colorName:g,labelKey:f,labelName:y});if(P==null)return;const{width:B,height:F}=i.measureLines(String(P)),H=Ew.anchor(S);return{point:{x:L.x,y:L.y,size:L.size},label:{width:B,height:F,text:P},anchor:H,placement:R,datumIndex:A,datumId:IS(I,w,N,O)}}resolveColumn(t,e,i){if(!(t==null||this.dataModel==null))return this.dataModel.resolveColumnById(this,e,i)}resolveDataColumns(t){const{idKey:e,latitudeKey:i,longitudeKey:n,sizeKey:s,colorKey:a,labelKey:o}=this.properties,r=i!=null&&n!=null;return{idValues:this.resolveColumn(e,"idValue",t),featureValues:this.resolveColumn(e,"featureValue",t),latValues:r?this.resolveColumn(i,"latValue",t):void 0,lonValues:r?this.resolveColumn(n,"lonValue",t):void 0,labelValues:this.resolveColumn(o,"labelValue",t),sizeValues:this.resolveColumn(s,"sizeValue",t),colorValues:this.resolveColumn(a,"colorValue",t)}}prepareProjectedGeometries(t,e,i){if(t==null||e==null||this.scale==null)return;const n=new Map;for(const[s]of i.dataSources.get(this.id)?.data.entries()??[]){const a=t[s],o=e[s]?.geometry,r=o==null?void 0:yp(o,this.scale);a!=null&&r!=null&&n.set(a,r)}return n}calculateMarkerSize(t){return t==null?this.properties.size:this.sizeScale.convert(t,{clamp:!0})}buildNodeDatum(t,e,i,n,s){return{series:this,datum:t,datumIndex:e,index:i,...s,point:n,midPoint:{x:n.x,y:n.y},legendItemName:this.properties.legendItemName,style:this.getMarkerItemStyle({datumIndex:e,datum:t,colorValue:s.colorValue,sizeValue:s.sizeValue},!1)}}createNodeFromLatLon(t,e,i,n,s,a,o){if(this.scale==null)throw new Error("Scale is required for createNodeFromLatLon");const[r,l]=this.scale.convert([i,n]),c={x:r,y:l,size:a},u=this.buildNodeDatum(t,e,-1,c,s),d=this.getLabelDatum(u,s.labelValue,o)??void 0;return{node:u,label:d}}createNodesFromGeometry(t,e,i,n,s,a){const o=[],r=[];for(const[l,[c,u]]of G5(i,1).entries()){const d={x:c,y:u,size:s},g=this.buildNodeDatum(t,e,l,d,n);o.push(g);const f=this.getLabelDatum(g,n.labelValue,a);f&&r.push(f)}return{nodes:o,labels:r}}warnMissingGeometries(t){if(t.length===0)return;const e=10;if(t.length>e){const i=t.length-e;t.length=e,t.push(`(+${i} more)`)}pt.warnOnce("some data items do not have matches in the provided topology",t)}buildFeatureMap(t){const e=new Map;for(const i of this.topology?.features.values()??[]){const n=i.properties?.[t];n!=null&&e.set(n,i)}return e}createNodeData(){const{id:t,dataModel:e,processedData:i,sizeScale:n,properties:s,scale:a}=this,{label:o}=s;if(e==null||i==null||a==null)return;if(!this.visible)return{itemId:t,nodeData:[],labelData:[]};const r=this.resolveDataColumns(i),l=s.maxSize??s.size;n.range=[Math.min(s.size,l),l];const c=Ve(o),u=this.prepareProjectedGeometries(r.idValues,r.featureValues,i),d=[],g=[],f=[],y=i.dataSources.get(this.id)?.data??[];for(const[x,S]of y.entries()){const D={idValue:r.idValues?.[x],lonValue:r.lonValues?.[x],latValue:r.latValues?.[x],colorValue:r.colorValues?.[x],sizeValue:r.sizeValues?.[x],labelValue:r.labelValues?.[x]},A=this.calculateMarkerSize(D.sizeValue),I=D.idValue==null?void 0:u?.get(D.idValue);if(D.idValue!=null&&u!=null&&I==null&&f.push(D.idValue),D.lonValue!=null&&D.latValue!=null){const w=this.createNodeFromLatLon(S,x,D.lonValue,D.latValue,D,A,c);d.push(w.node),w.label&&g.push(w.label)}else if(I!=null){const w=this.createNodesFromGeometry(S,x,I,D,A,c);d.push(...w.nodes),g.push(...w.labels)}}return this.warnMissingGeometries(f),{itemId:t,nodeData:d,labelData:g}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}checkScaleChange(){return this.previousScale===this.scale?!1:(this.previousScale=this.scale,!0)}update({seriesRect:t}){const e=this.checkResize(t),i=this.checkScaleChange(),{markerSelection:n,highlightMarkerSelection:s}=this,a=this.ctx.chartService.highlight?.drawingMode??"overlay";this.updateSelections(),this.contentGroup.visible=this.visible,this.labelGroup.visible=this.visible;const o=this.getHighlightedDatum(),r=this.contextNodeData?.nodeData??[];this.markerSelection=this.updateMarkerSelection({markerData:r,markerSelection:n}),this.updateMarkerNodes({markerSelection:n,isHighlight:!1,highlightedDatum:o,drawingMode:"overlay"}),this.highlightMarkerSelection=this.updateMarkerSelection({markerData:o==null?[]:[o],markerSelection:s}),this.updateMarkerNodes({markerSelection:s,isHighlight:!0,highlightedDatum:o,drawingMode:a}),this.updateLabelNodes({labelSelection:this.labelSelection,isHighlight:!1}),this.updateHighlightLabelSelection(o),(i||e)&&this.animationState.transition("resize"),this.animationState.transition("update")}updatePlacedLabelData(t){this.placedLabelData=t,this.labelSelection=this.labelSelection.update(t,e=>{e.pointerEvents=j.PointerEvents.None}),this.updateLabelNodes({labelSelection:this.labelSelection,isHighlight:!1}),this.updateHighlightLabelSelection()}updateLabelNodes({isHighlight:t,labelSelection:e}){const{properties:i}=this,n=this.ctx.highlightManager?.getActiveHighlight();e.each((s,a)=>{const{x:o,y:r,width:l,height:c,text:u,datum:d}=a,g=Zpt(this,void 0,i,i.label,t,n),{color:f,fontStyle:y,fontWeight:x,fontSize:S,fontFamily:D}=g;s.visible=!0,s.x=o+l/2,s.y=r+c/2,s.text=u,s.fill=f,s.fontStyle=y,s.fontWeight=x,s.fontSize=S,s.fontFamily=D,s.textAlign="center",s.textBaseline="middle";const A=d?.datumIndex;s.fillOpacity=this.getHighlightStyle(t,A).opacity??1,s.setBoxing(g)})}getHighlightedLabelId(t=this.getHighlightedDatum()){if(t!=null)return IS(t.index,t.idValue,t.lonValue,t.latValue)}updateHighlightLabelSelection(t=this.getHighlightedDatum()){const e=this.getHighlightedLabelId(t),i=e==null||!this.isLabelEnabled()?[]:this.placedLabelData.filter(n=>n.datum.datumId===e);if(this.highlightLabelSelection=this.highlightLabelSelection.update(i),i.length===0){this.highlightLabelSelection.cleanup(),this.highlightLabelGroup.visible=!1;return}this.highlightLabelGroup.visible=!0,this.updateLabelNodes({labelSelection:this.highlightLabelSelection,isHighlight:!0})}updateMarkerSelection(t){const{markerData:e,markerSelection:i}=t;return i.update(e,void 0,n=>IS(n.index,n.idValue,n.lonValue,n.latValue))}getMarkerItemStyle({datumIndex:t,datum:e,colorValue:i,sizeValue:n},s){const{properties:a,colorScale:o,sizeScale:r}=this,{colorRange:l,itemStyler:c}=a,u=this.getHighlightStyle(s,t),d=Et(u,a.getStyle());!s&&i!=null&&(d.fill=this.isColorScaleValid()?o.convert(i):l?.[0]??d.fill),n!=null&&(d.size=r.convert(n,{clamp:!0}));let g=d;if(c!=null&&t!=null){const f=this.cachedDatumCallback(IS(t,s?"highlight":"node"),()=>{const y=this.makeItemStylerParams(e,t,s,g);return this.callWithContext(c,y)});f&&(g=Et(f,d))}return g}makeItemStylerParams(t,e,i,n){const{id:s}=this,a=this.ctx.highlightManager?.getActiveHighlight(),o=this.getHighlightStateString(a,i,e),r=this.filterItemStylerFillParams(n.fill)??n.fill;return{seriesId:s,datum:t,highlightState:o,...n,fill:r}}updateMarkerNodes(t){const{markerSelection:e,isHighlight:i,highlightedDatum:n,drawingMode:s}=t,a=U5(this.scale);e.each((o,r)=>{const{datum:l,point:c}=r,u=this.getMarkerItemStyle(r,i);o.shape=u.shape,o.size=u.size,o.setStyleProperties(u,a),o.x=c.x,o.y=c.y,o.scalingCenterX=c.x,o.scalingCenterY=c.y,o.zIndex=!i&&n!=null&&l===n.datum?1:0,o.drawingMode=s})}isProcessedDataAnimatable(){return!0}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"&&this.animationState.transition("skip")}resetAllAnimation(){this.ctx.animationManager.stopByAnimationGroupId(this.id),this.ctx.animationManager.skipCurrentBatch(),this.labelSelection.cleanup(),this.markerSelection.cleanup(),this.highlightMarkerSelection.cleanup(),this.highlightLabelSelection.cleanup(),this.highlightLabelGroup.visible=!1,this.placedLabelData=[]}animateMarkers(){const{animationManager:t}=this.ctx,e=Dpt();Upt(this.id,"markers",t,[this.markerSelection,this.highlightMarkerSelection],e)}getLabelData(){return this.isLabelEnabled()?this.contextNodeData?.labelData??[]:[]}pickNodeClosestDatum(t){const{x:e,y:i}=t;let n=1/0,s;for(const a of this.contextNodeData?.nodeData??[]){const{x:o,y:r,size:l}=a.point,c=Math.max(Math.abs(o-e)-l,0),u=Math.max(Math.abs(r-i)-l,0),d=c*c+u*u;d=0?"N":"S"}, ${Math.abs(H).toFixed(4)}° ${H>=0?"W":"E"}`}const B=this.getMarkerItemStyle({datumIndex:t,datum:N,colorValue:L,sizeValue:O},!1);return this.formatTooltipWithContext(w,{heading:P,title:A??I,symbol:this.legendItemSymbol(t),data:R},{seriesId:e,datum:N,title:A,idKey:o,idName:r,latitudeKey:l,latitudeName:c,longitudeKey:u,longitudeName:d,colorKey:g,colorName:f,sizeKey:y,sizeName:x,labelKey:S,labelName:D,...B})}getFormattedMarkerStyle(t){const e=this.getMarkerItemStyle(t,!1);return{size:e.size,shape:e.shape}}computeFocusBounds(t){return Kpt(this,t)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.label.itemStyler!=null}};K5.className="MapMarkerSeries";K5.type="map-marker";var{mapMarkerSeriesThemeableOptionsDef:qpt}=j;({...At(_e,["highlightStyle","highlight"]),...qpt,type:ht(Jt("map-marker"))});Sl({$applySwitch:[{$path:"type"},{$mapPalette:"fill"},["gradient",Sp],["image",$s],["pattern",Cs]]}),Sl(xx),{...Oe},Sl(Bc);function Qpt(t,{aspectRatio:e,precision:i}){const n=j5(t,i,(l,c,u,d)=>{const g=tgt(l,c,u,e),f=g+2*d*e,y=g*Math.SQRT2,x=f*Math.SQRT2;return{distance:y,maxDistance:x}});if(n==null)return;const{x:s,y:a,distance:o}=n,r=o/Math.SQRT2;return{x:s,y:a,maxWidth:r}}function Jpt(t,e,i,n,s){const[a,o]=t,[r,l]=e,c=1/s,u=r-a,d=l-o,[g,f]=o<=l?t:e,[y,x]=a<=r?t:e,[S,D]=o<=l?e:t,[A,I]=a<=r?e:t;let w=1/0;if(u===0)for(let B=0;B<=1;B+=1){const H=(B===0?c:-c)*(a-i)+n;if(H>=f&&H<=D){const Y=Math.abs(n-H)*2*s;w=Math.min(w,Y)}}else{const B=d/u;for(let F=0;F<=1;F+=1){const H=F===0?c:-c,$=(B*a-o-H*i+n)/(B-H);if($>=y&&$<=A){const Y=Math.abs(i-$)*2;w=Math.min(w,Y)}}}const N=s,O=Math.abs((g-i)/(f-n)),L=Math.abs((S-i)/(D-n));if(Dn&&Oi&&Ri!=c>i&&e<(l-d)*(i-g)/(c-g)+d&&(s=!s);const f=Jpt(r,u,e,i,n);a=Math.min(a,f),r=u,l=d,c=g}}return(s?1:-1)*a}function CS(t,e,i){i>=e&&(t.maxX=Math.min(t.maxX,i-e)),i<=e&&(t.minX=Math.max(t.minX,i-e))}function egt(t,e,i,n,s,a){const o=s-a/2,r=s+a/2,[l,c]=e,[u,d]=i,g=u-l,f=d-c,[y,x]=l<=u?e:i,[S,D]=l<=u?i:e;if(g!==0){const A=f/g;for(let I=0;I<=1;I+=1){const N=((I===0?o:r)-c)/A+l;N>=y&&N<=S&&CS(t,n,N)}}else Math.max(o,Math.min(c,d))<=Math.min(r,Math.max(c,d))&&CS(t,n,l);return S=o&&D<=r?CS(t,n,S):y>n&&x>=o&&x<=r&&CS(t,n,y),t}function igt(t,e,i,n){const s={minX:-1/0,maxX:1/0};for(const r of t){let l=r.at(-1);for(const c of r)egt(s,l,c,e,i,n),l=c}const{minX:a,maxX:o}=s;return Number.isFinite(a)&&Number.isFinite(o)?{x:e+(a+o)/2,width:o-a}:{x:e,width:0}}var{SeriesProperties:ngt,makeSeriesTooltip:sgt}=j,Ji=class extends ngt{constructor(){super(...arguments),this.topology=void 0,this.idKey="",this.idName=void 0,this.topologyIdKey="name",this.labelKey=void 0,this.labelName=void 0,this.colorRange=void 0,this.fill="black",this.fillOpacity=1,this.stroke="black",this.strokeOpacity=1,this.strokeWidth=0,this.lineDash=[0],this.lineDashOffset=0,this.padding=0,this.label=new PA,this.tooltip=sgt()}getStyle(){const{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o}=this;return{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,opacity:1}}};M([b],Ji.prototype,"topology");M([b],Ji.prototype,"title");M([b],Ji.prototype,"legendItemName");M([b],Ji.prototype,"idKey");M([b],Ji.prototype,"idName");M([b],Ji.prototype,"topologyIdKey");M([b],Ji.prototype,"labelKey");M([b],Ji.prototype,"labelName");M([b],Ji.prototype,"colorKey");M([b],Ji.prototype,"colorName");M([b],Ji.prototype,"colorRange");M([b],Ji.prototype,"fill");M([b],Ji.prototype,"fillOpacity");M([b],Ji.prototype,"stroke");M([b],Ji.prototype,"strokeOpacity");M([b],Ji.prototype,"strokeWidth");M([b],Ji.prototype,"lineDash");M([b],Ji.prototype,"lineDashOffset");M([b],Ji.prototype,"padding");M([b],Ji.prototype,"itemStyler");M([b],Ji.prototype,"label");M([b],Ji.prototype,"tooltip");var{getMissCount:agt,createDatumId:wS,SeriesNodePickMode:iH,valueProperty:NS,ColorScale:ogt,Group:nH,Selection:TS,Text:sH,PointerEvents:rgt,getLabelStyles:lgt}=j,aH=j.MercatorScale.fixedScale(),Y5=class extends uv{constructor(t){super({moduleCtx:t,categoryKey:void 0,propertyKeys:{color:["colorKey"],label:["labelKey"]},propertyNames:{color:["colorName"],label:["labelName"]},pickModes:[iH.EXACT_SHAPE_MATCH,iH.NEAREST_NODE]}),this.properties=new Ji,this._chartTopology=void 0,this.colorScale=new ogt,this.itemGroup=this.contentGroup.appendChild(new nH({name:"itemGroup"})),this.itemLabelGroup=this.contentGroup.appendChild(new nH({name:"itemLabelGroup"})),this.datumSelection=TS.select(this.itemGroup,()=>this.nodeFactory()),this.labelSelection=TS.select(this.itemLabelGroup,sH),this.highlightDatumSelection=TS.select(this.highlightNodeGroup,()=>this.nodeFactory()),this.highlightLabelSelection=TS.select(this.highlightLabelGroup,sH),this.previousLabelLayouts=void 0,this._previousDatumMidPoint=void 0,this.itemLabelGroup.pointerEvents=rgt.None}getNodeData(){return this.contextNodeData?.nodeData}get topology(){return this.properties.topology??this._chartTopology}get hasData(){return super.hasData&&this.topology!=null}renderToOffscreenCanvas(){return!0}setChartTopology(t){this._chartTopology=t,this.topology===t&&(this.nodeDataRefresh=!0)}setZIndex(t){return super.setZIndex(t),this.contentGroup.zIndex=[1,t],this.highlightGroup.zIndex=[4,t],!0}isLabelEnabled(){return this.properties.labelKey!=null&&this.properties.label.enabled}nodeFactory(){const t=new Rm;return t.renderMode=1,t.lineJoin="round",t}async processData(t){if(this.data==null)return;const{data:e,topology:i,colorScale:n}=this,{topologyIdKey:s,idKey:a,colorKey:o,labelKey:r,colorRange:l}=this.properties,c=new Map;for(const x of i?.features.values()??[]){const S=x.properties?.[s];S==null||!JO(x.geometry,1)||c.set(S,x)}const u=this.colorScale.type,d=this.scale?.type,{dataModel:g,processedData:f}=await this.requestDataModel(t,e,{props:[NS(a,d,{id:"idValue",includeProperty:!1}),NS(a,d,{id:"featureValue",includeProperty:!1,processor:()=>x=>c.get(x)}),...r?[NS(r,"category",{id:"labelValue"})]:[],...o?[NS(o,u,{id:"colorValue"})]:[]]}),y=g.resolveColumnById(this,"featureValue",f);if(this.topologyBounds=y.reduce((x,S)=>{const D=S?.geometry;return D==null?x:Pm(D,x)},void 0),l!=null&&this.isColorScaleValid()){const x=g.resolveProcessedDataIndexById(this,"colorValue");n.domain=f.domain.values[x],n.range=l,n.update()}i==null&&pt.warnOnce("no topology was provided for [MapShapeSeries]; nothing will be rendered.")}isColorScaleValid(){const{colorKey:t}=this.properties;if(!t)return!1;const{dataModel:e,processedData:i}=this;if(!e||!i)return!1;const n=e.resolveProcessedDataIndexById(this,"colorValue"),s=i.input.count,a=agt(this,i.defs.values[n].missing);return!(s===0||s===a)}getLabelLayout(t,e,i,n,s){if(e==null||n==null)return;const{idKey:a,idName:o,colorKey:r,colorName:l,labelKey:c,labelName:u,padding:d,label:g}=this.properties;if(c==null||!g.enabled)return;const f=this.getLabelText(e,t,c,"label",[],g,{value:e,datum:t,idKey:a,idName:o,colorKey:r,colorName:l,labelKey:c,labelName:u});if(f==null)return;const y=qt(f)?Va(f,g):i.measureLines(String(f)),x=(y.width+2*d)/(y.height+2*d);if(s?.geometry===n&&s?.labelText===f&&s?.aspectRatio===x)return s;const S=yp(n,aH),D=YM(S);if(D==null)return;const A=Qpt(D,{aspectRatio:x,precision:.001});if(A==null)return;const{x:I,y:w,maxWidth:N}=A;return{geometry:n,labelText:f,aspectRatio:x,x:I,y:w,maxWidth:N,fixedPolygon:D}}getLabelDatum(t,e,i,n){const{scale:s}=this;if(s==null)return;const{padding:a,label:o}=this.properties,{labelText:r,aspectRatio:l,x:c,y:u,maxWidth:d,fixedPolygon:g}=t,f={width:Math.ceil(d*e),height:Math.ceil(d*e/l),meta:c},y=rx(ce(r),o,{padding:a},(O,L)=>{if(!L)return f;const R=igt(g,c,u,O/e);return{width:R.width*e,height:O,meta:R.x}});if(y==null)return;const[{text:x,fontSize:S,lineHeight:D,width:A},I]=y,w=Ae){const i=t.length-e;t.length=e,t.push(`(+${i} more)`)}pt.warnOnce("some data items do not have matches in the provided topology",t)}createNodeData(){const{id:t,dataModel:e,processedData:i,properties:n,scale:s,previousLabelLayouts:a}=this,{label:o,legendItemName:r,colorKey:l}=n;if(e==null||i==null)return;if(!this.visible)return{itemId:t,nodeData:[],labelData:[]};const c=s==null?Number.NaN:(s.range[1][0]-s.range[0][0])/s.bounds.width,u=this.resolveShapeDataColumns(i),d=Ve(o),g=new Map;this.previousLabelLayouts=g;const f=[],y=[],x=[],S=i.dataSources.get(this.id)?.data??[];for(const[D,A]of S.entries()){const I={idValue:u.idValues[D],colorValue:u.colorValues?.[D],labelValue:u.labelValues?.[D]},w=u.featureValues[D]?.geometry??void 0;if(w==null&&x.push(I.idValue),l!=null&&I.colorValue==null)continue;const N=this.getLabelLayout(A,I.labelValue,d,w,a?.get(I.idValue));N!=null&&g.set(I.idValue,N);const O=N!=null&&s!=null?this.getLabelDatum(N,c,D,I.idValue):void 0;O!=null&&y.push(O);const L=w!=null&&s!=null?yp(w,s):void 0;f.push({series:this,datum:A,datumIndex:D,...I,projectedGeometry:L,legendItemName:r,style:this.getItemStyle({datum:A,datumIndex:D,colorValue:I.colorValue},!1)})}return this.warnMissingGeometries(x),{itemId:t,nodeData:f,labelData:y}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}update(){const{datumSelection:t,labelSelection:e,highlightDatumSelection:i}=this;this.updateSelections(),this.contentGroup.visible=this.visible,this.labelGroup.visible=this.visible;const n=this.ctx.chartService.highlight?.drawingMode??"overlay",s=this.getHighlightedDatum(),a=this.contextNodeData?.nodeData??[],o=this.contextNodeData?.labelData??[];this.datumSelection=this.updateDatumSelection({nodeData:a,datumSelection:t}),this.updateDatumStyles({datumSelection:t,isHighlight:!1}),this.updateDatumNodes({datumSelection:t,drawingMode:"overlay"}),this.labelSelection=this.updateLabelSelection({labelData:o,labelSelection:e});const r=this.getHighlightLabelData(o,s);this.highlightLabelSelection=this.updateLabelSelection({labelData:r,labelSelection:this.highlightLabelSelection}),this.updateLabelNodes({labelSelection:this.labelSelection,isHighlight:!1}),this.updateLabelNodes({labelSelection:this.highlightLabelSelection,isHighlight:!0}),this.highlightDatumSelection=this.updateDatumSelection({nodeData:s==null?[]:[s],datumSelection:i}),this.updateDatumStyles({datumSelection:i,isHighlight:!0}),this.updateDatumNodes({datumSelection:i,drawingMode:n})}getHighlightLabelData(t,e){if(t.length===0)return[];const i=wS(e?.idValue);return t.filter(n=>n.datumId===i&&n.datumIndex===e?.datumIndex)}updateDatumSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>wS(e.idValue))}getItemStyle({datumIndex:t,datum:e,colorValue:i},n){const{properties:s,colorScale:a}=this,{colorRange:o,itemStyler:r}=s,l=s.getStyle();if(i!=null){const d=this.isColorScaleValid()?a.convert(i):o?.[0];d!=null&&(l.fill=d)}const c=this.getHighlightStyle(n,t);let u=Et(c,l);if(r!=null&&t!=null){const d=this.cachedDatumCallback(wS(t,n?"highlight":"node"),()=>{const g=this.makeItemStylerParams(e,t,n,u);return this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],this.callWithContext(r,g))});d&&(u=Et(d,u))}return u}makeItemStylerParams(t,e,i,n){const{id:s}=this,a=this.ctx.highlightManager?.getActiveHighlight(),o=this.getHighlightStateString(a,i,e),r=this.filterItemStylerFillParams(n.fill)??n.fill;return{seriesId:s,datum:t,highlightState:o,...n,fill:r}}updateDatumStyles({datumSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getItemStyle(n,e)})}updateDatumNodes({datumSelection:t,drawingMode:e}){const i=U5(this.scale);t.each((n,s)=>{const{projectedGeometry:a}=s;if(a==null){n.visible=!1,n.projectedGeometry=void 0;return}n.visible=!0,n.projectedGeometry=a,n.setStyleProperties(s.style,i),n.drawingMode=e})}updateLabelSelection(t){const e=this.isLabelEnabled()?t.labelData:[];return t.labelSelection.update(e)}updateLabelNodes({isHighlight:t,labelSelection:e}){const{properties:i}=this,n=this.ctx.highlightManager?.getActiveHighlight();e.each((s,a)=>{const{x:o,y:r,text:l,fontSize:c,lineHeight:u,datumIndex:d}=a,g=lgt(this,void 0,i,i.label,t,n),{color:f,fontStyle:y,fontWeight:x,fontFamily:S}=g;s.visible=!0,s.x=o,s.y=r,s.text=l,s.fill=f,s.fontStyle=y,s.fontWeight=x,s.fontSize=c,s.lineHeight=u,s.fontFamily=S,s.textAlign="center",s.textBaseline="middle",s.fillOpacity=this.getHighlightStyle(t,d).opacity??1,s.setBoxing(g)})}resetAnimation(){}pickNodeClosestDatum({x:t,y:e}){let i=1/0,n;return this.datumSelection.each((s,a)=>{const o=s.distanceSquared(t,e);othis.nodeFactory()),this.itemGroup.pointerEvents=oH.None}get topology(){return this.properties.topology??this._chartTopology}get focusable(){return!1}setOptionsData(){}setChartData(){}getNodeData(){}get hasData(){return!1}renderToOffscreenCanvas(){return!0}setChartTopology(t){this._chartTopology=t,this.topology===t&&(this.nodeDataRefresh=!0)}setZIndex(t){return super.setZIndex(t),this.contentGroup.zIndex=[0,t,0],this.highlightGroup.zIndex=[0,t,1],!0}nodeFactory(){const t=new Rm;return t.renderMode=1,t.lineJoin="round",t.pointerEvents=oH.None,t}processData(){const{topology:t}=this;this.topologyBounds=t?.features.reduce((e,i)=>{const n=i.geometry;return n==null?e:Pm(n,e)},void 0),t==null&&pt.warnOnce("no topology was provided for [MapShapeBackgroundSeries]; nothing will be rendered.")}createNodeData(){const{id:t,topology:e,scale:i,properties:n}=this;if(e==null)return;const{fill:s,fillOpacity:a,stroke:o,strokeWidth:r,strokeOpacity:l,lineDash:c,lineDashOffset:u}=n,d=[],g=[];for(const[f,y]of e.features.entries()){const{geometry:x}=y,S=x!=null&&i!=null?yp(x,i):void 0;S!=null&&d.push({series:this,datum:y,datumIndex:0,index:f,projectedGeometry:S,style:{fill:s,fillOpacity:a,stroke:o,strokeWidth:r,strokeOpacity:l,lineDash:c,lineDashOffset:u}})}return{itemId:t,nodeData:d,labelData:g}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}update(){const{datumSelection:t}=this;this.updateSelections(),this.contentGroup.visible=this.visible,this.labelGroup.visible=this.visible;const{nodeData:e=[]}=this.contextNodeData??{};this.datumSelection=this.updateDatumSelection({nodeData:e,datumSelection:t}),this.updateDatumNodes({datumSelection:t})}updateDatumSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>dgt(e.index))}updateDatumNodes(t){const{datumSelection:e}=t;e.each((i,n)=>{const{projectedGeometry:s}=n;if(s==null){i.visible=!1,i.projectedGeometry=void 0;return}i.visible=!0,i.projectedGeometry=s,i.setProperties(n.style)})}resetAnimation(){}getLegendData(){return[]}getTooltipContent(t){}pickFocus(){}computeFocusBounds(t){}hasItemStylers(){return!1}};$5.className="MapShapeBackgroundSeries";$5.type="map-shape-background";var{mapShapeBackgroundSeriesThemeableOptionsDef:fgt}=j;({...fgt,..._e,type:ht(Jt("map-shape-background"))});Sl({$applySwitch:[{$path:"type"},{$path:["/1",{$mapPalette:"fill"},{$mapPalette:"hierarchyColors"}]},["gradient",$4],["image",$s],["pattern",Z4]]});var{createDatumId:mgt,toHighlightString:ygt}=j;function bgt(t,e){const{id:i}=t,{angleKey:n,cornerRadius:s,fill:a,fillOpacity:o,lineDash:r,lineDashOffset:l,radiusKey:c,stackGroup:u,stroke:d,strokeOpacity:g,strokeWidth:f}=t.properties,y=ygt(e??j.HighlightState.None);return{angleKey:n,cornerRadius:s,fill:a,fillOpacity:o,highlightState:y,lineDash:r,lineDashOffset:l,radiusKey:c,seriesId:i,stackGroup:u,stroke:d,strokeOpacity:g,strokeWidth:f}}function tE(t,e,i){const{styler:n}=t.properties;let s={};if(!e&&n){const a=bgt(t,i);s=t.ctx.optionsGraphService.resolvePartial(["series",`${t.declarationOrder}`],t.cachedCallWithContext(n,a)??{},{pick:!1})??{}}return{cornerRadius:s.cornerRadius??t.properties.cornerRadius,fill:s.fill??t.properties.fill,fillOpacity:s.fillOpacity??t.properties.fillOpacity,lineDash:s.lineDash??t.properties.lineDash,lineDashOffset:s.lineDashOffset??t.properties.lineDashOffset,stroke:s.stroke??t.properties.stroke,strokeOpacity:s.strokeOpacity??t.properties.strokeOpacity,strokeWidth:s.strokeWidth??t.properties.strokeWidth,opacity:1}}function xgt(t,e,i,n){const{id:s,properties:a}=t,{angleKey:o,radiusKey:r}=a,l=t.ctx.highlightManager?.getActiveHighlight(),c=t.getHighlightStateString(l,i,e.datumIndex),u=t.filterItemStylerFillParams(n.fill)??n.fill;return{seriesId:s,datum:e.datum,highlightState:c,angleKey:o,radiusKey:r,...n,fill:u}}function gf(t,e,i,n){const{properties:s}=t,{itemStyler:a}=s,o=t.getHighlightStyle(i,e?.datumIndex,n);let l=Et(o,tE(t,e===void 0,n));if(a!=null&&e!=null){const c=t.cachedDatumCallback(mgt(t.getDatumId(e),i?"highlight":"node"),()=>{const u=xgt(t,e,i,l);return t.callWithContext(a,u)});c&&(l=Et(c,l))}return l}var{DEFAULT_POLAR_DIRECTION_KEYS:vgt,DEFAULT_POLAR_DIRECTION_NAMES:Sgt,PolarAxis:Mgt,diff:Dgt,fixNumericExtent:Agt,groupAccumulativeValueProperty:rH,keyProperty:Igt,normaliseGroupTo:kgt,resetLabelFn:Cgt,seriesLabelFadeInAnimation:wgt,seriesLabelFadeOutAnimation:Ngt,valueProperty:Tgt,animationValidation:Lgt,createDatumId:Ogt,SeriesNodePickMode:lH,CategoryScale:Egt,motion:cH,updateLabelNode:hH,getItemStyles:Rgt}=j,Pgt=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.angleKey=n.properties.angleKey,this.radiusKey=n.properties.radiusKey}},X5=class extends j.PolarSeries{constructor(t,{animationResetFns:e}){super({moduleCtx:t,categoryKey:"angleValue",propertyKeys:vgt,propertyNames:Sgt,canHaveAxes:!0,pickModes:[lH.NEAREST_NODE,lH.EXACT_SHAPE_MATCH],animationResetFns:{...e,label:Cgt}}),this.NodeEvent=Pgt,this.groupScale=new Egt,this.circleCache={r:0,cx:0,cy:0}}getSeriesDomain(t){const{dataModel:e,processedData:i}=this;if(!i||!e)return{domain:[]};if(t===z.Angle)return e.getDomain(this,"angleValue","key",i);{const n=e.getDomain(this,"radiusValue-end","value",i).domain,s=Number.isFinite(n[1]-n[0])?[Math.min(n[0],0),Math.max(n[1],0)]:[];return{domain:Agt(s)}}}async processData(t){const{angleKey:e,radiusKey:i,normalizedTo:n}=this.properties,s=!this.ctx.animationManager.isSkipped(),a=this.getStackId(),o=`${a}-trailing`,r=[];go(n)&&r.push(kgt([a,o],Math.abs(n))),this.needsDataModelDiff()&&this.processedData&&r.push(Dgt(this.id,this.processedData)),s&&r.push(Lgt());const l=this.visible?{}:{forceValue:0},c=this.axes[z.Radius]?.scale.type,u=this.axes[z.Angle]?.scale.type,d=this.properties.allowNullKeys??!1;await this.requestDataModel(t,this.data,{props:[Igt(e,u,{id:"angleValue",allowNullKey:d}),Tgt(i,c,{id:"radiusValue-raw",invalidValue:null,...l}),...rH(i,"normal",{id:"radiusValue-end",rangeId:"radiusValue-range",invalidValue:null,groupId:a,separateNegative:!0,...l},c),...rH(i,"trailing",{id:"radiusValue-start",invalidValue:null,groupId:o,separateNegative:!0,...l},c),...r],groupByKeys:!0,groupByData:!1}),this.animationState.transition("updateData")}didCircleChange(){const t=this.radius,e=this.centerX,i=this.centerY,n=this.circleCache;return t!==n.r||e!==n.cx||i!==n.cy?(this.circleCache={r:t,cx:e,cy:i},!0):!1}isRadiusAxisReversed(){return this.axes[z.Radius]?.isReversed()}maybeRefreshNodeData(){!this.didCircleChange()&&!this.nodeDataRefresh||(this.contextNodeData=this.createNodeData(),this.nodeData=this.contextNodeData?.nodeData??[],this.nodeDataRefresh=!1)}getAxisInnerRadius(){const t=this.axes[z.Radius];return t instanceof Mgt?this.radius*t.innerRadiusRatio:0}createNodeData(){const{processedData:t,dataModel:e,groupScale:i}=this;if(!e||t?.type!=="grouped")return;const n=this.axes[z.Angle],s=this.axes[z.Radius],a=n?.scale,o=s?.scale;if(!a||!o)return;const r=e.resolveKeysById(this,"angleValue",t),l=e.resolveColumnById(this,"radiusValue-start",t),c=e.resolveColumnById(this,"radiusValue-end",t),u=e.resolveColumnById(this,"radiusValue-raw",t);let d=0,g=0;n instanceof bm&&(d=n.groupPaddingInner,g=n.paddingInner);const y=(a.bandwidth??0)*(1-g),{index:x,visibleGroupCount:S}=this.ctx.seriesStateManager.getVisiblePeerGroupIndex(this);i.domain=Array.from({length:S}).map((W,q)=>String(q)),i.range=[-y/2,y/2],i.paddingInner=S>1?d:0;const D=this.isRadiusAxisReversed(),A=this.getAxisInnerRadius(),I=this.radius,w=I+A,{angleKey:N,radiusKey:O,angleName:L,radiusName:R,legendItemName:P,label:B}=this.properties,F=this.getSeriesDomain(z.Radius).domain,H=(W,q,nt,G)=>{const et=this.getLabelText(q,W,O,"radius",F,B,{value:q,datum:W,angleKey:N,radiusKey:O,angleName:L,radiusName:R,legendItemName:P});if(et)return{x:nt,y:G,text:et,textAlign:"center",textBaseline:"middle"}},$=[],Y=Rgt((W,q,nt)=>gf(this,W,q,nt)),U={itemId:O,nodeData:$,labelData:$,styles:Y};if(!this.visible)return U;const{dataSources:V}=t,Z=V.get(this.id)?.data??[];for(const{datumIndex:W}of e.forEachGroupDatum(this,t)){const q=Z[W],nt=r[W];if(nt===void 0&&!this.properties.allowNullKeys)return;const G=u[W],et=G>=0&&!Object.is(G,-0),st=l[W],lt=c[W],mt=et===D;if(st===void 0||lt===void 0)return;let Dt,kt,Vt;if(Z.length===1)Dt=-.5*Math.PI,kt=1.5*Math.PI,Vt=Dt;else{const oe=a.convert(nt);Dt=ze(oe+i.convert(String(x))),kt=ze(Dt+i.bandwidth),Vt=Dt+i.bandwidth/2}const Kt=w-o.convert(st),ae=w-o.convert(lt),ne=(Kt+ae)/2,Qt=Math.cos(Vt)*ne,zt=Math.sin(Vt)*ne,Pt=this.properties.label.enabled?H(q,G,Qt,zt):void 0,ue=this.getColumnWidth(Dt,kt);$.push({series:this,datum:q,datumIndex:W,point:{x:Qt,y:zt,size:0},midPoint:{x:Qt,y:zt},label:Pt,angleValue:nt,radiusValue:G,negative:mt,innerRadius:Kt,outerRadius:ae,stackInnerRadius:Kt,stackOuterRadius:ae,startAngle:Dt,endAngle:kt,midAngle:Vt,axisInnerRadius:A,axisOuterRadius:I,columnWidth:ue,index:W})}return{itemId:O,nodeData:$,labelData:$,styles:Y}}getColumnWidth(t,e){return Number.NaN}update({seriesRect:t}){const e=this.checkResize(t);this.maybeRefreshNodeData(),this.contentGroup.translationX=this.centerX,this.contentGroup.translationY=this.centerY,this.highlightGroup.translationX=this.centerX,this.highlightGroup.translationY=this.centerY,this.labelGroup&&(this.labelGroup.translationX=this.centerX,this.labelGroup.translationY=this.centerY),this.updateSectorSelection(this.itemSelection,!1),this.updateSectorSelection(this.highlightSelection,!0),this.updateLabels(),e&&this.animationState.transition("resize"),this.animationState.transition("update")}updateSectorSelection(t,e){const{contextNodeData:i}=this;if(!i)return;const n=this.ctx.highlightManager.getActiveHighlight();let s=[];const a=this.ctx.highlightManager?.getActiveHighlight();e?a?.datum&&a.series===this&&s.push(a):s=this.nodeData;const o=this.isRadiusAxisReversed(),r=o?this.radius:this.getAxisInnerRadius(),l=o?this.getAxisInnerRadius():this.radius,c=this.getShapeFillBBox(),u=this.hasItemStylers();t.update(s,void 0,d=>this.getDatumId(d)).each((d,g)=>{const{midPoint:f}=g;if(u){const A=this.getHighlightState(a,e,g.datumIndex);g.style=gf(this,g,e,A)}const y=g.style??i.styles[this.getHighlightState(n,e,g.datumIndex)],x=y.fill,D=an(x)&&x.bounds==="item"?{centerX:f?.x??0,centerY:f?.y??0}:{centerX:0,centerY:0,innerRadius:r,outerRadius:l};this.updateItemPath(d,g,e),d.setStyleProperties(y,c,D),d.cornerRadius=y.cornerRadius??0,d.lineJoin="round"})}updateLabels(){const t=this.ctx.highlightManager?.getActiveHighlight(),e=t?.series===this&&t?.datum?t:void 0,i=e?[e]:[];this.labelSelection.update(this.nodeData).each((n,s)=>{hH(this,n,this.properties,this.properties.label,s.label,!1,t),n.fillOpacity=this.getHighlightStyle(!1,s.datumIndex).opacity??1}),this.highlightLabelSelection.update(i,void 0,n=>this.getDatumId(n)).each((n,s)=>{hH(this,n,this.properties,this.properties.label,s.label,!0,t),n.fillOpacity=this.getHighlightStyle(!0,s.datumIndex).opacity??1})}animateEmptyUpdateReady(){const{labelSelection:t}=this,e=this.getColumnTransitionFunctions();cH.fromToMotion(this.id,"datums",this.ctx.animationManager,[this.itemSelection],e),wgt(this,"labels",this.ctx.animationManager,t,this.highlightLabelSelection)}animateClearingUpdateEmpty(){const{itemSelection:t}=this,{animationManager:e}=this.ctx,i=this.getColumnTransitionFunctions();cH.fromToMotion(this.id,"datums",e,[t],i),Ngt(this,"labels",e,this.labelSelection,this.highlightLabelSelection)}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a}=this,{angleKey:o,angleName:r,radiusKey:l,radiusName:c,legendItemName:u,tooltip:d}=a,g=s[z.Angle],f=s[z.Radius],y=this.nodeData?.[t];if(!i||!n||!g||!f||!y)return;const x=n.dataSources.get(this.id)?.data[t],S=i.resolveKeysById(this,"angleValue",n)[t],D=i.resolveColumnById(this,"radiusValue-raw",n)[t];if(S===void 0&&!this.properties.allowNullKeys)return;const A=gf(this,y,!1);return this.formatTooltipWithContext(d,{heading:this.getAxisValueText(g,"tooltip",S,x,o,void 0),symbol:this.legendItemSymbol(),data:[{label:c,fallbackLabel:l,value:this.getAxisValueText(f,"tooltip",D,x,l,void 0),missing:j.isTooltipValueMissing(D)}]},{seriesId:e,datum:x,title:r,angleKey:o,angleName:r,radiusKey:l,radiusName:c,legendItemName:u,...A})}pickNodeClosestDatum(t){return this.pickNodeNearestDistantObject(t,this.itemSelection.nodes())}legendItemSymbol(){const{fill:t,stroke:e,fillOpacity:i,strokeOpacity:n,strokeWidth:s,lineDash:a,lineDashOffset:o}=tE(this,!1,j.HighlightState.None),r={fill:t??"rgba(0, 0, 0, 0)",stroke:e??"rgba(0, 0, 0, 0)",fillOpacity:i,strokeOpacity:n,strokeWidth:s,lineDash:a,lineDashOffset:o};return an(r.fill)&&(r.fill={...r.fill,gradient:"linear",rotation:0,reverse:!1}),{marker:r}}getLegendData(t){if(t!=="category")return[];const{id:e,visible:i}=this,{radiusKey:n,radiusName:s,legendItemName:a,showInLegend:o}=this.properties;return[{legendType:"category",id:e,itemId:n,seriesId:e,enabled:i,label:{text:a??s??n},symbol:this.legendItemSymbol(),legendItemName:a,hideInLegend:!o}]}getDatumId(t){return Ogt(t.angleValue)}computeLabelsBBox(){return null}},{SeriesProperties:zgt,makeSeriesTooltip:Bgt,Label:Vgt}=j,Hi=class extends zgt{constructor(){super(...arguments),this.angleKeyAxis="angle",this.radiusKeyAxis="radius",this.fill="black",this.fillOpacity=1,this.stroke="black",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.rotation=0,this.label=new Vgt,this.tooltip=Bgt()}getStyle(){const{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,cornerRadius:r}=this;return{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,cornerRadius:r,opacity:1}}};M([b],Hi.prototype,"angleKey");M([b],Hi.prototype,"angleName");M([b],Hi.prototype,"radiusKey");M([b],Hi.prototype,"radiusName");M([b],Hi.prototype,"angleKeyAxis");M([b],Hi.prototype,"radiusKeyAxis");M([b],Hi.prototype,"legendItemName");M([b],Hi.prototype,"fill");M([b],Hi.prototype,"fillOpacity");M([b],Hi.prototype,"stroke");M([b],Hi.prototype,"strokeWidth");M([b],Hi.prototype,"strokeOpacity");M([b],Hi.prototype,"lineDash");M([b],Hi.prototype,"lineDashOffset");M([b],Hi.prototype,"cornerRadius");M([b],Hi.prototype,"styler");M([b],Hi.prototype,"itemStyler");M([b],Hi.prototype,"rotation");M([b],Hi.prototype,"stackGroup");M([b],Hi.prototype,"normalizedTo");M([b],Hi.prototype,"label");M([b],Hi.prototype,"tooltip");var{motion:_gt}=j;function Z5(){const t={startAngle:new Map,endAngle:new Map},e=["startAngle","endAngle"],i=(o,r,l)=>{for(const c of e){const u=t[c];let d=(l==="removed"||l==="updated"?o:r)[c],g=(l==="removed"?o:r)[c];Number.isNaN(g)&&(g=o.previousDatum?.[c]??Number.NaN);const f=d-g;Math.abs(f)>Math.PI&&(d-=Math.sign(f)*2*Math.PI),u.set(r,{from:d,to:g})}},n=(o,r)=>({startAngle:t.startAngle.get(o)[r],endAngle:t.endAngle.get(o)[r]});return{calculate:i,from:o=>n(o,"from"),to:o=>n(o,"to")}}function q5(t,e,i){if(i==="updated"){if(t.previousDatum==null||Number.isNaN(t.previousDatum.startAngle)||Number.isNaN(t.previousDatum.endAngle))return"added";if(Number.isNaN(e.startAngle)||Number.isNaN(e.endAngle))return"removed"}return i==="added"&&t.previousDatum!=null?"updated":i}function Fgt(t){const e=Z5();return{toFn:(s,a,o)=>{const{startAngle:r,endAngle:l}=e.to(a);let c,u,d,g,f;return o==="removed"?(c=s.innerRadius,u=s.innerRadius,d=s.columnWidth,g=s.axisInnerRadius,f=s.axisOuterRadius):(c=Number.isNaN(a.innerRadius)?t:a.innerRadius,u=Number.isNaN(a.outerRadius)?t:a.outerRadius,d=Number.isNaN(a.columnWidth)?s.columnWidth:a.columnWidth,g=a.axisInnerRadius,f=a.axisOuterRadius),{innerRadius:c,outerRadius:u,columnWidth:d,axisInnerRadius:g,axisOuterRadius:f,startAngle:r,endAngle:l}},fromFn:(s,a,o)=>{o=q5(s,a,o),e.calculate(s,a,o);const{startAngle:r,endAngle:l}=e.from(a);let c,u,d,g,f;o==="removed"||o==="updated"?(c=s.innerRadius,u=s.outerRadius,d=s.columnWidth,g=s.axisInnerRadius,f=s.axisOuterRadius):(c=t,u=t,d=a.columnWidth,g=a.axisInnerRadius,f=a.axisOuterRadius);const y=_gt.NODE_UPDATE_STATE_TO_PHASE_MAPPING[o];return{innerRadius:c,outerRadius:u,columnWidth:d,axisInnerRadius:g,axisOuterRadius:f,startAngle:r,endAngle:l,phase:y}}}}function Hgt(t,{innerRadius:e,outerRadius:i,columnWidth:n,axisInnerRadius:s,axisOuterRadius:a,startAngle:o,endAngle:r}){return{innerRadius:e,outerRadius:i,columnWidth:n,axisInnerRadius:s,axisOuterRadius:a,startAngle:o,endAngle:r}}var{SectorBox:QS,motion:jgt}=j;function eE(t){const{negative:e,innerRadius:i,outerRadius:n,stackInnerRadius:s,stackOuterRadius:a}=t;return{innerRadius:e?a:s,outerRadius:e?s:a,clipInnerRadius:e?n:i,clipOuterRadius:e?i:n}}function Ggt(t){const e=Z5();return{toFn:(s,a,o)=>{const{startAngle:r,endAngle:l}=e.to(a);let c,u,d;if(o==="removed")c=t,u=t,d=new QS(r,l,c,u);else{let g,f;({innerRadius:c,outerRadius:u,clipInnerRadius:g,clipOuterRadius:f}=eE(a)),Number.isNaN(c)&&(c=t),Number.isNaN(u)&&(u=t),Number.isNaN(g)&&(g=t),Number.isNaN(f)&&(f=t),d=new QS(r,l,g,f)}return{innerRadius:c,outerRadius:u,startAngle:r,endAngle:l,clipSector:d}},fromFn:(s,a,o)=>{o=q5(s,a,o),e.calculate(s,a,o);const{startAngle:r,endAngle:l}=e.from(a);let c,u,d;o==="removed"||o==="updated"?(c=s.innerRadius,u=s.outerRadius,d=s.clipSector):(c=t,u=t),d??(d=new QS(r,l,c,u));const g=jgt.NODE_UPDATE_STATE_TO_PHASE_MAPPING[o];return{innerRadius:c,outerRadius:u,startAngle:r,endAngle:l,clipSector:d,phase:g}}}}function Ugt(t,e){const{startAngle:i,endAngle:n}=e,{innerRadius:s,outerRadius:a,clipInnerRadius:o,clipOuterRadius:r}=eE(e),l=new QS(i,n,o,r);return{innerRadius:s,outerRadius:a,startAngle:i,endAngle:n,clipSector:l}}var{Sector:Wgt,SectorBox:Kgt}=j,Q5=class extends X5{constructor(t){super(t,{animationResetFns:{item:Ugt}}),this.properties=new Hi}setZIndex(t){return super.setZIndex(t),this.contentGroup.zIndex=[0,gl.FOREGROUND,t],this.highlightGroup.zIndex=[0,gl.HIGHLIGHT,t],this.labelGroup.zIndex=[0,gl.LABEL,t],!0}getStackId(){return`nightingale-stack-${this.seriesGrouping?.groupIndex??this.id}-yValues`}nodeFactory(){return new Wgt}updateItemPath(t,e,i){const{negative:n}=e;if(t.centerX=0,t.centerY=0,t.startOuterCornerRadius=n?0:this.properties.cornerRadius,t.endOuterCornerRadius=n?0:this.properties.cornerRadius,t.startInnerCornerRadius=n?this.properties.cornerRadius:0,t.endInnerCornerRadius=n?this.properties.cornerRadius:0,i){const{startAngle:s,endAngle:a}=e,{innerRadius:o,outerRadius:r,clipInnerRadius:l,clipOuterRadius:c}=eE(e);t.innerRadius=o,t.outerRadius=r,t.startAngle=s,t.endAngle=a,t.clipSector=new Kgt(s,a,l,c)}}getColumnTransitionFunctions(){const t=this.isRadiusAxisReversed()?this.radius:this.getAxisInnerRadius();return Ggt(t)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.styler!=null||this.properties.label.itemStyler!=null}};Q5.className="NightingaleSeries";Q5.type="nightingale";var{nightingaleSeriesThemeableOptionsDef:Ygt}=j,J5={..._e,...Ygt,type:ht(Jt("nightingale")),angleKey:ht(K),radiusKey:ht(K)};J5.angleKeyAxis=Mt(K);J5.radiusKeyAxis=Mt(K);({...Oe},{...Bc}),sn.ANGLE_CATEGORY+"",yf.CIRCLE,sn.RADIUS_NUMBER+"",yf.CIRCLE;sn.ANGLE_CATEGORY,sn.RADIUS_NUMBER,z.X+"",z.Y+"";var{SeriesProperties:$gt,makeSeriesTooltip:Xgt,Label:tY,DropShadow:Zgt}=j,qgt=class extends tY{},iE=class extends tY{constructor(){super(...arguments),this.spacing=0}};M([b],iE.prototype,"spacing");M([b],iE.prototype,"placement");var Wn=class extends $gt{constructor(){super(...arguments),this.fills=[],this.fillOpacity=1,this.strokes=[],this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.direction="vertical",this.reverse=void 0,this.spacing=0,this.aspectRatio=void 0,this.shadow=new Zgt().set({enabled:!1}),this.label=new qgt,this.stageLabel=new iE,this.tooltip=Xgt()}getStyle(t=0){const{fills:e,strokes:i,fillOpacity:n,strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r}=this;return{fill:e[t%e.length],fillOpacity:n,stroke:i[t%i.length],strokeWidth:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,opacity:1}}};M([b],Wn.prototype,"stageKey");M([b],Wn.prototype,"valueKey");M([b],Wn.prototype,"fills");M([b],Wn.prototype,"fillOpacity");M([b],Wn.prototype,"strokes");M([b],Wn.prototype,"strokeWidth");M([b],Wn.prototype,"strokeOpacity");M([b],Wn.prototype,"lineDash");M([b],Wn.prototype,"lineDashOffset");M([b],Wn.prototype,"direction");M([b],Wn.prototype,"reverse");M([b],Wn.prototype,"spacing");M([b],Wn.prototype,"aspectRatio");M([b],Wn.prototype,"itemStyler");M([b],Wn.prototype,"shadow");M([b],Wn.prototype,"label");M([b],Wn.prototype,"stageLabel");M([b],Wn.prototype,"tooltip");function eY(t,{x:e,y:i,top:n,right:s,bottom:a,left:o}){t.x0=e-n/2,t.x1=e+n/2,t.x2=e+a/2,t.x3=e-a/2,t.y0=i-o/2,t.y1=i-s/2,t.y2=i+s/2,t.y3=i+o/2}function Qgt(t){return{fromFn:(s,a)=>{const{x:o,y:r}=a;let{top:l,right:c,bottom:u,left:d}=a;return t==="vertical"?(l=0,u=0):(d=0,c=0),{x:o,y:r,top:l,right:c,bottom:u,left:d}},toFn:(s,a)=>{const{x:o,y:r,top:l,right:c,bottom:u,left:d}=a;return{x:o,y:r,top:l,right:c,bottom:u,left:d}},applyFn:eY}}var{valueProperty:uH,SeriesNodePickMode:dH,createDatumId:Jgt,BBox:Rw,Group:Pw,Selection:Ky,Text:zw,PointerEvents:pH,fromToMotion:tft,seriesLabelFadeInAnimation:eft,getLabelStyles:ift}=j,iY=class extends j.DataModelSeries{constructor(t){super({moduleCtx:t,categoryKey:void 0,pickModes:[dH.EXACT_SHAPE_MATCH,dH.NEAREST_NODE]}),this.properties=new Wn,this.itemGroup=this.contentGroup.appendChild(new Pw({name:"itemGroup"})),this.itemLabelGroup=this.contentGroup.appendChild(new Pw({name:"itemLabelGroup"})),this.stageLabelGroup=this.contentGroup.appendChild(new Pw({name:"stageLabelGroup"})),this.datumSelection=Ky.select(this.itemGroup,()=>this.nodeFactory()),this.labelSelection=Ky.select(this.itemLabelGroup,zw),this.stageLabelSelection=Ky.select(this.stageLabelGroup,zw),this.highlightLabelSelection=Ky.select(this.highlightLabelGroup,zw),this.highlightDatumSelection=Ky.select(this.highlightNodeGroup,()=>this.nodeFactory()),this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:()=>this.animateEmptyUpdateReady()},reset:"empty",skip:"ready"},ready:{clear:"empty",reset:"empty",skip:"ready"}},()=>this.checkProcessedDataAnimatable()),this.itemLabelGroup.pointerEvents=pH.None,this.stageLabelGroup.pointerEvents=pH.None,this.cleanup.register(this.ctx.eventsHub.on("legend:item-click",e=>this.onLegendItemClick(e)))}nodeFactory(){return new Gl}getNodeData(){return this.contextNodeData?.nodeData}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"&&this.animationState.transition("skip")}async processData(t){if(this.data==null)return;const{id:e,visible:i,ctx:{legendManager:n}}=this,{stageKey:s,valueKey:a}=this.properties,o="category",r="number",l=(d,g,f)=>i&&n.getItemEnabled({seriesId:e,itemId:f}),c=this.visible?{}:{forceValue:0},u=this.properties.allowNullKeys??!1;await this.requestDataModel(t,this.data,{props:[uH(s,o,{id:"xValue",allowNullKey:u}),uH(a,r,{id:"yValue",...c,validation:l,invalidValue:0})]})}createNodeData(){const{id:t,dataModel:e,processedData:i,properties:n,visible:s,ctx:{legendManager:a}}=this,{stageKey:o,valueKey:r,direction:l,reverse:c=l==="horizontal",spacing:u,aspectRatio:d,label:g,stageLabel:f}=n;if(e==null||i==null)return;const y=l==="horizontal",x=e.resolveColumnById(this,"xValue",i),S=e.resolveColumnById(this,"yValue",i),D=e.getDomain(this,"xValue","value",i).domain,A=e.getDomain(this,"yValue","value",i).domain,I=this.ctx.domManager.isRtl,w=Ve(f),N=f.placement==="after"===I;let O,L;y?(O="center",L=f.placement==="before"?"bottom":"top"):(O=N?"right":"left",L="middle");const R=f.enabled?[]:void 0;let P=0,B=0,F=0;const H=i.dataSources.get(this.id)?.data??[];for(const[mt,Dt]of H.entries()){const kt=x[mt];if(kt===void 0&&!this.properties.allowNullKeys)continue;const Vt=S[mt],Kt=s&&a.getItemEnabled({seriesId:t,itemId:mt});if(F+=Vt,R==null)continue;const ae=this.getLabelText(kt,Dt,o,"x",D,this.properties.stageLabel,{datum:Dt,value:Vt,stageKey:o,valueKey:r},this.properties.allowNullKeys??!1),{width:ne,height:Qt}=qt(ae)?Va(ae,g):w.measureLines(bi(ae));P=Math.max(P,ne),B=Math.max(B,Qt),R.push({x:Number.NaN,y:Number.NaN,text:ae,textAlign:O,textBaseline:L,visible:Kt})}const $=this._nodeDataDependencies?.seriesRectWidth??0,Y=this._nodeDataDependencies?.seriesRectHeight??0,U=u*(i.input.count-1);let V;if(y){const mt=B+f.spacing;V=new Rw(0,f.placement==="before"?mt:0,$,Y-mt)}else{const mt=P+f.spacing;V=new Rw(N?mt:0,0,$-mt,Y)}if(d!=null&&d!==0){const mt=l==="horizontal"?1/d:d,Dt=Math.min(V.width,V.height*mt),kt=Dt/mt;V=new Rw(V.x+(V.width-Dt)/2,V.y+(V.height-kt)/2,Dt,kt)}let Z,W;y?W=f.placement==="before"?V.y-f.spacing:V.y+V.height+f.spacing:Z=N?V.x-f.spacing:V.x+V.width+f.spacing;const q=V.width-(y?U:0),nt=V.height-(y?0:U);if(q<0||nt<0)return;const G=[],et=[];let st=0,lt=0;for(const[mt,Dt]of H.entries()){const kt=x[mt];if(kt===void 0&&!this.properties.allowNullKeys)continue;const Vt=S[mt],Kt=s&&a.getItemEnabled({seriesId:t,itemId:mt}),ae=st+Vt,ne=(st+ae)/(2*F),Qt=(ae-st)/F,zt=y?q*ne+u*mt:q*.5,Pt=y?nt*.5:nt*ne+u*mt,ue=V.x+zt,oe=V.y+Pt;if(R!=null){const ln=R[lt++];ln.x=Z??ue,ln.y=W??oe}let ke,Ye,Ce,Di;if(y){const ln=q*Qt;ke=ln,Ce=ln;const mi=(zt+ln/2)*(nt/V.width),Ya=(zt-ln/2)*(nt/V.width);Ye=c?V.height-mi:mi,Di=c?V.height-Ya:Ya}else{const ln=nt*Qt;Ye=ln,Di=ln;const mi=(Pt-ln/2)*(q/V.height),Ya=(Pt+ln/2)*(q/V.height);ke=c?V.width-mi:mi,Ce=c?V.width-Ya:Ya}const zn=this.getLabelText(Vt,Dt,r,"y",A,g,{datum:Dt,value:Vt,stageKey:o,valueKey:r}),Kn={x:ue,y:oe,text:zn,textAlign:"center",textBaseline:"middle",visible:Kt};et.push(Kn),G.push({series:this,datum:Dt,datumIndex:mt,index:mt,xValue:kt,yValue:Vt,x:ue,y:oe,top:ke,right:Ye,bottom:Ce,left:Di,label:Kn,enabled:Kt,midPoint:{x:ue,y:oe},style:this.getItemStyle({datumIndex:mt,datum:Dt},!1)}),st=ae}return{itemId:t,nodeData:G,labelData:et,stageLabelData:R,bounds:V}}updateSelections(){this.nodeDataRefresh&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}update({seriesRect:t}){this.checkResize(t);const{datumSelection:e,labelSelection:i,stageLabelSelection:n,highlightDatumSelection:s,highlightLabelSelection:a}=this;this.updateSelections(),this.contentGroup.visible=this.visible,this.contentGroup.opacity=this.getOpacity();let o=this.ctx.highlightManager?.getActiveHighlight();o!=null&&(o.series!==this||o.datum==null)&&(o=void 0);const r=this.contextNodeData?.nodeData??[],l=this.contextNodeData?.labelData??[],c=this.contextNodeData?.stageLabelData??[];this.datumSelection=this.updateDatumSelection({nodeData:r,datumSelection:e}),this.updateDatumStyles({datumSelection:e,isHighlight:!1}),this.updateDatumNodes({datumSelection:e,isHighlight:!1}),this.labelSelection=this.updateLabelSelection({labelData:l,labelSelection:i}),this.updateLabelNodes({labelSelection:i,labelProperties:this.properties.label}),this.stageLabelSelection=this.updateStageLabelSelection({stageLabelData:c,stageLabelSelection:n}),this.updateLabelNodes({labelSelection:n,labelProperties:this.properties.stageLabel,checkActiveHighlight:!0});const u=this.getHighlightLabelData(l,o)??[];this.highlightLabelSelection=a.update(u),this.updateLabelNodes({labelSelection:this.highlightLabelSelection,labelProperties:this.properties.label,isHighlight:!0}),this.highlightDatumSelection=this.updateDatumSelection({nodeData:o==null?[]:[o],datumSelection:s}),this.updateDatumStyles({datumSelection:s,isHighlight:!0}),this.updateDatumNodes({datumSelection:s,isHighlight:!0}),this.animationState.transition("update")}updateDatumSelection(t){return t.datumSelection.update(t.nodeData)}getItemStyle({datumIndex:t,datum:e},i){const{properties:n}=this,{itemStyler:s}=n,a=this.getHighlightStyle(i,t);let r=Et(a,n.getStyle(t));if(s!=null&&t!=null){const l=this.cachedDatumCallback(Jgt(t,i?"highlight":"node"),()=>{const c=this.makeItemStylerParams(e,t,i,r);return this.callWithContext(s,c)});l&&(r=Et(l,r))}return r}makeItemStylerParams(t,e,i,n){const{id:s,properties:a}=this,{stageKey:o,valueKey:r}=a,l=this.ctx.highlightManager?.getActiveHighlight(),c=this.getHighlightStateString(l,i,e),u=this.filterItemStylerFillParams(n.fill)??n.fill;return{seriesId:s,datum:t,stageKey:o,valueKey:r,highlightState:c,...n,fill:u}}updateDatumStyles({datumSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getItemStyle(n,e)})}updateDatumNodes({datumSelection:t}){const{properties:e}=this,{shadow:i}=e,n=this.contextNodeData?.bounds,s=n?{series:n,axis:n}:void 0;t.each((a,o)=>{a.setStyleProperties(o.style,s),eY(a,o),a.fillShadow=i})}updateLabelSelection(t){return t.labelSelection.update(this.properties.label.enabled?t.labelData:[])}updateStageLabelSelection(t){return t.stageLabelSelection.update(t.stageLabelData)}updateLabelNodes(t){const e=this.ctx.highlightManager?.getActiveHighlight(),{labelSelection:i,labelProperties:n,isHighlight:s=!1,checkActiveHighlight:a=!1}=t;i.each((o,r,l)=>{const{visible:c,x:u,y:d,text:g,textAlign:f,textBaseline:y}=r,x=s||a&&e?.datumIndex===l,S=this.getHighlightStyle(x,l),D=ift(this,void 0,this.properties,n,x,e),{color:A,fontSize:I,fontStyle:w,fontWeight:N,fontFamily:O}=D;o.visible=c,o.x=u,o.y=d,o.text=g,o.fill=A,o.opacity=(S.opacity??1)*(D.fillOpacity??1),o.fillOpacity=(S.opacity??1)*(D.fillOpacity??1),o.fontStyle=w,o.fontWeight=N,o.fontSize=I,o.fontFamily=O,o.textAlign=f,o.textBaseline=y,o.setBoxing(D)})}getHighlightLabelData(t,e){if(e?.label)return[{...e.label}]}computeFocusBounds(t){const e=this.getNodeData()?.[t.datumIndex];if(e!==void 0){for(const i of this.datumSelection)if(i.datum===e)return i.node}}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,properties:s}=this,{stageKey:a,valueKey:o,tooltip:r}=s;if(!i||!n)return;const l=n.dataSources.get(this.id)?.data[t],c=i.resolveColumnById(this,"xValue",n)[t],u=i.resolveColumnById(this,"yValue",n)[t],d=this.properties.allowNullKeys??!1;if(c===void 0&&!d)return;const g=this.getLabelText(c,l,a,"x",i.getDomain(this,"xValue","value",n).domain,this.properties.stageLabel,{datum:l,value:c,stageKey:a,valueKey:o}),f=this.getItemStyle({datumIndex:t,datum:l},!1);return this.formatTooltipWithContext(r,{symbol:this.legendItemSymbol(t),data:[{label:ce(g),value:ce(u)}]},{seriesId:e,datum:l,title:void 0,stageKey:a,valueKey:o,...f})}getSeriesDomain(){return{domain:[Number.NaN,Number.NaN]}}getSeriesRange(){return[Number.NaN,Number.NaN]}pickNodeClosestDatum({x:t,y:e}){let i=1/0,n;return this.datumSelection.each((s,a)=>{const o=s.distanceSquared(t,e);o{const u=r[c],d=this.properties.allowNullKeys??!1;if(!(u==null&&!d))return{legendType:"category",id:n,datum:l,itemId:c,seriesId:n,enabled:a&&s.getItemEnabled({seriesId:n,itemId:c}),label:{text:String(u)},symbol:this.legendItemSymbol(c),hideInLegend:!o}}).filter(l=>l!=null)}animateReset(){this.ctx.animationManager.skipCurrentBatch(),this.ctx.animationManager.stopByAnimationGroupId(this.id)}animateEmptyUpdateReady(){const{datumSelection:t,labelSelection:e,properties:i}=this,n=Qgt(i.direction);tft(this.id,"nodes",this.ctx.animationManager,[t],n),eft(this,"labels",this.ctx.animationManager,e)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.label.itemStyler!=null}};iY.className="PyramidSeries";iY.type="pyramid";var{pyramidSeriesThemeableOptionsDef:nft}=j;({...nft,..._e,type:ht(Jt("pyramid")),stageKey:ht(K),valueKey:ht(K)});({...Oe},{...Oe});var nY={series:{stroke:{$palette:"stroke"},label:{...Oe,enabled:!1,fontSize:{$ref:"fontSize"},fontFamily:{$ref:"fontFamily"},fontWeight:{$ref:"fontWeight"},color:{$ref:"textColor"}},marker:{enabled:!0,fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Sp],["image",$s],["pattern",Cs]]},stroke:{$palette:"stroke"},fillOpacity:1,shape:"circle",size:6,strokeOpacity:1,strokeWidth:{$isUserOption:["./stroke",1,0]}},highlight:fD,tooltip:{range:{$path:["/tooltip/range","nearest"]}}},axes:{[sn.ANGLE_CATEGORY]:{label:{spacing:10}}}};Et({series:{stroke:bx,strokeWidth:2}},nY);Et({series:{fill:{$applySwitch:[{$path:"type"},{$palette:"fill"},["gradient",Tl],["image",$s],["pattern",Cs]]},fillOpacity:.8,strokeWidth:2,marker:{enabled:!1}}},nY);var{Label:sft,SeriesMarker:aft,SeriesProperties:oft,makeSeriesTooltip:rft}=j,Pn=class extends oft{constructor(){super(...arguments),this.angleKeyAxis="angle",this.radiusKeyAxis="radius",this.stroke="black",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.rotation=0,this.marker=new aft,this.label=new sft,this.tooltip=rft(),this.connectMissingData=!1}};M([b],Pn.prototype,"angleKey");M([b],Pn.prototype,"radiusKey");M([b],Pn.prototype,"angleName");M([b],Pn.prototype,"radiusName");M([b],Pn.prototype,"angleKeyAxis");M([b],Pn.prototype,"radiusKeyAxis");M([b],Pn.prototype,"legendItemName");M([b],Pn.prototype,"stroke");M([b],Pn.prototype,"strokeWidth");M([b],Pn.prototype,"strokeOpacity");M([b],Pn.prototype,"lineDash");M([b],Pn.prototype,"lineDashOffset");M([b],Pn.prototype,"rotation");M([b],Pn.prototype,"styler");M([b],Pn.prototype,"marker");M([b],Pn.prototype,"label");M([b],Pn.prototype,"tooltip");M([b],Pn.prototype,"connectMissingData");var{DEFAULT_POLAR_DIRECTION_KEYS:lft,DEFAULT_POLAR_DIRECTION_NAMES:cft,PolarAxis:hft,SeriesNodePickMode:gH,keyProperty:uft,valueProperty:dft,fixNumericExtent:pft,seriesLabelFadeInAnimation:gft,markerFadeInAnimation:fft,resetMarkerFn:mft,resetLabelFn:yft,animationValidation:bft,computeMarkerFocusBounds:xft,BBox:vft,Group:Sft,Path:Mft,Selection:Bw,Text:Dft,Marker:Aft,updateLabelNode:fH,getMarkerStyles:Ift}=j,kft=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.angleKey=n.properties.angleKey,this.radiusKey=n.properties.radiusKey}},nE=class extends j.PolarSeries{constructor(t){super({moduleCtx:t,categoryKey:"angleValue",propertyKeys:lft,propertyNames:cft,pickModes:[gH.NEAREST_NODE,gH.EXACT_SHAPE_MATCH],canHaveAxes:!0,animationResetFns:{item:mft,label:yft},clipFocusBox:!1}),this.NodeEvent=kft,this.lineGroup=this.contentGroup.appendChild(new Sft({name:"radar-line"})),this.lineSelection=Bw.select(this.lineGroup,Mft),this.resetInvalidToZero=!1,this.circleCache={r:0,cx:0,cy:0},this.lineGroup.zIndex=0,this.itemGroup.zIndex=1}renderToOffscreenCanvas(){return(this.nodeData?.length??0)>0&&this.getDrawingMode(!1)==="cutout"||super.renderToOffscreenCanvas()}nodeFactory(){return new Aft}getSeriesDomain(t){const{dataModel:e,processedData:i}=this;if(!i||!e)return{domain:[]};if(t===z.Angle){const n=e.getDomain(this,"angleValue","key",i).domain,s=e.getKeySortMetadata(this,"angleValue",i);return{domain:n,sortMetadata:s}}else{const n=e.getDomain(this,"radiusValue","value",i).domain,s=Ll(n.length===0?n:[0].concat(n));return{domain:pft(s)}}}async processData(t){const{angleKey:e,radiusKey:i}=this.properties,n=[];this.ctx.animationManager.isSkipped()||n.push(bft());const s=this.axes[z.Radius]?.scale.type,a=this.axes[z.Angle]?.scale.type,o=this.properties.allowNullKeys??!1;await this.requestDataModel(t,this.data,{props:[uft(e,a,{id:"angleValue",allowNullKey:o}),dft(i,s,{id:"radiusValue",invalidValue:void 0}),...n]}),this.animationState.transition("updateData")}didCircleChange(){const t=this.radius,e=this.centerX,i=this.centerY,n=this.circleCache;return t===n.r&&e===n.cx&&i===n.cy?!1:(this.circleCache={r:t,cx:e,cy:i},!0)}getAxisInnerRadius(){const t=this.axes[z.Radius];return t instanceof hft?this.radius*t.innerRadiusRatio:0}maybeRefreshNodeData(){!this.didCircleChange()&&!this.nodeDataRefresh||(this.contextNodeData=this.createNodeData(),this.nodeData=this.contextNodeData?.nodeData??[],this.nodeDataRefresh=!1)}createNodeData(){const{processedData:t,dataModel:e}=this;if(!t||!e)return;const{angleKey:i,radiusKey:n,angleName:s,radiusName:a,legendItemName:o,marker:r,label:l}=this.properties,c=this.axes[z.Angle]?.scale,u=this.axes[z.Radius]?.scale;if(!c||!u)return;const d=e.resolveKeysById(this,"angleValue",t),g=e.resolveColumnById(this,"radiusValue",t),f=this.getAxisInnerRadius(),y=this.getSeriesDomain(z.Radius).domain,x=t.dataSources.get(this.id)?.data??[],S=this.properties.allowNullKeys??!1,D=[];for(let A=0;A0&&(Y="left");let U="bottom";be(P,0)?U="middle":P>0&&(U="top"),H={x:B+R*r.size,y:F+P*r.size,text:$,textAlign:Y,textBaseline:U}}}D.push({series:this,datum:I,datumIndex:A,index:A,point:{x:B,y:F,size:r.size},midPoint:{x:B,y:F},label:H,angleValue:w,radiusValue:N,missing:!Ae(O)||!Ae(L)})}return{itemId:n,nodeData:D,labelData:D,styles:Ift(this,this.properties,r)}}update({seriesRect:t}){const e=this.checkResize(t),i=!this.ctx.animationManager.isSkipped(),{series:n}=this.ctx.highlightManager?.getActiveHighlight()??{};this.highlightGroup.visible=(i||this.visible)&&n===this,this.maybeRefreshNodeData(),this.contentGroup.translationX=this.centerX,this.contentGroup.translationY=this.centerY,this.highlightGroup.translationX=this.centerX,this.highlightGroup.translationY=this.centerY,this.labelGroup&&(this.labelGroup.translationX=this.centerX,this.labelGroup.translationY=this.centerY),this.updatePathSelections(),this.updateMarkerSelection(),this.updateHighlightSelection(),this.updatePathNodes(),this.hasItemStylers()&&(this.updateDatumStyles(this.itemSelection,!1),this.updateDatumStyles(this.highlightSelection,!0));const s=this.ctx.chartService.highlight?.drawingMode??"overlay";this.updateMarkers(this.itemSelection,!1,"overlay"),this.updateMarkers(this.highlightSelection,!0,s),this.updateLabels(),e&&this.animationState.transition("resize"),this.animationState.transition("update")}updatePathSelections(){const t=this.visible?[!0]:[];this.lineSelection.update(t)}updateMarkerSelection(){const{marker:t,styler:e}=this.properties;t.isDirty()&&(this.itemSelection.clear(),this.itemSelection.cleanup(),this.itemSelection=Bw.select(this.itemGroup,()=>this.nodeFactory(),!1));const i=e==null?t.enabled:this.getStyle().marker.enabled,n=this.visible&&t.shape&&i?this.nodeData:[];this.itemSelection.update(n)}updateHighlightSelection(){const{marker:t,styler:e}=this.properties;t.isDirty()&&(this.highlightSelection.clear(),this.highlightSelection.cleanup(),this.highlightSelection=Bw.select(this.highlightGroup,()=>this.nodeFactory(),!1));const i=e==null?t.enabled:this.getStyle().marker.enabled,n=this.ctx.highlightManager?.getActiveHighlight(),s=this.visible&&t.shape&&i&&n?.datum?[{...n}]:[];this.highlightSelection.update(s)}getMarkerFill(t){return t?.fill??this.getStyle().marker.fill}getDatumStylerProperties(t){const{id:e,properties:i}=this,{angleKey:n,radiusKey:s}=i;return{seriesId:e,datum:t,angleKey:n,radiusKey:s}}updateDatumStyles(t,e){const i=this.ctx.highlightManager.getActiveHighlight();t.each((n,s)=>{const a=this.getHighlightState(i,e,s.datumIndex),o=this.getStyle(a),{stroke:r,strokeWidth:l,strokeOpacity:c}=o;s.style=this.getMarkerStyle(this.properties.marker,s,this.getDatumStylerProperties(s.datum),{isHighlight:e,highlightState:a},o.marker,{stroke:r,strokeWidth:l,strokeOpacity:c})})}updateMarkers(t,e,i){const n=this.getShapeFillBBox(),{contextNodeData:s}=this;if(!s)return;const a=this.ctx.highlightManager.getActiveHighlight();i=this.getDrawingMode(e,i),t.each((o,r)=>{const l=r.style??s.styles[this.getHighlightState(a,e,r.datumIndex)];this.applyMarkerStyle(l,o,r.point,n),o.drawingMode=i})}updateLabels(){const{properties:t}=this,e=this.ctx.highlightManager?.getActiveHighlight(),i=e?.series===this&&e?.datum?[{...e}]:[];this.labelSelection.update(this.nodeData).each((n,s)=>{s.label&&(n.fillOpacity=this.getHighlightStyle(!1,s.datumIndex).opacity??1,fH(this,n,t,t.label,s.label,!1,e))}),this.highlightLabelSelection.update(i).each((n,s)=>{s.label&&(n.fillOpacity=this.getHighlightStyle(!0,s.datumIndex).opacity??1,fH(this,n,t,t.label,s.label,!0,e))})}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a}=this,{angleKey:o,angleName:r,radiusKey:l,radiusName:c,legendItemName:u,tooltip:d,marker:g}=a,f=s[z.Angle],y=s[z.Radius];if(!i||!n||!f||!y)return;const x=n.dataSources.get(this.id)?.data[t],S=i.resolveKeysById(this,"angleValue",n)[t],D=i.resolveColumnById(this,"radiusValue",n)[t],A=this.properties.allowNullKeys??!1;if(S===void 0&&!A)return;const I=this.getMarkerStyle(g,{datum:x,datumIndex:t},this.getDatumStylerProperties(x),{isHighlight:!1});return this.formatTooltipWithContext(d,{heading:this.getAxisValueText(f,"tooltip",S,x,o,void 0,A),symbol:this.legendItemSymbol(),data:[{label:c,fallbackLabel:l,value:this.getAxisValueText(y,"tooltip",D,x,l,void 0),missing:j.isTooltipValueMissing(D)}]},{seriesId:e,datum:x,title:r,angleKey:o,radiusKey:l,angleName:r,radiusName:c,legendItemName:u,...I})}legendItemSymbol(){const{stroke:t,strokeWidth:e,strokeOpacity:i,lineDash:n,marker:s}=this.getStyle();return{marker:{shape:s.shape,enabled:s.enabled||e<=0,fill:this.getMarkerFill()??s.stroke??t??"rgba(0, 0, 0, 0)",stroke:s.stroke??t??"rgba(0, 0, 0, 0)",fillOpacity:s.fillOpacity,strokeOpacity:s.strokeOpacity,strokeWidth:s.strokeWidth,lineDash:s.lineDash,lineDashOffset:s.lineDashOffset},line:{enabled:!0,stroke:t,strokeOpacity:i,strokeWidth:e,lineDash:n}}}getLegendData(t){if(t!=="category")return[];const{id:e,ctx:{legendManager:i},visible:n}=this,{radiusKey:s,radiusName:a,legendItemName:o,showInLegend:r}=this.properties;return[{legendType:"category",id:e,itemId:s,seriesId:e,enabled:n&&i.getItemEnabled({seriesId:e,itemId:s}),label:{text:o??a??s},symbol:this.legendItemSymbol(),legendItemName:o,hideInLegend:!r}]}pickNodeClosestDatum(t){const{nodeData:e,centerX:i,centerY:n}=this,{x:s,y:a}=t,o=this.radius;if(Math.hypot(s-i,a-n)>o+this.maxChartMarkerSize)return;let l=1/0,c;for(const u of e){const{point:{x:d=Number.NaN,y:g=Number.NaN}={}}=u;if(Number.isNaN(d)||Number.isNaN(g))continue;const f=Math.hypot(t.x-d-i,t.y-g-n);fthis.animatePaths(n),onStop:()=>this.animatePaths(1)}),fft(this,i,"added",this.getAnimationDrawingModes(),t),gft(this,"labels",i,e,this.highlightLabelSelection)}animateWaitingUpdateReady(t){super.animateWaitingUpdateReady(t),this.resetPaths()}animateReadyResize(t){super.animateReadyResize(t),this.resetPaths()}resetPaths(){const t=this.getLineNode();if(t){const{path:e}=t,i=this.getLinePoints(),n=this.getStyle();t.fill=void 0,t.stroke=n.stroke,t.strokeWidth=n.strokeWidth,t.strokeOpacity=n.strokeOpacity,t.lineDash=n.lineDash,t.lineDashOffset=n.lineDashOffset,e.clear(!0);for(const{x:s,y:a,moveTo:o}of i)o?e.moveTo(s,a):e.lineTo(s,a);return t.checkPathDirty(),n}}getStylerResult(t,e){const{styler:i}=this.properties;if(i){const n=this.makeStylerParams(e),s=this.cachedCallWithContext(i,n)??{},a=this.ctx.optionsGraphService.resolvePartial(["series",`${this.declarationOrder}`],s,{pick:!1});a&&(t=a)}return t}getFormattedMarkerStyle(t){const{angleKey:e,radiusKey:i}=this.properties;return this.getMarkerStyle(this.properties.marker,t,{angleKey:e,radiusKey:i},{isHighlight:!0})}computeFocusBounds(t){return xft(this,t)}hasItemStylers(){return this.properties.styler!=null||this.properties.marker.itemStyler!=null||this.properties.label.itemStyler!=null}};nE.className="RadarSeries";var sE=class extends Pn{constructor(){super(...arguments),this.fill="black",this.fillOpacity=1}};M([b],sE.prototype,"fill");M([b],sE.prototype,"fillOpacity");var{Group:Cft,HighlightState:wft,Path:Nft,PointerEvents:mH,Selection:Tft,toHighlightString:Lft}=j,sY=class extends nE{constructor(t){super(t),this.properties=new sE,this.areaGroup=this.contentGroup.appendChild(new Cft({name:"radar-area"})),this.areaSelection=Tft.select(this.areaGroup,Nft),this.resetInvalidToZero=!0,this.areaGroup.zIndex=-1}updatePathSelections(){const t=this.visible?[!0]:[];this.areaSelection.update(t),super.updatePathSelections()}getAreaNode(){return this.areaSelection.at(0)}getMarkerFill(t){if(t?.fill!=null)return t.fill;const e=this.getStyle();return e.marker.fill??e.fill}updatePathNodes(){const t=this.getPathNodesStyle(),{fill:e,fillOpacity:i,strokeWidth:n,stroke:s,strokeOpacity:a,lineDash:o,lineDashOffset:r,opacity:l}=t,c=this.getLineNode();c&&c.setProperties({fill:void 0,lineJoin:"round",lineCap:"round",pointerEvents:mH.None,opacity:l,stroke:s,strokeWidth:n,strokeOpacity:a,lineDash:o,lineDashOffset:r});const u=this.getAreaNode();u&&(u.setStyleProperties({fill:e,fillOpacity:i,stroke:void 0},this.getShapeFillBBox()),u.setProperties({lineJoin:"round",pointerEvents:mH.None,opacity:l}))}animatePaths(t){super.animatePaths(t);const e=this.getAreaNode();e&&this.animateSinglePath(e,this.getAreaPoints(),t)}getAreaPoints(){const t=this.getLinePoints(),e=o=>{const r=this.axes[o];return r instanceof j.PolarAxis?r:void 0},i=e(z.Radius),n=e(z.Angle);if(!i?.isReversed())return t;const a=n?.getAxisLinePoints()?.points??[];return t.concat(...a)}resetPaths(){const t=super.resetPaths(),e=this.getAreaNode();if(e){const{path:i}=e,n=this.getAreaPoints(),s=t??this.getStyle(),a=this.getShapeFillBBox();e.setStyleProperties({fill:s.fill,stroke:void 0,fillOpacity:s.fillOpacity,lineDash:s.lineDash,lineDashOffset:s.lineDashOffset},a),e.lineJoin=e.lineCap="round",i.clear(!0);for(const{x:o,y:r,moveTo:l,arc:c,radius:u=0,startAngle:d=0,endAngle:g=0}of n)c?i.arc(o,r,u,d,g):l?i.moveTo(o,r):i.lineTo(o,r);return i.closePath(),e.checkPathDirty(),s}}makeStylerParams(t){const{properties:e}=this,i=Lft(t??wft.None);return{marker:{fill:e.marker.fill,fillOpacity:e.marker.fillOpacity,size:e.marker.size,shape:e.marker.shape,stroke:e.marker.stroke,strokeOpacity:e.marker.strokeOpacity,strokeWidth:e.marker.strokeWidth,lineDash:e.marker.lineDash,lineDashOffset:e.marker.lineDashOffset},highlightState:i,fill:e.fill,fillOpacity:e.fillOpacity,lineDash:e.lineDash,lineDashOffset:e.lineDashOffset,seriesId:this.id,stroke:e.stroke,strokeOpacity:e.strokeOpacity,strokeWidth:e.strokeWidth,angleKey:e.angleKey,radiusKey:e.radiusKey}}getStyle(t){const{marker:e,fill:i,fillOpacity:n,lineDash:s,lineDashOffset:a,stroke:o,strokeOpacity:r,strokeWidth:l}=this.properties,{size:c,shape:u,fill:d="transparent",fillOpacity:g}=e,f=this.getStylerResult({},t);return f.marker??(f.marker={}),{fill:f.fill??i,fillOpacity:f.fillOpacity??n,lineDash:f.lineDash??s,lineDashOffset:f.lineDashOffset??a,stroke:f.stroke??o,strokeOpacity:f.strokeOpacity??r,strokeWidth:f.strokeWidth??l,marker:{enabled:f.marker.enabled??e.enabled,fill:f.marker.fill??d,fillOpacity:f.marker.fillOpacity??g,shape:f.marker.shape??u,size:f.marker.size??c,lineDash:f.marker.lineDash??e.lineDash??s,lineDashOffset:f.marker.lineDashOffset??e.lineDashOffset??a,stroke:f.marker.stroke??e.stroke??o,strokeOpacity:f.marker.strokeOpacity??e.strokeOpacity??r,strokeWidth:f.marker.strokeWidth??e.strokeWidth??l}}}};sY.className="RadarAreaSeries";sY.type="radar-area";var{radarAreaSeriesThemeableOptionsDef:Oft}=j,aY={..._e,...Oft,type:ht(Jt("radar-area")),angleKey:ht(K),radiusKey:ht(K)};aY.angleKeyAxis=Mt(K);aY.radiusKeyAxis=Mt(K);sn.ANGLE_CATEGORY,sn.RADIUS_NUMBER,z.Angle+"",z.Radius+"";var{HighlightState:Eft,PointerEvents:Rft,toHighlightString:Pft}=j,oY=class extends nE{constructor(){super(...arguments),this.properties=new Pn}updatePathSelections(){this.lineSelection.update(this.visible?[!0]:[])}updatePathNodes(){const t=this.getLineNode();if(!t)return;const e=this.getPathNodesStyle(),{strokeWidth:i,stroke:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,opacity:r}=e;t.setProperties({fill:void 0,lineJoin:"round",lineCap:"round",pointerEvents:Rft.None,opacity:r,stroke:n,strokeWidth:i,strokeOpacity:s,lineDash:a,lineDashOffset:o})}makeStylerParams(t){const{properties:e}=this,i=Pft(t??Eft.None);return{marker:{fill:e.marker.fill,fillOpacity:e.marker.fillOpacity,size:e.marker.size,shape:e.marker.shape,stroke:e.marker.stroke,strokeOpacity:e.marker.strokeOpacity,strokeWidth:e.marker.strokeWidth,lineDash:e.marker.lineDash,lineDashOffset:e.marker.lineDashOffset},highlightState:i,lineDash:e.lineDash,lineDashOffset:e.lineDashOffset,seriesId:this.id,stroke:e.stroke,strokeOpacity:e.strokeOpacity,strokeWidth:e.strokeWidth,angleKey:e.angleKey,radiusKey:e.radiusKey}}getStyle(t){const{marker:e,lineDash:i,lineDashOffset:n,stroke:s,strokeOpacity:a,strokeWidth:o}=this.properties,{size:r,shape:l,fill:c="transparent",fillOpacity:u}=e,d=this.getStylerResult({},t);return d.marker??(d.marker={}),{lineDash:d.lineDash??i,lineDashOffset:d.lineDashOffset??n,stroke:d.stroke??s,strokeOpacity:d.strokeOpacity??a,strokeWidth:d.strokeWidth??o,marker:{enabled:d.marker.enabled??e.enabled,fill:d.marker.fill??c,fillOpacity:d.marker.fillOpacity??u,shape:d.marker.shape??l,size:d.marker.size??r,lineDash:d.marker.lineDash??e.lineDash??i,lineDashOffset:d.marker.lineDashOffset??e.lineDashOffset??n,stroke:d.marker.stroke??e.stroke??s,strokeOpacity:d.marker.strokeOpacity??e.strokeOpacity??a,strokeWidth:d.marker.strokeWidth??e.strokeWidth??o}}}};oY.className="RadarLineSeries";oY.type="radar-line";var{radarLineSeriesThemeableOptionsDef:zft}=j,rY={..._e,...zft,type:ht(Jt("radar-line")),angleKey:ht(K),radiusKey:ht(K)};rY.angleKeyAxis=Mt(K);rY.radiusKeyAxis=Mt(K);sn.ANGLE_CATEGORY,sn.RADIUS_NUMBER,z.Angle+"",z.Radius+"";var{SeriesProperties:Bft,makeSeriesTooltip:Vft,Label:_ft}=j,tn=class extends Bft{constructor(){super(...arguments),this.angleKeyAxis="angle",this.radiusKeyAxis="radius",this.fill="black",this.fillOpacity=1,this.stroke="black",this.strokeWidth=1,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.cornerRadius=0,this.rotation=0,this.label=new _ft,this.tooltip=Vft()}getStyle(){const{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,cornerRadius:r}=this;return{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o,cornerRadius:r,opacity:1}}};M([b],tn.prototype,"angleKey");M([b],tn.prototype,"radiusKey");M([b],tn.prototype,"angleName");M([b],tn.prototype,"radiusName");M([b],tn.prototype,"angleKeyAxis");M([b],tn.prototype,"radiusKeyAxis");M([b],tn.prototype,"legendItemName");M([b],tn.prototype,"fill");M([b],tn.prototype,"fillOpacity");M([b],tn.prototype,"stroke");M([b],tn.prototype,"strokeWidth");M([b],tn.prototype,"strokeOpacity");M([b],tn.prototype,"lineDash");M([b],tn.prototype,"lineDashOffset");M([b],tn.prototype,"cornerRadius");M([b],tn.prototype,"styler");M([b],tn.prototype,"itemStyler");M([b],tn.prototype,"rotation");M([b],tn.prototype,"stackGroup");M([b],tn.prototype,"normalizedTo");M([b],tn.prototype,"label");M([b],tn.prototype,"tooltip");var{SectorBox:yH,motion:Fft}=j;function Hft(t,e,i){if(i==="updated"){if(t.previousDatum==null||Number.isNaN(t.previousDatum.innerRadius)||Number.isNaN(t.previousDatum.outerRadius))return"added";if(Number.isNaN(e.innerRadius)||Number.isNaN(e.outerRadius))return"removed"}return i==="added"&&t.previousDatum!=null?"updated":i}function bH(t){return{toFn:(n,s,a)=>{let o,r,l,c,u;return a==="removed"?(o=t,r=t,l=s.innerRadius,c=s.outerRadius,u=new yH(o,r,l,c)):(o=s.startAngle,r=s.endAngle,l=Number.isNaN(s.innerRadius)?n.innerRadius:s.innerRadius,c=Number.isNaN(s.outerRadius)?n.outerRadius:s.outerRadius,u=s.clipSector),{startAngle:o,endAngle:r,innerRadius:l,outerRadius:c,clipSector:u}},fromFn:(n,s,a)=>{a=Hft(n,s,a);let o,r,l,c,u;a==="removed"||a==="updated"?(o=n.startAngle,r=n.endAngle,l=n.innerRadius,c=n.outerRadius,u=n.clipSector):(o=t,r=t,l=s.innerRadius,c=s.outerRadius),u??(u=new yH(o,r,l,c));const d=Fft.NODE_UPDATE_STATE_TO_PHASE_MAPPING[a];return{startAngle:o,endAngle:r,innerRadius:l,outerRadius:c,clipSector:u,phase:d}}}}function jft(t,e){return{centerX:0,centerY:0,innerRadius:e.innerRadius,outerRadius:e.outerRadius,startAngle:e.startAngle,endAngle:e.endAngle,clipSector:e.clipSector}}var{DEFAULT_POLAR_DIRECTION_KEYS:Gft,DEFAULT_POLAR_DIRECTION_NAMES:Uft,PolarAxis:Wft,diff:Kft,groupAccumulativeValueProperty:xH,keyProperty:Yft,normaliseGroupTo:$ft,valueProperty:Xft,fixNumericExtent:Zft,resetLabelFn:qft,seriesLabelFadeInAnimation:Qft,seriesLabelFadeOutAnimation:Jft,animationValidation:tmt,createDatumId:emt,CategoryScale:imt,Sector:nmt,SectorBox:smt,motion:vH,updateLabelNode:SH,getItemStyles:amt}=j,omt=class extends j.SeriesNodeEvent{constructor(t,e,i,n){super(t,e,i,n),this.angleKey=n.properties.angleKey,this.radiusKey=n.properties.radiusKey}},lY=class extends j.PolarSeries{constructor(t){super({moduleCtx:t,categoryKey:"radiusValue",propertyKeys:Gft,propertyNames:Uft,canHaveAxes:!0,animationResetFns:{item:jft,label:qft}}),this.properties=new tn,this.NodeEvent=omt,this.groupScale=new imt,this.circleCache={r:0,cx:0,cy:0}}nodeFactory(){return new nmt}getSeriesDomain(t){const{dataModel:e,processedData:i}=this;if(!i||!e)return{domain:[]};if(t===z.Angle){const n=e.getDomain(this,"angleValue-end","value",i).domain,s=[Math.min(n[0],0),Math.max(n[1],0)];return{domain:Zft(s)}}else return e.getDomain(this,"radiusValue","key",i)}async processData(t){const{angleKey:e,radiusKey:i,normalizedTo:n}=this.properties,s=!this.ctx.animationManager.isSkipped(),a=this.getStackId(),o=`${a}-trailing`,r=[];go(n)&&r.push($ft([a,o],Math.abs(n))),this.needsDataModelDiff()&&this.processedData&&r.push(Kft(this.id,this.processedData)),s&&r.push(tmt());const l=this.visible?{}:{forceValue:0},c=this.axes[z.Radius]?.scale.type,u=this.axes[z.Angle]?.scale.type,d=this.properties.allowNullKeys??!1;await this.requestDataModel(t,this.data,{props:[Yft(i,c,{id:"radiusValue",allowNullKey:d}),Xft(e,u,{id:"angleValue-raw",invalidValue:null,...l}),...xH(e,"normal",{id:"angleValue-end",rangeId:"angleValue-range",invalidValue:null,groupId:a,separateNegative:!0,...l},u),...xH(e,"trailing",{id:"angleValue-start",invalidValue:null,groupId:o,separateNegative:!0,...l},u),...r],groupByKeys:!0,groupByData:!1}),this.animationState.transition("updateData")}didCircleChange(){const t=this.radius,e=this.centerX,i=this.centerY,n=this.circleCache;return t===n.r&&e===n.cx&&i===n.cy?!1:(this.circleCache={r:t,cx:e,cy:i},!0)}maybeRefreshNodeData(){!this.didCircleChange()&&!this.nodeDataRefresh||(this.contextNodeData=this.createNodeData(),this.nodeData=this.contextNodeData?.nodeData??[],this.nodeDataRefresh=!1)}getAxisInnerRadius(){const t=this.axes[z.Radius];return t instanceof Wft?this.radius*t.innerRadiusRatio:0}createNodeData(){const{processedData:t,dataModel:e}=this;if(!e||t?.type!=="grouped")return;const i=this.axes[z.Angle],n=this.axes[z.Radius],s=i?.scale,a=n?.scale;if(!s||!a)return;const o=e.resolveKeysById(this,"radiusValue",t),r=e.resolveColumnById(this,"angleValue-start",t),l=e.resolveColumnById(this,"angleValue-end",t),c=e.resolveColumnById(this,"angleValue-raw",t),u=e.resolveProcessedDataIndexById(this,"angleValue-range");let d=0;n instanceof xm&&(d=n.groupPaddingInner);const{groupScale:g}=this,{index:f,visibleGroupCount:y}=this.ctx.seriesStateManager.getVisiblePeerGroupIndex(this);g.domain=Array.from({length:y}).map((W,q)=>String(q)),g.range=[0,Math.abs(a.bandwidth??0)],g.paddingInner=y>1?d:0;const x=g.bandwidth>=1?g.bandwidth:g.rawBandwidth,S=i.isReversed(),D=n.isReversed(),A=D?this.radius:this.getAxisInnerRadius(),w=(D?this.getAxisInnerRadius():this.radius)+A,N=this.getSeriesDomain(z.Angle).domain,{angleKey:O,radiusKey:L,angleName:R,radiusName:P,legendItemName:B,label:F}=this.properties,H=(W,q,nt,G)=>{const et=this.getLabelText(q,W,O,"angle",N,F,{value:q,datum:W,angleKey:O,radiusKey:L,angleName:R,radiusName:P,legendItemName:B});if(et)return{x:nt,y:G,text:et,textAlign:"center",textBaseline:"middle"}},$=[],Y=amt((W,q,nt)=>gf(this,W,q,nt)),U={itemId:L,nodeData:$,labelData:$,styles:Y};if(!this.visible)return U;const{dataSources:V}=t,Z=V.get(this.id)?.data??[];for(const{datumIndex:W,group:q}of e.forEachGroupDatum(this,t)){const nt=Z[W],G=o[W];if(G===void 0&&!this.properties.allowNullKeys)return;const et=c[W],st=r[W],lt=l[W],mt=et>=0&&!Object.is(et,-0),Dt=q.aggregation[u][mt?1:0],kt=mt===S;let Vt=s.convert(st,{clamp:!0}),Kt=s.convert(lt,{clamp:!0}),ae=s.convert(0,{clamp:!0}),ne=s.convert(Dt,{clamp:!0});kt&&([ae,ne]=[ne,ae],[Vt,Kt]=[Kt,Vt]);const zt=w-a.convert(G)+g.convert(String(f)),Pt=zt+x,ue=(zt+Pt)/2,oe=Vt+fl(Vt,Kt)/2,ke=Math.cos(oe)*ue,Ye=Math.sin(oe)*ue,Ce=this.properties.label.enabled?H(nt,et,ke,Ye):void 0,Di=new smt(Vt,Kt,zt,Pt);$.push({series:this,datum:nt,datumIndex:W,point:{x:ke,y:Ye,size:0},midPoint:{x:ke,y:Ye},label:Ce,angleValue:et,radiusValue:G,innerRadius:zt,outerRadius:Pt,startAngle:ae,endAngle:ne,clipSector:Di,reversed:kt,index:W})}return U}update({seriesRect:t}){const e=this.checkResize(t);this.maybeRefreshNodeData(),this.contentGroup.translationX=this.centerX,this.contentGroup.translationY=this.centerY,this.highlightGroup.translationX=this.centerX,this.highlightGroup.translationY=this.centerY,this.labelGroup&&(this.labelGroup.translationX=this.centerX,this.labelGroup.translationY=this.centerY),this.updateSectorSelection(this.itemSelection,!1),this.updateSectorSelection(this.highlightSelection,!0),this.updateLabels(),e&&this.animationState.transition("resize"),this.animationState.transition("update")}updateSectorSelection(t,e){let i=[];const n=this.ctx.highlightManager?.getActiveHighlight();e?n?.datum&&n.series===this&&i.push(n):i=this.nodeData;const{contextNodeData:s}=this;if(!s)return;const a=this.ctx.highlightManager.getActiveHighlight(),o=this.getShapeFillBBox(),r=this.hasItemStylers();t.update(i,void 0,l=>this.getDatumId(l)).each((l,c)=>{const u=FM(c);if(u==null)return;if(r){const x=this.getHighlightState(n,e,c.datumIndex);c.style=gf(this,c,e,x)}const d=c.style??s.styles[this.getHighlightState(a,e,c.datumIndex)],g=d.cornerRadius,f=d.fill,y=an(f)&&f.bounds!=="item"?{centerX:0,centerY:0}:void 0;l.setStyleProperties(d,o,y),l.lineJoin="round",l.inset=l.stroke==null?0:l.strokeWidth/2,l.startInnerCornerRadius=u.reversed?g:0,l.startOuterCornerRadius=u.reversed?g:0,l.endInnerCornerRadius=u.reversed?0:g,l.endOuterCornerRadius=u.reversed?0:g,e&&(l.startAngle=c.startAngle,l.endAngle=c.endAngle,l.clipSector=c.clipSector,l.innerRadius=c.innerRadius,l.outerRadius=c.outerRadius)})}updateLabels(){const{properties:t}=this,e=this.ctx.highlightManager?.getActiveHighlight(),i=e?.series===this&&e?.datum?e:void 0,n=i?[i]:[];this.labelSelection.update(this.nodeData).each((s,a)=>{SH(this,s,t,t.label,a.label,!1,e),s.fillOpacity=this.getHighlightStyle(!1,a.datumIndex).opacity??1}),this.highlightLabelSelection.update(n,void 0,s=>this.getDatumId(s)).each((s,a)=>{SH(this,s,t,t.label,a.label,!0,e),s.fillOpacity=this.getHighlightStyle(!0,a.datumIndex).opacity??1})}getBarTransitionFunctions(){const t=this.axes[z.Angle]?.scale;let e=0;if(!t)return bH(e);const i=Math.min(t.domain[0],t.domain[1]),n=Math.max(t.domain[0],t.domain[1]);return i<=0&&n>=0&&(e=t.convert(0)),bH(e)}animateEmptyUpdateReady(){const{labelSelection:t}=this,e=this.getBarTransitionFunctions();vH.fromToMotion(this.id,"datums",this.ctx.animationManager,[this.itemSelection],e),Qft(this,"labels",this.ctx.animationManager,t,this.highlightLabelSelection)}animateClearingUpdateEmpty(){const{itemSelection:t}=this,{animationManager:e}=this.ctx,i=this.getBarTransitionFunctions();vH.fromToMotion(this.id,"datums",e,[t],i),Jft(this,"labels",e,this.labelSelection,this.highlightLabelSelection)}getTooltipContent(t){const{id:e,dataModel:i,processedData:n,axes:s,properties:a}=this,{angleKey:o,angleName:r,radiusKey:l,radiusName:c,legendItemName:u,tooltip:d}=a,g=s[z.Angle],f=s[z.Radius],y=this.nodeData?.[t];if(!i||!n||!g||!f||!y)return;const x=n.dataSources.get(this.id)?.data[t],S=i.resolveKeysById(this,"radiusValue",n)[t],D=i.resolveColumnById(this,"angleValue-raw",n)[t];if(S===void 0&&!this.properties.allowNullKeys)return;const A=gf(this,y,!1);return this.formatTooltipWithContext(d,{heading:this.getAxisValueText(f,"tooltip",S,x,l,void 0),symbol:this.legendItemSymbol(),data:[{label:r,fallbackLabel:o,value:this.getAxisValueText(g,"tooltip",D,x,o,void 0),missing:j.isTooltipValueMissing(D)}]},{seriesId:e,datum:x,title:r,angleKey:o,angleName:r,radiusKey:l,radiusName:c,legendItemName:u,...A})}pickNodeClosestDatum(t){return this.pickNodeNearestDistantObject(t,this.itemSelection.nodes())}legendItemSymbol(){const{fill:t,stroke:e,fillOpacity:i,strokeOpacity:n,strokeWidth:s,lineDash:a,lineDashOffset:o}=tE(this,!1,j.HighlightState.None),r={fill:t??"rgba(0, 0, 0, 0)",stroke:e??"rgba(0, 0, 0, 0)",fillOpacity:i,strokeOpacity:n,strokeWidth:s,lineDash:a,lineDashOffset:o};return an(r.fill)&&(r.fill={...r.fill,gradient:"linear",rotation:0,reverse:!1}),{marker:r}}getLegendData(t){if(t!=="category")return[];const{id:e,visible:i}=this,{angleKey:n,angleName:s,legendItemName:a,showInLegend:o}=this.properties;return[{legendType:"category",id:e,itemId:n,seriesId:e,enabled:i,label:{text:a??s??n},symbol:this.legendItemSymbol(),legendItemName:a,hideInLegend:!o}]}getDatumId(t){return emt(t.radiusValue)}computeLabelsBBox(){return null}getStackId(){return`radialBar-stack-${this.seriesGrouping?.groupIndex??this.id}-xValues`}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.styler!=null||this.properties.label.itemStyler!=null}};lY.className="RadialBarSeries";lY.type="radial-bar";var{radialBarSeriesThemeableOptionsDef:rmt}=j,cY={..._e,...rmt,type:ht(Jt("radial-bar")),angleKey:ht(K),radiusKey:ht(K)};cY.angleKeyAxis=Mt(K);cY.radiusKeyAxis=Mt(K);({...Oe},sn.RADIUS_CATEGORY+"");sn.ANGLE_NUMBER,sn.RADIUS_CATEGORY,z.Angle+"",z.Radius+"";var aE=class extends Hi{};M([b],aE.prototype,"columnWidthRatio");M([b],aE.prototype,"maxColumnWidthRatio");var{PolarAxis:lmt,RadialColumnShape:cmt,getRadialColumnWidth:hmt}=j,hY=class extends X5{constructor(t){super(t,{animationResetFns:{item:Hgt}}),this.properties=new aE}getStackId(){return`radarColumn-stack-${this.seriesGrouping?.groupIndex??this.id}-yValues`}nodeFactory(){return new cmt}getColumnTransitionFunctions(){const t=this.isRadiusAxisReversed()?this.radius:this.getAxisInnerRadius();return Fgt(t)}isRadiusAxisCircle(){const t=this.axes[z.Radius];return t instanceof lmt?t.shape==="circle":!1}updateItemPath(t,e,i){t.isBeveled=this.isRadiusAxisCircle(),i&&(t.innerRadius=e.innerRadius,t.outerRadius=e.outerRadius,t.startAngle=e.startAngle,t.endAngle=e.endAngle,t.columnWidth=e.columnWidth,t.axisInnerRadius=e.axisInnerRadius,t.axisOuterRadius=e.axisOuterRadius)}getColumnWidth(t,e){const{columnWidthRatio:i=.5,maxColumnWidthRatio:n=.5}=this.properties;return hmt(t,e,this.radius,i,n)}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.styler!=null||this.properties.label.itemStyler!=null}};hY.className="RadialColumnSeries";hY.type="radial-column";var{radialColumnSeriesThemeableOptionsDef:umt}=j,uY={..._e,...umt,type:ht(Jt("radial-column")),angleKey:ht(K),radiusKey:ht(K)};uY.angleKeyAxis=Mt(K);uY.radiusKeyAxis=Mt(K);({...Oe},sn.ANGLE_CATEGORY+"",yf.CIRCLE,sn.RADIUS_NUMBER+"",yf.CIRCLE);sn.ANGLE_CATEGORY,sn.RADIUS_NUMBER,z.Angle+"",z.Radius+"";var{SvgPath:dmt,Rotatable:pmt,Translatable:gmt,Scalable:fmt}=j,p1=class extends pmt(fmt(gmt(dmt))){constructor(){super(...arguments),this.scalingCenterX=.5,this.scalingCenterY=.5,this.rotationCenterX=.5,this.rotationCenterY=.5}};p1.defaultPathData="M0.50245 0.53745C0.481767 0.53745 0.465 0.520683 0.465 0.5C0.465 0.479317 0.481767 0.46255 0.50245 0.46255L1 0.500012L0.50245 0.53745Z";var{getColorStops:mmt}=j,{makeSeriesTooltip:ymt,SeriesProperties:bmt,AxisLabel:xmt,Label:vmt}=j,dY=class extends vmt{};M([b],dY.prototype,"spacing");var Ns=class extends xt{constructor(){super(...arguments),this.label=new dY}getStyle(){const{fill:t="black",fillOpacity:e=1,stroke:i="black",strokeWidth:n=0,strokeOpacity:s=1,lineDash:a=[0],lineDashOffset:o=0}=this;return{fill:t,fillOpacity:e,stroke:i,strokeWidth:n,strokeOpacity:s,lineDash:a,lineDashOffset:o}}};M([b],Ns.prototype,"text");M([b],Ns.prototype,"value");M([b],Ns.prototype,"shape");M([b],Ns.prototype,"placement");M([b],Ns.prototype,"spacing");M([b],Ns.prototype,"size");M([b],Ns.prototype,"rotation");M([b],Ns.prototype,"fill");M([b],Ns.prototype,"fillOpacity");M([b],Ns.prototype,"stroke");M([b],Ns.prototype,"strokeWidth");M([b],Ns.prototype,"strokeOpacity");M([b],Ns.prototype,"lineDash");M([b],Ns.prototype,"lineDashOffset");M([b],Ns.prototype,"label");var Wr=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.fills=new ss(j.StopProperties),this.fillMode="continuous",this.fillOpacity=1,this.stroke="black",this.strokeWidth=0,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}getStyle(t,e){const{enabled:i,fill:n,fills:s,fillMode:a,fillOpacity:o,stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}=this;return{fill:i?n??fY(s,a,t,e):"none",fillOpacity:o,stroke:r,strokeWidth:l,strokeOpacity:c,lineDash:u,lineDashOffset:d}}};M([b],Wr.prototype,"enabled");M([b],Wr.prototype,"fills");M([b],Wr.prototype,"fillMode");M([b],Wr.prototype,"fill");M([b],Wr.prototype,"fillOpacity");M([b],Wr.prototype,"stroke");M([b],Wr.prototype,"strokeWidth");M([b],Wr.prototype,"strokeOpacity");M([b],Wr.prototype,"lineDash");M([b],Wr.prototype,"lineDashOffset");var dv=class extends xt{constructor(){super(...arguments),this.values=void 0,this.step=void 0,this.minSpacing=0,this.maxSpacing=1e3}};M([b],dv.prototype,"values");M([b],dv.prototype,"step");M([b],dv.prototype,"minSpacing");M([b],dv.prototype,"maxSpacing");var Smt=class extends xmt{},ha=class extends xt{constructor(){super(...arguments),this.min=0,this.max=1,this.fills=new ss(j.StopProperties),this.fillMode="continuous",this.fillOpacity=1,this.stroke="black",this.strokeWidth=0,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0,this.defaultFill="black",this.interval=new dv,this.label=new Smt}getStyle(t,e,i){const{fill:n,fills:s,defaultFill:a,fillMode:o,fillOpacity:r,stroke:l,strokeWidth:c,strokeOpacity:u,lineDash:d,lineDashOffset:g}=this;return{fill:n??(t&&s.length===0?a:void 0)??fY(s,o,e,i),fillOpacity:r,stroke:l,strokeWidth:c,strokeOpacity:u,lineDash:d,lineDashOffset:g}}};M([b],ha.prototype,"min");M([b],ha.prototype,"max");M([b],ha.prototype,"fills");M([b],ha.prototype,"fillMode");M([b],ha.prototype,"fill");M([b],ha.prototype,"fillOpacity");M([b],ha.prototype,"stroke");M([b],ha.prototype,"strokeWidth");M([b],ha.prototype,"strokeOpacity");M([b],ha.prototype,"lineDash");M([b],ha.prototype,"lineDashOffset");M([b],ha.prototype,"defaultFill");M([b],ha.prototype,"interval");M([b],ha.prototype,"label");var Kr=class extends xt{constructor(){super(...arguments),this.enabled=!0,this.spacing=0,this.fill="black",this.fillOpacity=1,this.stroke="black",this.strokeWidth=0,this.strokeOpacity=1,this.lineDash=[0],this.lineDashOffset=0}};M([b],Kr.prototype,"enabled");M([b],Kr.prototype,"radiusRatio");M([b],Kr.prototype,"spacing");M([b],Kr.prototype,"fill");M([b],Kr.prototype,"fillOpacity");M([b],Kr.prototype,"stroke");M([b],Kr.prototype,"strokeWidth");M([b],Kr.prototype,"strokeOpacity");M([b],Kr.prototype,"lineDash");M([b],Kr.prototype,"lineDashOffset");var pY=class extends Om{};M([b],pY.prototype,"text");var gY=class extends PA{};M([b],gY.prototype,"text");var xn=class extends bmt{constructor(){super(...arguments),this.startAngle=0,this.endAngle=0,this.segmentation=new cv,this.defaultColorRange=[],this.targets=new ss(Ns),this.defaultTarget=new Ns,this.outerRadiusRatio=1,this.innerRadiusRatio=1,this.cornerRadius=0,this.cornerMode="container",this.spacing=0,this.scale=new ha,this.bar=new Wr,this.needle=new Kr,this.label=new pY,this.secondaryLabel=new gY,this.tooltip=ymt()}};M([b],xn.prototype,"value");M([b],xn.prototype,"startAngle");M([b],xn.prototype,"endAngle");M([b],xn.prototype,"segmentation");M([b],xn.prototype,"defaultColorRange");M([b],xn.prototype,"targets");M([b],xn.prototype,"defaultTarget");M([b],xn.prototype,"outerRadiusRatio");M([b],xn.prototype,"innerRadiusRatio");M([b],xn.prototype,"outerRadius");M([b],xn.prototype,"innerRadius");M([b],xn.prototype,"cornerRadius");M([b],xn.prototype,"cornerMode");M([b],xn.prototype,"spacing");M([b],xn.prototype,"scale");M([b],xn.prototype,"bar");M([b],xn.prototype,"needle");M([b],xn.prototype,"label");M([b],xn.prototype,"secondaryLabel");M([b],xn.prototype,"tooltip");function fY(t,e,i,n){const{domain:s,range:a}=n,[o,r]=a,l=ze((o+r)/2+Math.PI),c=Wb(r-o);return{type:"gradient",gradient:"conic",colorSpace:"oklch",colorStops:mmt(t,i,s,e).map(({color:d,stop:g})=>(g=Math.min(Math.max(g,0),1),g=(o+c*g-l)/(2*Math.PI),g=(g%1+1)%1,{stop:g,color:d})),bounds:"series",rotation:tj(l)+90}}var{SectorBox:oE}=j;function Mmt(t){const{startAngle:e,endAngle:i,clipStartAngle:n,clipEndAngle:s,innerRadius:a,outerRadius:o}=t;if(!(n==null||s==null))return new oE(Math.max(n,e),Math.min(s,i),a,o)}function mY(t,e,i){return Math.max(t,i.startAngle)<=Math.min(e,i.endAngle)}function Vw(t){return t.clipStartAngle!=null&&t.clipEndAngle!=null}function _w(t,e){const{clipStartAngle:i,clipEndAngle:n,innerRadius:s,outerRadius:a}=t;return new oE(i,e?i:n,s,a)}function MH(t,e){const i=t?"initial":"update";return{node:{fromFn(a,o){const r=a.previousDatum;let{startAngle:l,endAngle:c}=r??o;const u=r!=null&&Vw(r)?_w(r,t):void 0,d=Vw(o)?_w(o,t):void 0;let g;return u!=null&&d!=null?g=u:u==null&&d!=null?(g=d,l=o.startAngle,c=o.endAngle):u!=null&&d==null?(g=void 0,l=o.startAngle,c=o.endAngle):t&&(c=l),{startAngle:l,endAngle:c,clipSector:g,phase:i}},toFn(a,o){const{startAngle:r,endAngle:l}=o;let c;return Vw(o)&&(c=_w(o,!1)),{startAngle:r,endAngle:l,clipSector:c}},applyFn(a,o){const{startAngle:r,endAngle:l}=o;let{clipSector:c}=o;c!=null&&(c=new oE(Math.max(r,c.startAngle),Math.min(l,c.endAngle),c.innerRadius,c.outerRadius));const u=c==null||mY(r,l,c);a.startAngle=r,a.endAngle=l,a.clipSector=c,a.visible=u}},needle:{fromFn(a){let{angle:o}=a.previousDatum??a.datum;return t&&(o=e),{rotation:o,phase:i}},toFn(a,o){const{angle:r}=o;return{rotation:r}}}}}function Fw(t,e){const{startAngle:i,endAngle:n}=e,s=Mmt(e),a=s==null||mY(i,n,s);return{startAngle:i,endAngle:n,clipSector:s,visible:a}}function DH(t,e){const{angle:i}=e;return{rotation:i}}var Dmt={top:0,middle:.5,bottom:1};function Amt(t,e,i,n,s,a){const{padding:o,textAlign:r,verticalAlign:l}=n;let c,u;if(i.each((N,O)=>{O.label==="primary"?c=O:O.label==="secondary"&&(u=O)}),c==null)return;const d=ux(t.id,e,c,a?.label);if(d==null)return;const g=u==null?void 0:ux(t.id,e,u,a?.secondaryLabel),f={padding:o},y=r==="center"?2:1,x=l==="middle"?2:1,S=N=>({width:Math.sqrt(Math.max(s**2-(N/x)**2,0))*y,height:Math.min(N,x*s),meta:null});let D,A,I;if(u!=null&&g!=null){const N=e5(ce(d),c,ce(g),u,f,S);D=N?.label,A=N?.secondaryLabel,I=N?.height??0}else{const N=rx(ce(d),c,f,S);D=N?.[0],A=void 0,I=N?.[0].height??0}const w=I*Dmt[l];i.each((N,O)=>{let L;if(O.label==="primary"?L=D:O.label==="secondary"&&(L=A),L==null){N.visible=!1;return}N.visible=!0,N.text=L.text,N.fontSize=L.fontSize,N.lineHeight=L.lineHeight,N.textAlign=r,N.textBaseline="middle";const R=O.label==="primary"?L.height/2:I-L.height/2;N.y=O.centerY+R-w,N.x=O.centerX})}var{fromToMotion:Yy,resetMotion:AH,SeriesNodePickMode:IH,createDatumId:Hw,sectorBox:Imt,BBox:kmt,Group:Vh,PointerEvents:LS,Selection:_h,Sector:Cmt,SectorBox:wmt,Transformable:Nmt,TransformableText:Tmt,Text:kH,Marker:Lmt}=j,Omt={inside:90,middle:0,outside:-90},Emt=[{textAlign:"left",textBaseline:"top"},{textAlign:"right",textBaseline:"top"},{textAlign:"right",textBaseline:"bottom"},{textAlign:"left",textBaseline:"bottom"}],Rmt=[{textAlign:"right",textBaseline:"bottom"},{textAlign:"left",textBaseline:"bottom"},{textAlign:"left",textBaseline:"top"},{textAlign:"right",textBaseline:"top"}],yY=class extends j.Series{constructor(t){super({moduleCtx:t,pickModes:[IH.EXACT_SHAPE_MATCH,IH.NEAREST_NODE]}),this.centerX=0,this.centerY=0,this.radius=0,this.textAlign="center",this.verticalAlign="middle",this.properties=new xn,this.scale=new nK,this.scaleGroup=this.contentGroup.appendChild(new Vh({name:"scaleGroup"})),this.itemGroup=this.contentGroup.appendChild(new Vh({name:"itemGroup"})),this.itemNeedleGroup=this.contentGroup.appendChild(new Vh({name:"itemNeedleGroup"})),this.itemTargetGroup=this.contentGroup.appendChild(new Vh({name:"itemTargetGroup"})),this.itemTargetLabelGroup=this.contentGroup.appendChild(new Vh({name:"itemTargetLabelGroup"})),this.itemLabelGroup=this.contentGroup.appendChild(new Vh({name:"itemLabelGroup"})),this.highlightTargetGroup=this.highlightGroup.appendChild(new Vh({name:"itemTargetLabelGroup"})),this.tickGroup=this.contentGroup.appendChild(new Vh({name:"tickGroup"})),this.scaleSelection=_h.select(this.scaleGroup,()=>this.nodeFactory()),this.datumSelection=_h.select(this.itemGroup,()=>this.nodeFactory()),this.needleSelection=_h.select(this.itemNeedleGroup,p1),this.targetSelection=_h.select(this.itemTargetGroup,()=>this.markerFactory()),this.targetLabelSelection=_h.select(this.itemTargetLabelGroup,kH),this.labelSelection=_h.select(this.itemLabelGroup,kH),this.highlightTargetSelection=_h.select(this.highlightTargetGroup,()=>this.markerFactory()),this.tickSelection=_h.select(this.tickGroup,j.TransformableText),this.datumUnion=new k5,this.animationState=new Rt("empty",{empty:{update:{target:"ready",action:()=>this.animateEmptyUpdateReady()},reset:"empty",skip:"ready"},ready:{updateData:"waiting",clear:"clearing",resize:()=>this.animateReadyResize(),reset:"empty",skip:"ready"},waiting:{update:{target:"ready",action:()=>this.animateWaitingUpdateReady()},reset:"empty",skip:"ready"},clearing:{update:{target:"empty"},reset:"empty",skip:"ready"}}),this.scaleGroup.pointerEvents=LS.None,this.tickGroup.pointerEvents=LS.None,this.itemNeedleGroup.pointerEvents=LS.None,this.itemLabelGroup.pointerEvents=LS.None}get hasData(){return this.properties.value!=null}nodeFactory(){return new Cmt}markerFactory(){const t=new Lmt;return t.size=1,t}processData(){this.nodeDataRefresh=!0,this.animationState.transition("updateData")}formatLabel(t){const{min:e,max:i}=this.properties.scale;return w5(t,{min:e,max:i})}layoutScale(){const{scale:t,properties:e}=this,{seriesRectWidth:i,seriesRectHeight:n}=this.nodeDataDependencies,{scale:s,outerRadius:a}=this.properties,{min:o,max:r,label:l,interval:c}=s,u=Ze(e.startAngle-90),d=Ze(e.endAngle-90),f=Wb(d-u)>Math.PI,y=f||Ba(1.5*Math.PI,u,d),x=f||Ba(0*Math.PI,u,d),S=f||Ba(.5*Math.PI,u,d),D=f||Ba(1*Math.PI,u,d);let A;D&&!x?A="right":!D&&x?A="left":A="center";let I;y&&!S?I="bottom":!y&&S?I="top":I="middle";const w=Imt({startAngle:u,endAngle:d,innerRadius:0,outerRadius:.5}),N=-(w.x+w.width/2)*2,O=-(w.y+w.height/2)*2,L=Math.min(i/w.width,n/w.height);t.domain=[o,r],t.range=[u,d],t.arcLength=L/2;const{maxSpacing:R,minSpacing:P}=c,{arcLength:B}=t,F=R?Math.floor(B/R):1,H=P?Math.floor(B/P):1/0,$=Math.floor(4/Math.PI*Math.abs(t.range[0]-t.range[1])),Y=Math.max(F,Math.min(H,$)),U=c.values??t.ticks({nice:[!1,!1],interval:c.step,minTickCount:F,maxTickCount:H,tickCount:Y})?.ticks??[],V=vT(U,typeof l.format=="string"?l.format:void 0),Z=[];for(const[et,st]of U.entries()){let lt;l.formatter&&(lt=cx(this.ctx,l.formatter,{value:st,index:et,domain:t.domain,boundSeries:void 0})),lt??(lt=V?.(st)),lt!=null&&Z.push({index:et,value:st,text:lt})}const W=.5*L,q=l.enabled&&a==null&&Z.length>0?this.getTickLabelInset({tickData:Z,radius:W,centerXOffset:N,centerYOffset:O,seriesRectWidth:i,seriesRectHeight:n,spacing:l.spacing,rotation:Ze(l.rotation??0)}):0,nt=Math.max(W-q,0),G=a??nt;return this.centerX=i/2+N*G,this.centerY=n/2+O*G,this.radius=G,this.textAlign=A,this.verticalAlign=I,Z}getShapeFillBBox(){const{centerX:t,centerY:e,radius:i}=this,n=new kmt(t-i,e-i,2*i,2*i);return{series:n,axis:n}}getTargets(){const{properties:t}=this,e=t.defaultTarget;return t.targets.map(i=>{const{text:n=e.text,value:s=e.value??0,shape:a=e.shape??"triangle",rotation:o=e.rotation??0,placement:r=e.placement??"middle",spacing:l=e.spacing??0,size:c=e.size??0}=i,{enabled:u=e.label.enabled,color:d=e.label.color??"black",fontStyle:g=e.label.fontStyle??"normal",fontWeight:f=e.label.fontWeight??"normal",fontSize:y=e.label.fontSize,fontFamily:x=e.label.fontFamily,spacing:S=e.label.spacing??0}=i.label;return{text:n,value:s,shape:a,placement:r,spacing:l,size:c,rotation:o,label:{enabled:u,color:d,fontStyle:g,fontWeight:f,fontSize:y,fontFamily:x,spacing:S},style:i.getStyle()}})}getTargetRadius(t){const{radius:e,properties:i}=this,{innerRadiusRatio:n,outerRadiusRatio:s}=i,{placement:a,spacing:o,size:r}=t,l=e*s,c=e*n;switch(a){case"inside":return Math.max(c-o-r/2,0);case"outside":return l+o+r/2;default:return(c+l)/2}}getTargetLabel(t){const{scale:e}=this,{value:i,size:n,placement:s,label:a}=t,{spacing:o,color:r,fontStyle:l,fontWeight:c,fontSize:u,fontFamily:d}=a,g=e.convert(i),f=Math.trunc(ze(g)/(Math.PI/2)),y=n/2+o;let x,S,D,A;switch(s){case"outside":({textAlign:x,textBaseline:S}=Emt[f]),D=y*Math.cos(g),A=y*Math.sin(g);break;case"inside":({textAlign:x,textBaseline:S}=Rmt[f]),D=-y*Math.cos(g),A=-y*Math.sin(g);break;default:x="center",S="bottom",D=0,A=-y;break}return{offsetX:D,offsetY:A,fill:r,textAlign:x,textBaseline:S,fontStyle:l,fontWeight:c,fontSize:u,fontFamily:d,lineHeight:void 0}}createNodeData(){const t=this.layoutScale(),{id:e,scale:i,properties:n,radius:s,centerX:a,centerY:o}=this,{value:r,innerRadiusRatio:l,outerRadiusRatio:c,segmentation:u,cornerRadius:d,cornerMode:g,needle:f,bar:y,scale:x,label:S,secondaryLabel:D}=n,{outerRadius:A=s*c,innerRadius:I=s*l,defaultColorRange:w}=n,N=this.getTargets(),O=[],L=[],R=[],P=[],B=[],F=g==="item",H=i.convert(i.domain[0]),$=i.convert(r),Y=Math.ceil(Wb($-H)*s);let U=u.enabled?u.interval.getSegments(i,Y):void 0;const V=y.getStyle(w,i),Z=x.getStyle(y.enabled,w,i);if(U==null&&F){const W=Math.min(...i.domain),q=Math.max(...i.domain),nt={value:r,segmentStart:W,segmentEnd:q},et=Math.min(d,(A-I)/2)/((I+A)/2);O.push({series:this,itemId:"value",datum:nt,datumIndex:{type:0},type:0,centerX:a,centerY:o,outerRadius:A,innerRadius:I,startAngle:H-et,endAngle:$+et,clipStartAngle:void 0,clipEndAngle:void 0,startCornerRadius:d,endCornerRadius:d,style:V}),B.push({series:this,itemId:"scale",datum:nt,datumIndex:{type:0},type:0,centerX:a,centerY:o,outerRadius:A,innerRadius:I,startAngle:i.range[0]-et,endAngle:i.range[1]+et,clipStartAngle:void 0,clipEndAngle:void 0,startCornerRadius:d,endCornerRadius:d,style:Z})}else{U??(U=i.domain);for(let W=0;Wthis.formatLabel(kt.value)}=S;P.push({label:"primary",centerX:a,centerY:o,text:W,value:r,fill:q,fontSize:nt,minimumFontSize:G,fontStyle:et,fontWeight:st,fontFamily:lt,lineHeight:mt,formatter:Dt})}if(!f.enabled&&D.enabled){const{text:W,color:q,fontSize:nt,minimumFontSize:G,fontStyle:et,fontWeight:st,fontFamily:lt,lineHeight:mt,formatter:Dt}=D;P.push({label:"secondary",centerX:a,centerY:o,text:W,value:r,fill:q,fontSize:nt,minimumFontSize:G,fontStyle:et,fontWeight:st,fontFamily:lt,lineHeight:mt,formatter:Dt})}if(f.enabled){let W=f.radiusRatio==null?I:s*f.radiusRatio;W=Math.max(W-f.spacing,0);const q=i.convert(r);R.push({centerX:a,centerY:o,radius:W,angle:q,series:this})}for(let W=0;WMath.max(...i.domain))continue;const mt=this.getTargetRadius(q),Dt=i.convert(nt),kt=Ze(q.rotation+Omt[q.placement]);L.push({series:this,itemId:`target-${W}`,midPoint:{x:mt*Math.cos(Dt)+a,y:mt*Math.sin(Dt)+o},datum:{value:nt},datumIndex:{type:1,index:W},type:1,value:nt,text:G,centerX:a,centerY:o,shape:st,radius:mt,angle:Dt,rotation:kt,size:et,label:this.getTargetLabel(q),style:lt})}return{itemId:e,nodeData:O,needleData:R,targetData:L,labelData:P,scaleData:B,tickData:t}}findNodeDatum(t){return O5(this,t)}updateSelections(t){(this.nodeDataRefresh||t)&&(this.contextNodeData=this.createNodeData(),this.nodeDataRefresh=!1)}highlightDatum(t){if(t?.series===this&&t.type===1)return t}update({seriesRect:t}){const{datumSelection:e,labelSelection:i,needleSelection:n,targetSelection:s,targetLabelSelection:a,scaleSelection:o,highlightTargetSelection:r,tickSelection:l}=this,c=this.checkResize(t);this.updateSelections(c),this.contentGroup.visible=this.visible,this.contentGroup.opacity=this.getOpacity();const u=this.contextNodeData?.nodeData??[],d=this.contextNodeData?.labelData??[],g=this.contextNodeData?.needleData??[],f=this.contextNodeData?.targetData??[],y=this.contextNodeData?.scaleData??[],x=this.contextNodeData?.tickData??[],S=this.highlightDatum(this.ctx.highlightManager.getActiveHighlight());this.scaleSelection=this.updateScaleSelection({scaleData:y,scaleSelection:o}),this.updateScaleNodes({scaleSelection:o}),this.needleSelection=this.updateNeedleSelection({needleData:g,needleSelection:n}),this.updateNeedleNodes({needleSelection:n}),this.targetSelection=this.updateTargetSelection({targetData:f,targetSelection:s}),this.updateTargetStyles({targetSelection:s,isHighlight:!1}),this.updateTargetNodes({targetSelection:s}),this.targetLabelSelection=this.updateTargetLabelSelection({targetData:f,targetLabelSelection:a}),this.updateTargetLabelNodes({targetLabelSelection:a}),this.datumSelection=this.updateDatumSelection({nodeData:u,datumSelection:e}),this.updateDatumNodes({datumSelection:e}),this.labelSelection=this.updateLabelSelection({labelData:d,labelSelection:i}),this.updateLabelNodes({labelSelection:i}),this.highlightTargetSelection=this.updateTargetSelection({targetData:S==null?[]:[S],targetSelection:r}),this.updateTargetStyles({targetSelection:r,isHighlight:!0}),this.updateTargetNodes({targetSelection:r}),this.tickSelection=this.updateTickSelection({tickData:x,tickSelection:l}),this.updateTickNodes({tickSelection:l}),c&&this.animationState.transition("resize"),this.animationState.transition("update")}updateDatumSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>Hw(t.nodeData.length,e.itemId))}updateDatumNodes(t){const{datumSelection:e}=t,{ctx:i,properties:n}=this,{segmentation:s}=n,a=s.spacing??0,o=i.animationManager.isSkipped(),r=this.getShapeFillBBox();e.each((l,c)=>{const{centerX:u,centerY:d,innerRadius:g,outerRadius:f,startCornerRadius:y,endCornerRadius:x}=c;l.centerX=u,l.centerY=d,l.innerRadius=g,l.outerRadius=f,l.pointerEvents=this.properties.bar.enabled?j.PointerEvents.All:j.PointerEvents.None,l.setStyleProperties(c.style,r),l.startOuterCornerRadius=y,l.startInnerCornerRadius=y,l.endOuterCornerRadius=x,l.endInnerCornerRadius=x,l.radialEdgeInset=(a+l.strokeWidth)/2,l.concentricEdgeInset=l.strokeWidth/2,c.midPoint=l.getBBox().computeCenter(),(o||l.previousDatum==null)&&l.setProperties(Fw(l,c))}),this.datumUnion.update(e,this.itemGroup,j.Sector,(l,c,u)=>{l.clipSector??(l.clipSector=new wmt(Number.NaN,Number.NaN,Number.NaN,Number.NaN)),l.centerX=c.centerX,l.centerY=c.centerY,l.outerRadius=l.clipSector.outerRadius=c.outerRadius,l.innerRadius=l.clipSector.innerRadius=c.innerRadius,l.startAngle=l.clipSector.startAngle=c.startAngle,l.startInnerCornerRadius=c.startInnerCornerRadius,l.startOuterCornerRadius=c.startOuterCornerRadius,l.endAngle=u.endAngle,l.clipSector.endAngle=u.clipSector?.endAngle??u.endAngle,l.endInnerCornerRadius=u.endInnerCornerRadius,l.endOuterCornerRadius=u.endOuterCornerRadius,l.pointerEvents=j.PointerEvents.None})}updateScaleSelection(t){return t.scaleSelection.update(t.scaleData,void 0,e=>Hw(t.scaleData.length,e.itemId))}updateScaleNodes(t){const{scaleSelection:e}=t,{segmentation:i}=this.properties,n=i.spacing??0,s=this.getShapeFillBBox();e.each((a,o)=>{const{centerX:r,centerY:l,innerRadius:c,outerRadius:u,startCornerRadius:d,endCornerRadius:g}=o;a.centerX=r,a.centerY=l,a.innerRadius=c,a.outerRadius=u,a.setStyleProperties(o.style,s),a.startOuterCornerRadius=d,a.startInnerCornerRadius=d,a.endOuterCornerRadius=g,a.endInnerCornerRadius=g,a.radialEdgeInset=(n+a.strokeWidth)/2,a.concentricEdgeInset=a.strokeWidth/2,a.setProperties(Fw(a,o))})}updateNeedleSelection(t){return t.needleSelection.update(t.needleData,void 0,()=>Hw(0))}updateNeedleNodes(t){const{needleSelection:e}=t,{fill:i,fillOpacity:n,stroke:s,strokeOpacity:a,strokeWidth:o,lineDash:r,lineDashOffset:l}=this.properties.needle,c=this.ctx.animationManager.isSkipped();e.each((u,d)=>{const{centerX:g,centerY:f,radius:y}=d,x=y*2;u.d=p1.defaultPathData,u.setStyleProperties({fill:i,fillOpacity:n,stroke:s,strokeOpacity:a,strokeWidth:o/x,lineDash:r.map(S=>S/x),lineDashOffset:l/x}),u.translationX=g,u.translationY=f,u.scalingX=x,u.scalingY=x,c&&u.setProperties(DH(u,d))})}updateTargetSelection(t){return t.targetSelection.update(t.targetData,void 0,e=>e.itemId)}updateTargetStyles({targetSelection:t,isHighlight:e}){t.each((i,n)=>{n.style=this.getTargetStyle(e,n)})}updateTargetNodes({targetSelection:t}){t.each((e,i)=>{const{centerX:n,centerY:s,angle:a,radius:o,shape:r,size:l,rotation:c}=i;e.setStyleProperties(i.style),e.size=l,e.shape=r==="line"?N5:r,e.translationX=n+o*Math.cos(a),e.translationY=s+o*Math.sin(a),e.rotation=a+c})}getTargetStyle(t,{datumIndex:e,style:i}){const n=this.getHighlightStyle(t,e);return Et(n,{...i,opacity:1})}updateTargetLabelSelection(t){return t.targetLabelSelection.update(t.targetData,void 0,e=>e.itemId)}updateTargetLabelNodes(t){const{targetLabelSelection:e}=t;e.each((i,n)=>{const{centerX:s,centerY:a,radius:o,angle:r,text:l}=n,{offsetX:c,offsetY:u,fill:d,fontStyle:g,fontWeight:f,fontSize:y,fontFamily:x,textAlign:S,textBaseline:D}=n.label;if(l==null){i.visible=!1;return}i.visible=!0,i.x=s+o*Math.cos(r)+c,i.y=a+o*Math.sin(r)+u,i.text=l,i.fill=d,i.fontStyle=g,i.fontWeight=f,i.fontSize=y,i.fontFamily=x,i.textAlign=S,i.textBaseline=D})}updateLabelSelection(t){return t.labelSelection.update(t.labelData,void 0,e=>e.label)}updateLabelNodes(t){const{labelSelection:e}=t,i=this.ctx.animationManager.isSkipped();e.each((n,s)=>{n.fill=s.fill,n.fontStyle=s.fontStyle,n.fontWeight=s.fontWeight,n.fontFamily=s.fontFamily}),(i||this.labelsHaveExplicitText())&&this.formatLabelText()}updateTickSelection(t){return t.tickSelection.update(t.tickData,void 0,e=>e.index)}updateTickNodes(t){const{scale:e,radius:i,centerX:n,centerY:s,properties:a}=this,{enabled:o,color:r,fontFamily:l,fontSize:c,fontStyle:u,fontWeight:d,spacing:g}=a.scale.label,f=Ze(a.scale.label.rotation??0);t.tickSelection.each((y,x)=>{if(!o){y.visible=!1;return}y.visible=!0,y.text=x.text,y.fill=r,y.fontFamily=l,y.fontSize=c,y.fontStyle=u,y.fontWeight=d;const S=e.convert(x.value),{textAlign:D,textBaseline:A}=this.getTickLabelAlign(S),I=n+(i+g)*Math.cos(S),w=s+(i+g)*Math.sin(S);y.textAlign=D,y.textBaseline=A,y.x=I,y.y=w,y.rotationCenterX=I,y.rotationCenterY=w,y.rotation=f})}getTickLabelAlign(t){const e=Math.cos(t),i=Math.sin(t);let n,s;const a=be(e,0),o=be(i,0),r=e>0&&!a,l=i>0&&!o;return n="right",a?n="center":r&&(n="left"),s="bottom",o?s="middle":l&&(s="top"),{textAlign:n,textBaseline:s}}getTickLabelInset(t){const{tickData:e,radius:i,centerXOffset:n,centerYOffset:s,seriesRectWidth:a,seriesRectHeight:o,spacing:r,rotation:l}=t,{label:c}=this.properties.scale,u=a/2+n*i,d=o/2+s*i,g=new Tmt;g.fontFamily=c.fontFamily,g.fontSize=c.fontSize,g.fontStyle=c.fontStyle,g.fontWeight=c.fontWeight,g.rotation=l;const f=1e-6;let y=0;for(const x of e){const S=this.scale.convert(x.value),D=Math.cos(S),A=Math.sin(S),I=u+(i+r)*D,w=d+(i+r)*A,{textAlign:N,textBaseline:O}=this.getTickLabelAlign(S);g.text=x.text,g.x=I,g.y=w,g.textAlign=N,g.textBaseline=O,g.rotationCenterX=I,g.rotationCenterY=w;const L=l?Nmt.toCanvas(g):g.getBBox();if(L==null)continue;const R=L.x,P=L.x+L.width,B=L.y,F=L.y+L.height,H=Math.max(0,-R),$=Math.max(0,P-a),Y=Math.max(0,-B),U=Math.max(0,F-o),V=n+D;Math.abs(V)>f&&($>0&&V>0?y=Math.max(y,$/V):H>0&&V<0&&(y=Math.max(y,H/-V)));const Z=s+A;Math.abs(Z)>f&&(U>0&&Z>0?y=Math.max(y,U/Z):Y>0&&Z<0&&(y=Math.max(y,Y/-Z)))}return y}labelsHaveExplicitText(){for(const{datum:t}of this.labelSelection)if(t.text==null)return!1;return!0}formatLabelText(t){const{labelSelection:e,radius:i,textAlign:n,verticalAlign:s}=this,{spacing:a,innerRadiusRatio:o}=this.properties;Amt(this,this.ctx,e,{padding:a,textAlign:n,verticalAlign:s},i*o,t)}resetAllAnimation(){this.ctx.animationManager.stopByAnimationGroupId(this.id),AH([this.datumSelection],Fw),AH([this.needleSelection],DH),this.formatLabelText()}resetAnimation(t){t==="initial"?this.animationState.transition("reset"):t==="ready"&&this.animationState.transition("skip")}animateLabelText(t={}){const{animationManager:e}=this.ctx;let i,n,s,a;if(this.labelSelection.each((o,r)=>{o.opacity=1,r.label==="primary"?(i=o.previousDatum?.value??t.from??r.value,n=r.value):r.label==="secondary"&&(s=o.previousDatum?.value??t.from??r.value,a=r.value)}),!this.labelsHaveExplicitText())if(n==null||a==null)this.formatLabelText();else if(i===n&&s===a)this.formatLabelText({label:n,secondaryLabel:a});else{const o=`${this.id}_labels`;e.animate({id:o,groupId:"label",from:{label:i,secondaryLabel:s},to:{label:n,secondaryLabel:a},phase:t.phase??"update",onUpdate:r=>this.formatLabelText(r),onStop:()=>this.formatLabelText({label:n,secondaryLabel:a})})}}animateEmptyUpdateReady(){const{animationManager:t}=this.ctx,{node:e,needle:i}=MH(!0,this.scale.range[0]);Yy(this.id,"node",t,[this.datumSelection],e,(n,s)=>s.itemId),Yy(this.id,"needle",t,[this.needleSelection],i,()=>"needle"),Yy(this.id,"label",t,[this.labelSelection],C5,(n,s)=>s.label),this.animateLabelText({from:this.properties.scale.min,phase:"initial"})}animateWaitingUpdateReady(){const{animationManager:t}=this.ctx,{node:e,needle:i}=MH(!1,this.scale.range[0]);Yy(this.id,"node",t,[this.datumSelection],e,(n,s)=>s.itemId),Yy(this.id,"needle",t,[this.needleSelection],i,()=>"needle"),this.animateLabelText()}animateReadyResize(){this.resetAllAnimation()}dataCount(){return Number.NaN}getSeriesDomain(){return{domain:[Number.NaN,Number.NaN]}}getSeriesRange(){return[Number.NaN,Number.NaN]}getLegendData(){return[]}getTooltipContent(t){const{id:e,properties:i}=this,{tooltip:n}=i;let s,a,o;if(t.type===0?(s=i.value,a=i.label.text,o=this.ctx.localeManager.t("ariaLabelGaugeValue")):({value:s,text:a}=i.targets[t.index],o=this.ctx.localeManager.t("ariaLabelGaugeTarget")),s!=null)return this.formatTooltipWithContext(n,{data:[{label:a,fallbackLabel:o,value:this.formatLabel(s)}]},{seriesId:e,title:void 0,datum:void 0,value:s})}pickNodeClosestDatum(t){return T5(this,t)}pickFocus(t){return L5(this,t)}getCaptionText(){const{value:t}=this.properties,e=[];return e.push(this.formatLabel(t)),this.labelSelection.each((i,n)=>{const s=ux(this.id,this.ctx,n);s!=null&&e.push(ce(s))}),e.join(". ")}getCategoryValue(t){}datumIndexForCategoryValue(t){}hasItemStylers(){return this.properties.label.itemStyler!=null}};yY.className="RadialGaugeSeries";yY.type="radial-gauge";({...Oe},{...Oe,fontSize:Cn.LARGE});var{BBox:Pmt,Path:zmt}=j,Wp=class extends zmt{constructor(){super(...arguments),this.x1=0,this.x2=0,this.y1=0,this.y2=0,this.height=0,this.inset=0,this.elbows=[]}computeBBox(){const t=Math.min(this.x1,this.x2),e=Math.max(this.x1,this.x2)-t,i=Math.min(this.y1,this.y2),n=Math.max(this.y1,this.y2)-i+this.height;return new Pmt(t,i,e,n)}updatePath(){const{path:t,inset:e}=this;t.clear();const i=this.height-2*this.inset,n=i/2;let s=this.x1+e,a=this.y1+e;t.moveTo(s,a);for(const l of this.elbows)this.updatePathSection(s,a,l.x,l.y,i,-n),s=l.x,a=l.y;const o=this.x2-e,r=this.y2+e;this.updatePathSection(s,a,o,r,i,-n),t.lineTo(o,r+i),s=o,a=r;for(const l of this.elbows.toReversed())this.updatePathSection(s,a,l.x,l.y,i,n),s=l.x,a=l.y;this.updatePathSection(s,a,this.x1+e,this.y1+e,i,n),t.closePath()}updatePathSection(t,e,i,n,s,a){const{path:o}=this,r=at.from(t,e+a+s/2),l=at.from(i,n+a+s/2);if(Math.abs(l.y-r.y)<2){o.lineTo(l.x,l.y);return}let c=at.angle(at.sub(l,r));c<0&&(c=2*Math.PI+c);const u=0,d=Math.PI/2,g=Math.PI,f=Math.PI*1.5,y=CH(r,l,0),x=CH(r,l,s);if(y.radius=f?(o.arc(r.x,e-y.radius,y.radius,d,d+x.angle,!0),o.arc(l.x,n+x.radius,x.radius,f+x.angle,f),o.lineTo(l.x,l.y)):c>u&&c<=d?(o.arc(r.x,e+x.radius,x.radius,f,f+x.angle),o.arc(l.x,n-y.radius,y.radius,d+y.angle,d,!0),o.lineTo(l.x,l.y)):c>d&&c<=g?(o.arc(r.x,e+x.radius,x.radius-s,f,f+x.angle,!0),o.arc(l.x,n-y.radius,y.radius+s,d+y.angle,d),o.lineTo(l.x,l.y)):(o.arc(r.x,e-y.radius,y.radius+s,d,d+y.angle),o.arc(l.x,n+x.radius,x.radius-s,f+x.angle,f,!0),o.lineTo(l.x,l.y))}};M([ut()],Wp.prototype,"x1");M([ut()],Wp.prototype,"x2");M([ut()],Wp.prototype,"y1");M([ut()],Wp.prototype,"y2");M([ut()],Wp.prototype,"height");M([ut()],Wp.prototype,"inset");function CH(t,e,i){const n=at.angle(at.sub(e,t)),s=at.distance(t,e),a=at.add(t,at.rotate(at.from(s/2,0),n)),o=-1/at.gradient(t,e),r=at.intercept(a,o),l=Bmt(.1,.5,Math.PI/2-Math.abs(at.gradient(t,e))),c=at.intersectAtX(o,r,t.x),u=Math.max(i,at.distance(t,c)*l);return{angle:at.angle(at.sub(c,t),at.sub(c,a))/-(1.1-l),radius:u}}function Bmt(t,e,i){return Nt(t,(e-t)*i+t,e)}var{FillGradientDefaults:Vmt,FillPatternDefaults:_mt,FillImageDefaults:Fmt,makeSeriesTooltip:Hmt,SeriesProperties:jmt,Label:Gmt}=j,WA=class extends Gmt{constructor(){super(...arguments),this.spacing=1,this.placement=void 0,this.edgePlacement=void 0}};M([b],WA.prototype,"spacing");M([b],WA.prototype,"placement");M([b],WA.prototype,"edgePlacement");var ih=class extends xt{constructor(){super(...arguments),this.fill=void 0,this.fillOpacity=1,this.stroke=void 0,this.strokeOpacity=1,this.strokeWidth=1,this.lineDash=[0],this.lineDashOffset=0}};M([b],ih.prototype,"fill");M([b],ih.prototype,"fillOpacity");M([b],ih.prototype,"stroke");M([b],ih.prototype,"strokeOpacity");M([b],ih.prototype,"strokeWidth");M([b],ih.prototype,"lineDash");M([b],ih.prototype,"lineDashOffset");M([b],ih.prototype,"itemStyler");var ua=class extends xt{constructor(){super(...arguments),this.spacing=1,this.minSpacing=0,this.width=1,this.alignment="justify",this.verticalAlignment="center",this.sort="auto",this.fill=void 0,this.fillOpacity=1,this.stroke=void 0,this.strokeOpacity=1,this.strokeWidth=1,this.lineDash=[0],this.lineDashOffset=0}};M([b],ua.prototype,"spacing");M([b],ua.prototype,"minSpacing");M([b],ua.prototype,"width");M([b],ua.prototype,"alignment");M([b],ua.prototype,"verticalAlignment");M([b],ua.prototype,"sort");M([b],ua.prototype,"fill");M([b],ua.prototype,"fillOpacity");M([b],ua.prototype,"stroke");M([b],ua.prototype,"strokeOpacity");M([b],ua.prototype,"strokeWidth");M([b],ua.prototype,"lineDash");M([b],ua.prototype,"lineDashOffset");M([b],ua.prototype,"itemStyler");var vn=class extends jmt{constructor(){super(...arguments),this.nodes=void 0,this.idKey="",this.idName=void 0,this.labelKey=void 0,this.labelName=void 0,this.sizeKey=void 0,this.sizeName=void 0,this.fillGradientDefaults=new Vmt,this.fillPatternDefaults=new _mt,this.fillImageDefaults=new Fmt,this.defaultColorRange=[],this.defaultPatternFills=[],this.fills=[],this.strokes=[],this.label=new WA,this.link=new ih,this.node=new ua,this.tooltip=Hmt()}getStyle(t,e,i,n){const{fillOpacity:s,strokeWidth:a,strokeOpacity:o,lineDash:r,lineDashOffset:l,fill:c=e[n%e.length],stroke:u=i[n%e.length]}=t?this.link:this.node;return{fill:c,fillOpacity:s,stroke:u,strokeWidth:a,strokeOpacity:o,lineDash:r,lineDashOffset:l}}};M([b],vn.prototype,"nodes");M([b],vn.prototype,"fromKey");M([b],vn.prototype,"toKey");M([b],vn.prototype,"idKey");M([b],vn.prototype,"idName");M([b],vn.prototype,"labelKey");M([b],vn.prototype,"labelName");M([b],vn.prototype,"sizeKey");M([b],vn.prototype,"sizeName");M([b],vn.prototype,"fillGradientDefaults");M([b],vn.prototype,"fillPatternDefaults");M([b],vn.prototype,"fillImageDefaults");M([b],vn.prototype,"defaultColorRange");M([b],vn.prototype,"defaultPatternFills");M([b],vn.prototype,"fills");M([b],vn.prototype,"strokes");M([b],vn.prototype,"label");M([b],vn.prototype,"link");M([b],vn.prototype,"node");M([b],vn.prototype,"tooltip");var{Transformable:Umt,SeriesNodePickMode:wH,createDatumId:OS,getShapeStyle:NH,getLabelStyles:Wmt,Rect:TH,BBox:LH}=j,bY=class extends x5{constructor(t){super({moduleCtx:t,pickModes:[wH.NEAREST_NODE,wH.EXACT_SHAPE_MATCH]}),this.properties=new vn}isLabelEnabled(){return(this.properties.labelKey!=null||this.nodes==null)&&this.properties.label.enabled}linkFactory(){return new Wp}nodeFactory(){return new TH}createNodeData(){const t=this._nodeDataDependencies?.seriesRectWidth??0,e=this.properties.node.width,{nodeGraph:i,links:n,maxPathLength:s}=this.getNodeGraph(this.createNode.bind(this,e),this.createLink,{includeCircularReferences:!1}),a=i;if(a.size===0)return;const o=this.initialiseColumns(s);this.assignNodesToColumns(a,o,s);const r=Ve(this.properties.label),{columnLabelInsetBefore:l,columnLabelInsetAfter:c}=this.getColumnLabelInsets(o,r,s),u=(t-e-l-c)/(s-1);this.positionNodesInColumnsX(o,u,l),this.createGhostNodesAndColumnDiffs(a,o),this.weightNodes(o);const d=1,{sizeScale:g,nodeSpacing:f}=this.getScaleAndSpacing(o,d);if(g<0){pt.warnOnce("There was insufficient space to display the Sankey Series. Reduce [node.spacing], [node.minSpacing], or provide a larger container.");return}this.positionNodesInColumnsY(o,d,g,f),this.sortAndPositionLinks(a,g);const y=[],x=[];return this.createNodesNodeData(y,a,o,u,r,x),this.createLinksNodeData(y,n,d,g),{itemId:this.id,nodeData:y,labelData:x}}createNode(t,e){return{...e,x:Number.NaN,y:Number.NaN,width:t,height:Number.NaN}}createLink(t){return{...t,x1:Number.NaN,x2:Number.NaN,y1:Number.NaN,y2:Number.NaN,height:Number.NaN,elbows:[]}}initialiseColumns(t){const e=[];for(let i=0;ix+S.size,0),u.reduce((x,{link:S})=>x+S.size,0));if(c.length===0&&u.length===0||d===0){r.columnIndex=-1;continue}const g=this.getNodeColumn(e,r,i);l.size=d;const{label:f}=this.properties,y=f.enabled?this.getLabelText(l.label,l.datum,o,"label",[],this.properties.label,{datum:l.datum,value:l.label,fromKey:n,toKey:s,sizeKey:a,size:d}):void 0;l.label=ce(y),g.nodes.push(r),g.size+=d,r.columnIndex=g.index}}getNodeColumn(t,e,i){const{node:{alignment:n}}=this.properties,{linksBefore:s,linksAfter:a,maxPathLengthBefore:o,maxPathLengthAfter:r}=e;let l;switch(n){case"left":l=t[o];break;case"right":l=t[i-1-r];break;case"center":{if(s.length!==0)l=t[o];else if(a.length===0)l=t[0];else{const c=a.reduce((u,d)=>Math.min(u,d.node.maxPathLengthBefore),i)-1;l=t[c]}break}case"justify":{l=a.length===0?t[i-1]:t[o];break}}return l}getColumnLabelInsets(t,e,i){const{label:{spacing:n,placement:s,edgePlacement:a},node:{width:o}}=this.properties,r=this._nodeDataDependencies?.seriesRectWidth??0;let l=0,c=0;if(this.isLabelEnabled()&&(a==="outside"||a==null)){const u=(d,g)=>{const f=g;if(f.datum.label==null||f.datum.label==="")return d;let y=(r-o)/(i-1)-n;s==="center"&&a==null&&(y/=2);const x=kc(f.datum.label,{maxWidth:y,maxHeight:f.datum.height,font:this.properties.label,textWrap:"never"});let{width:S}=e.measureLines(x);return s==="center"&&a==null&&(S/=2),Math.max(d,S)};(s!=="right"||a==="outside")&&(l=o+t[0].nodes.reduce(u,0)),(s!=="left"||a==="outside")&&(c=o+t.at(-1).nodes.reduce(u,0))}return{columnLabelInsetBefore:l,columnLabelInsetAfter:c}}positionNodesInColumnsX(t,e,i){for(let n=0;nt.columnIndex;a--){const o=n.link.size,r={ghost:!0,datum:{...t.datum,size:o,y:0,height:0},weight:0,linksBefore:[{node:{columnIndex:a-1,datum:{size:o}}}],linksAfter:[{node:{columnIndex:a+1,datum:{size:o}}}],link:n.link,columnIndex:t.columnIndex,size:t.datum.size,closestColumnDiff:i,fromNode:{y:s.datum.y},toNode:{y:0}};e[a].size+=o,e[a].nodes.push(r)}}}weightNodes(t){const{properties:e}=this;if(e.node.sort==="data")return;if(e.node.sort!=="auto"){for(const s of t)s.nodes.sort((a,o)=>this.sortNodes(a,o));return}const i=t.toSorted((s,a)=>{const o=s.nodes.reduce((l,c)=>Math.max(l,c.datum.size),0);return a.nodes.reduce((l,c)=>Math.max(l,c.datum.size),0)-o}),n={};for(let s=0;sa.weight-o.weight)}for(const s of t){for(const a of s.nodes)"ghost"in a&&a.ghost||(a.weight+=a.linksBefore.reduce((o,r)=>{if(r.node.columnIndex!==s.index-1)return o;const l=t[r.node.columnIndex].nodes.indexOf(r.node)*n[r.node.columnIndex];return Math.max(o,l)},0),a.weight+=a.linksAfter.reduce((o,r)=>{if(r.node.columnIndex!==s.index+1)return o;const l=t[r.node.columnIndex].nodes.indexOf(r.node)*n[r.node.columnIndex];return Math.max(o,l)},0));s.nodes.sort((a,o)=>this.sortNodes(a,o))}}getScaleAndSpacing(t,e){const i=this._nodeDataDependencies?.seriesRectHeight??0,n=o=>t.reduce((r,{size:l,nodes:c})=>{const u=i-c.length*e,g=(1-(c.length-1)*o/u)/l;return Math.min(r,g)},1/0);let s=this.properties.node.spacing,a=n(s);for(;a<0&&s>this.properties.node.minSpacing;)s-=1,a=n(s);return{nodeSpacing:s,sizeScale:a}}positionNodesInColumnsY(t,e,i,n){const s=this._nodeDataDependencies?.seriesRectHeight??0;for(const a of t){let o=0;for(const c of a.nodes){const u=s*c.datum.size*i;c.datum.height=Math.max(e,u),o+=u}const r=n*(a.nodes.length-1);let l=0;this.properties.node.verticalAlignment==="bottom"?l=s-o-r:this.properties.node.verticalAlignment==="center"&&(l=(s-o-r)/2);for(const c of a.nodes)c.datum.y=l,l+=s*c.datum.size*i+n,"ghost"in c&&c.ghost&&c.link.elbows.push({x:a.x,y:c.datum.y})}}sortAndPositionLinks(t,e){const i=this._nodeDataDependencies?.seriesRectHeight??0;for(const{datum:n,linksBefore:s,linksAfter:a}of t.values()){let o=n.y;s.sort((l,c)=>this.sortNodes(l.node,c.node));for(const{link:l}of s)l.y2=o,o+=l.size*i*e;let r=n.y;a.sort((l,c)=>this.sortNodes(l.node,c.node,{invertColumnSort:!0}));for(const{link:l}of a)l.y1=r,r+=l.size*i*e}}createNodesNodeData(t,e,i,n,s,a){for(const[o,r]of i.entries()){const l=o===0,c=o===i.length-1;let u=-1/0;r.nodes.sort((d,g)=>d.datum.y-g.datum.y);for(const d of r.nodes){if("ghost"in d&&d.ghost)continue;const{datum:g}=d;g.midPoint={x:g.x+g.width/2,y:g.y+g.height/2},t.push(g),u=this.createNodeLabelData(e,n,s,a,g,l,c,u)}}}createNodeLabelData(t,e,i,n,s,a,o,r){if(s.label==null)return r;const{label:{spacing:l,edgePlacement:c,fontSize:u}}=this.properties,d=this._nodeDataDependencies?.seriesRectWidth??0,g=s.y+s.height/2;let f;if(!a&&!o){const I=nr(u),w=g-I,N=g+I;let O=d;for(const{datum:R}of t.values())R.x>s.x&&Math.max(R.y,w)<=Math.min(R.y+R.height,N)&&(O=Math.min(O,R.x-l));const L=O-s.x-2*l;f=kc(s.label,{maxWidth:L,maxHeight:s.height,font:this.properties.label,textWrap:"never",overflow:"hide"})}if(f==null||f===""){const I=c==null&&(a||o)?l:l*2;f=kc(s.label,{maxWidth:e-I,maxHeight:s.height,font:this.properties.label,textWrap:"never"})}if(f==="")return r;const{height:y}=i.measureLines(f),x=g-y/2,S=g+y/2,{x:D,textAlign:A}=this.getNodeLabelPlacement(s,a,o);return x>=r&&(n.push({x:D,y:g,textAlign:A,text:f,size:s.size,nodeDatum:s,datumIndex:s.datumIndex}),r=S),r}getNodeLabelPlacement(t,e,i){const{label:{spacing:n,placement:s,edgePlacement:a}}=this.properties;let o=t.x+t.width+n,r="left",l=s;return e&&a==null&&s==null&&(l="left"),a==="outside"?(e&&(l="left"),i&&(l="right")):a==="inside"&&(e&&(l="right"),i&&(l="left")),l==="left"?(o=t.x-n,r="right"):l==="center"&&(o=t.x+t.width/2,r="center"),{x:o,textAlign:r}}createLinksNodeData(t,e,i,n){const s=this._nodeDataDependencies?.seriesRectHeight??0,a=this.properties.node.width;for(const o of e){const{fromNode:r,toNode:l,size:c}=o;o.height=Math.max(i,s*c*n),o.x1=r.x+a,o.x2=l.x,o.midPoint={x:(o.x1+o.x2)/2,y:(o.y1+o.y2)/2+o.height/2},t.push(o)}}sortNodes(t,e,i){const{properties:n}=this;return n.node.sort==="ascending"?(t.datum.label??"").localeCompare(e.datum.label??""):n.node.sort==="descending"?(e.datum.label??"").localeCompare(t.datum.label??""):n.node.sort==="data"?0:t.columnIndexe.columnIndex?i?.invertColumnSort?-1:1:t.weight===e.weight?t.datum.size-e.datum.size:t.closestColumnDiffe.closestColumnDiff?-1:t.weight-e.weight}updateLabelSelection(t){const e=this.isLabelEnabled()?t.labelData:[];return t.labelSelection.update(e)}updateLabelNodes(t){const e=this.getHighlightedDatum();t.labelSelection.each((i,n)=>{const{x:s,y:a,textAlign:o,text:r,datumIndex:l,nodeDatum:c}=n,u={fromKey:this.properties.fromKey,size:n.size,sizeKey:this.properties.sizeKey,toKey:this.properties.toKey},d=this.isLabelHighlighted(c,e),g=this.getHighlightStyle(d,l),f=Wmt(this,void 0,u,this.properties.label,d,e),{color:y,fontStyle:x,fontWeight:S,fontSize:D,fontFamily:A}=f;i.visible=!0,i.x=s,i.y=a,i.text=r,i.fill=y,i.fontStyle=x,i.fontWeight=S,i.fontSize=D,i.fontFamily=A,i.textAlign=o,i.textBaseline="middle";const I=g.opacity??1;i.opacity=I,i.fillOpacity=I,i.setBoxing(f)})}updateNodeSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>OS(e.type,e.id))}getNodeStyle(t,e,i){const{properties:n}=this,{fills:s,strokes:a,defaultColorRange:o,defaultPatternFills:r,fillGradientDefaults:l,fillPatternDefaults:c,fillImageDefaults:u}=n,{itemStyler:d}=n.node,g=o[e%o.length].map(A=>({color:A})),f=r[e%r.length],y=this.getHighlightStyle(i,t.datumIndex),x=Et(y,n.getStyle(!1,s,a,e)),S=n.node.fill!=null;let D=NH(x,S?l:{...l.toJson(),colorStops:g},S?c:{...c.toJson(),fill:f,stroke:f},u);if(d!=null&&t.datumIndex!=null){const A=this.cachedDatumCallback(OS(t.datumIndex.index,"node",i?"highlight":"node"),()=>{const I=this.makeItemStylerParams(t,i,D);return this.callWithContext(d,I)});A&&(D=Et(A,D,{...l.toJson(),colorStops:g},{...c.toJson(),fill:f,stroke:f},u))}return D.opacity=1,D}makeItemStylerParams({datum:t,datumIndex:e,size:i=0,label:n},s,a){const{id:o}=this,r=this.ctx.highlightManager?.getActiveHighlight(),l=this.getHighlightStateString(r,s,e),c=this.filterItemStylerFillParams(a.fill)??a.fill;return{seriesId:o,datum:t,highlightState:l,...a,size:i,label:n,fill:c}}updateNodeNodes(t){const{datumSelection:e,isHighlight:i}=t,n=this.getShapeFillBBox();e.each((s,a)=>{const{datumIndex:o}=a,r=this.getNodeStyle(a,o.index,i);s.x=a.x,s.y=a.y,s.width=Math.max(a.width,0),s.height=Math.max(a.height,0),s.setStyleProperties(r,n)})}getShapeFillBBox(){const t=this._nodeDataDependencies?.seriesRectWidth??0,e=this._nodeDataDependencies?.seriesRectHeight??0,i=new LH(0,0,t,e);return{series:i,axis:i}}updateLinkSelection(t){return t.datumSelection.update(t.nodeData,void 0,e=>OS(e.type,e.index,e.fromNode.id,e.toNode.id))}getLinkStyle({datumIndex:t,datum:e},i,n){const{id:s,properties:a}=this,{fills:o,strokes:r,defaultColorRange:l,defaultPatternFills:c,fillGradientDefaults:u,fillPatternDefaults:d,fillImageDefaults:g}=a,{itemStyler:f}=a.link,y=l[i.index%l.length].map(w=>({color:w})),x=c[i.index%c.length],S=this.getHighlightStyle(n,t),D=Et(S,a.getStyle(!0,o,r,i.index)),A=a.link.fill!=null;let I=NH(D,A?u:{...u.toJson(),colorStops:y},A?d:{...d.toJson(),fill:x,stroke:x},g);if(f!=null&&t!=null){const w=this.cachedDatumCallback(OS(t.index,"link",n?"highlight":"node"),()=>{const N=this.ctx.highlightManager?.getActiveHighlight(),O=this.getHighlightStateString(N,n,t);return this.callWithContext(f,{seriesId:s,datum:e,highlightState:O,...I})});w&&(I=Et(w,I,{...u.toJson(),colorStops:y},{...d.toJson(),fill:x,stroke:x},g))}return I.opacity=1,I}updateLinkNodes(t){const{datumSelection:e,isHighlight:i}=t,n=this.getShapeFillBBox();e.each((s,a)=>{const o=a.fromNode.datumIndex,r=this.getLinkStyle(a,o,i);s.x1=a.x1,s.y1=a.y1,s.x2=a.x2,s.y2=a.y2,s.height=a.height,s.elbows=a.elbows,s.setStyleProperties(r,n),s.inset=s.strokeWidth/2})}getTooltipContent(t){const{id:e,linksProcessedData:i,nodesProcessedData:n,properties:s,ctx:{formatManager:a}}=this,{fromKey:o,toKey:r,sizeKey:l,sizeName:c,tooltip:u}=s,d=this.contextNodeData?.nodeData.find(A=>A.datumIndex.type===t.type&&A.datumIndex.index===t.index);if(d==null)return;const g=d.type===0?d.fromNode.index:d.index,f=d.type===0?`${d.fromNode.label} - ${d.toNode.label}`:d.label,y=t.type===0?i?.dataSources.get(this.id)?.data[t.index]:n?.dataSources.get(this.id)?.data[t.index],x=d.size;let S;if(d.type===0){const A=d.fromNode.datumIndex;S=this.getLinkStyle({datumIndex:t,datum:y},A,!1)}else S=this.getNodeStyle({datumIndex:t,datum:y},t.index,!1);const D=[];if(l!=null){const A=a.format(this.callWithContext.bind(this),{type:"number",value:x,datum:y,seriesId:e,legendItemName:void 0,key:l,source:"tooltip",property:"size",domain:[],boundSeries:this.getFormatterContext("size"),fractionDigits:void 0,visibleDomain:void 0});D.push({label:c,fallbackLabel:l,value:A??String(x)})}return this.formatTooltipWithContext(u,{title:f,symbol:this.legendItemSymbol(d.type,g,S),data:D},{seriesId:e,datum:y,title:f,fromKey:o,toKey:r,sizeKey:l,sizeName:c,size:x,...S})}computeFocusBounds(t){if(t instanceof TH){const{x:e,y:i,width:n,height:s}=t,a=new LH(e,i,n,s);return Umt.toCanvas(this.contentGroup,a)}return t}hasItemStylers(){return this.properties.node.itemStyler!=null||this.properties.link.itemStyler!=null||this.properties.label.itemStyler!=null}};bY.className="SankeySeries";bY.type="sankey";var{sankeySeriesThemeableOptionsDef:Kmt}=j,pv={...Kmt,..._e,type:ht(Jt("sankey")),fromKey:ht(K),toKey:ht(K)};pv.fillGradientDefaults=Mt(sD);pv.fillPatternDefaults=Mt(aD);pv.fillImageDefaults=Mt(oD);pv.defaultColorRange=Mt(Ft(Ft(It)));pv.defaultPatternFills=Mt(Ft(It));({...Oe});var{HierarchySeriesProperties:Ymt,makeSeriesTooltip:$mt,HighlightProperties:Xmt}=j,ku=class extends xt{};M([b],ku.prototype,"fill");M([b],ku.prototype,"fillOpacity");M([b],ku.prototype,"stroke");M([b],ku.prototype,"strokeWidth");M([b],ku.prototype,"strokeOpacity");M([b],ku.prototype,"opacity");var rE=class extends Xmt{constructor(){super(...arguments),this.highlightedBranch=new ku,this.unhighlightedBranch=new ku}};M([b],rE.prototype,"highlightedBranch");M([b],rE.prototype,"unhighlightedBranch");var da=class extends Ymt{constructor(){super(...arguments),this.fillOpacity=1,this.strokeWidth=0,this.strokeOpacity=1,this.cornerRadius=0,this.highlight=new rE,this.label=new Om,this.secondaryLabel=new PA,this.tooltip=$mt()}getStyle(t){const{fills:e,strokes:i,fillOpacity:n,strokeWidth:s,strokeOpacity:a}=this;return{fill:e[t%e.length],fillOpacity:n,stroke:i[t%i.length],strokeWidth:s,strokeOpacity:a,opacity:1}}};M([b],da.prototype,"sizeName");M([b],da.prototype,"labelKey");M([b],da.prototype,"secondaryLabelKey");M([b],da.prototype,"fillOpacity");M([b],da.prototype,"strokeWidth");M([b],da.prototype,"strokeOpacity");M([b],da.prototype,"cornerRadius");M([b],da.prototype,"sectorSpacing");M([b],da.prototype,"padding");M([b],da.prototype,"itemStyler");M([b],da.prototype,"highlight");M([b],da.prototype,"label");M([b],da.prototype,"secondaryLabel");M([b],da.prototype,"tooltip");var{fromToMotion:Zmt,createDatumId:qmt,PointerEvents:Qmt,Sector:OH,Group:ES,ScalableGroup:Jmt,Selection:jw,TransformableText:Gw,BBox:EH,getLabelStyles:tyt,toHierarchyHighlightString:eyt}=j,iyt=class extends j.HierarchyNode{constructor(){super(...arguments),this.label=void 0,this.secondaryLabel=void 0,this.contentHeight=0,this.bbox=void 0,this.startAngle=0,this.endAngle=0}};function xY(t,e=0,i=2*Math.PI/t.sumSize){for(const n of t.children){const s=e+n.sumSize*i;n.startAngle=e,n.endAngle=s,xY(n,e,i),e=s}}var vY=class extends j.HierarchySeries{constructor(t){super(t),this.NodeClass=iyt,this.properties=new da,this.scalingGroup=this.contentGroup.appendChild(new Jmt),this.sectorGroup=this.scalingGroup.appendChild(new ES),this.highlightSectorGroup=this.scalingGroup.appendChild(new ES),this.sectorLabelGroup=this.scalingGroup.appendChild(new ES),this.datumSelection=jw.select(this.sectorGroup,OH),this.labelSelection=jw.select(this.sectorLabelGroup,ES),this.highlightSelection=jw.select(this.highlightSectorGroup,OH),this.sectorLabelGroup.pointerEvents=Qmt.None}processData(){super.processData(),xY(this.rootNode)}updateSelections(){const t=this.getActiveHighlightNode();if(this.highlightSelection.update(t==null?[]:[t],void 0,a=>this.getDatumId(a)),!this.nodeDataRefresh)return;this.nodeDataRefresh=!1;const{chart:e}=this;if(e==null||e.seriesRect==null)return;const n=Array.from(this.rootNode),s=a=>{a.append([new Gw({tag:0}),new Gw({tag:1})])};this.datumSelection.update(n,void 0,a=>this.getDatumId(a)),this.labelSelection.update(n,s,a=>this.getDatumId(a))}getItemStyle(t,e){const{properties:i,colorScale:n}=this,{itemStyler:s}=i,a=t.datumIndex?.[0]??0,o=this.getActiveHighlightNode(),r=this.getHierarchyHighlightState(e,o,t),l=this.getHierarchyHighlightStyles(r,this.properties.highlight),c=Et(l,i.getStyle(a));t.colorValue!=null&&l?.fill==null&&(c.fill=n.convert(t.colorValue));let u=c;if(s!=null&&t!=null){const d=this.cachedDatumCallback(qmt(this.getDatumId(t),e?"highlight":"node"),()=>{const g=this.makeItemStylerParams(t,u,eyt(r));return this.callWithContext(s,g)});d&&(u=Et(d,u))}return u}makeItemStylerParams(t,e,i){const{id:n}=this,s=this.filterItemStylerFillParams(e.fill)??e.fill;return{seriesId:n,datum:t.datum,depth:t.depth??0,highlightState:i,...e,fill:s}}updateNodes(){const{chart:t,data:e,maxDepth:i}=this;if(t==null||e==null)return;const{width:n,height:s}=t.seriesRect,{sectorSpacing:a=0,padding:o=0,cornerRadius:r,childrenKey:l,colorKey:c,colorName:u,labelKey:d,secondaryLabelKey:g,sizeKey:f,sizeName:y}=this.properties;this.contentGroup.translationX=n/2,this.contentGroup.translationY=s/2;const x=a*.5,S=Math.min(n,s)/2,D=S/(i+1),A=-Math.PI/2,I={series:new EH(-S,-S,2*S,2*S),axis:new EH(-S,-S,2*S,2*S)};this.rootNode?.walk(R=>{const{startAngle:P,endAngle:B}=R;if(R.depth!=null){const F=(P+B)/2+A,H=(R.depth+.5)*D;R.midPoint.x=Math.cos(F)*H,R.midPoint.y=Math.sin(F)*H}}),this.rootNode?.walk(R=>{const{datum:P,depth:B,startAngle:F,endAngle:H,parent:$,sumSize:Y}=R;R.label=void 0,R.secondaryLabel=void 0,R.contentHeight=0;let U;if(P!=null&&B!=null&&d!=null){const Ce=P[d];U=this.getLabelText(Ce,P,d,"label",[],this.properties.label,{depth:B,datum:P,childrenKey:l,colorKey:c,colorName:u,labelKey:d,secondaryLabelKey:g,sizeKey:f,sizeName:y,value:Ce})}U===""&&(U=void 0);let V;if(P!=null&&B!=null&&g!=null){const Ce=P[g];V=this.getLabelText(Ce,P,g,"secondaryLabel",[],this.properties.secondaryLabel,{depth:B,datum:P,childrenKey:l,colorKey:c,colorName:u,labelKey:d,secondaryLabelKey:g,sizeKey:f,sizeName:y,value:Ce})}if(V===""&&(V=void 0),B==null)return;const Z=B*D+x,W=(B+1)*D-x,q=Z>x?x/Z:x,nt=W>x?x/W:x,G=F+q,st=H+q-G,lt=F+nt,Dt=H+nt-lt,kt=Ce=>{if(B===0&&$?.sumSize===Y)return{width:2*Math.sqrt(W**2-(Ce*.5)**2),height:Ce,meta:0};const zn=Ce,Kn=2*Math.sqrt(W**2-(Z+zn)**2),ln=st=mr?{width:mi,height:zn,meta:1}:{width:mr,height:Lo,meta:2}},Vt=EO(ce(U),this.properties.label,ce(V),this.properties.secondaryLabel,{padding:o},kt);if(Vt==null)return;const{width:Kt,height:ae,meta:ne,label:Qt,secondaryLabel:zt}=Vt,Pt=A+(F+H)/2,ue=Math.sin(Pt)>=0,oe=Math.cos(Pt)>=0,ke=(ue?3:12)&(oe?6:9);let Ye;switch(ne){case 0:Ye=0;break;case 1:{const Di=W-(D-ae)*.58,zn=Math.sqrt((W-o)**2-(Kt/2)**2);Ye=Math.min(Di,zn);break}case 2:if(B===0){const Ce=ae/(2*Math.tan(st*.5))+Kt*.5,Di=Math.sqrt(W**2-(ae*.5)**2)-Kt*.5;Ye=(Ce+Di)*.5}else Ye=(Z+W)*.5;break}if(Qt!=null){const{fontStyle:Ce="normal",fontFamily:Di,fontWeight:zn="normal",color:Kn="black"}=this.properties.label;R.label={...Qt,fontStyle:Ce,fontFamily:Di,fontWeight:zn,color:Kn,labelPlacement:ne,circleQuarter:ke,radius:Ye,theta:Pt}}if(zt!=null){const{fontStyle:Ce="normal",fontFamily:Di,fontWeight:zn="normal",color:Kn="black"}=this.properties.secondaryLabel;R.secondaryLabel={...zt,fontStyle:Ce,fontFamily:Di,fontWeight:zn,color:Kn,labelPlacement:ne,circleQuarter:ke,radius:Ye,theta:Pt}}R.contentHeight=Vt.height});const w=(R,P,B)=>{const{depth:F,startAngle:H,endAngle:$}=R;if(F==null){P.visible=!1;return}P.visible=!0;const Y=this.getItemStyle(R,B),U=Y.fill,V=Y.strokeWidth,Z=an(U)&&U.bounds!=="item"?I:void 0;P.setStyleProperties(Y,Z),P.centerX=0,P.centerY=0,P.innerRadius=F*D,P.outerRadius=(F+1)*D,P.startAngle=H+A,P.endAngle=$+A,P.inset=x+V*.5,P.cornerRadius=r};this.datumSelection.each((R,P)=>{w(P,R,!1)}),this.highlightSelection.each((R,P)=>{w(P,R,!0)});const N=this.getActiveHighlightNode(),O=(R,P,B,F)=>{const{depth:H,contentHeight:$}=R,Y=B===0,U=Y?R.label:R.secondaryLabel;if(H==null||U==null){P.visible=!1;return}const{labelPlacement:V,circleQuarter:Z,radius:W,theta:q}=U,nt=this.getHierarchyHighlightState(F,N,R),{opacity:G}=this.getHierarchyHighlightStyles(nt,this.properties.highlight)??{},et={childrenKey:this.properties.childrenKey,colorKey:this.properties.colorKey,colorName:this.properties.colorName??this.properties.colorKey,depth:R.depth??Number.NaN,labelKey:this.properties.labelKey,secondaryLabelKey:this.properties.secondaryLabelKey,sizeKey:this.properties.sizeKey,sizeName:this.properties.sizeName??this.properties.sizeKey},st=Y?this.properties.label:this.properties.secondaryLabel,lt=this.ctx.highlightManager?.getActiveHighlight(),mt=tyt(this,R,et,st,F,lt);switch(P.text=U.text,P.fontSize=U.fontSize,P.lineHeight=U.lineHeight,P.fontStyle=U.fontStyle,P.fontFamily=U.fontFamily,P.fontWeight=U.fontWeight,P.fillOpacity=G??1,P.fill=mt.color,P.setBoxing(mt),V){case 0:P.textAlign="center",P.textBaseline="top",P.translationX=0,P.translationY=(Y?0:$-U.height)-$*.5,P.rotation=0;break;case 1:{const Dt=(Z&3)!==0,kt=Y===!Dt?W:W-($-U.height);P.textAlign="center",P.textBaseline=Dt?"bottom":"top",P.translationX=Math.cos(q)*kt,P.translationY=Math.sin(q)*kt,P.rotation=Dt?q-Math.PI*.5:q+Math.PI*.5;break}case 2:{const Dt=(Z&6)!==0,kt=Y===!Dt?($-U.height)*.5:(U.height-$)*.5;P.textAlign="center",P.textBaseline="middle",P.translationX=Math.cos(q)*W+Math.cos(q+Math.PI/2)*kt,P.translationY=Math.sin(q)*W+Math.sin(q+Math.PI/2)*kt,P.rotation=Dt?q:q+Math.PI;break}}P.visible=!0},L=this.getActiveHighlightNode();for(const R of this.labelSelection.selectByClass(Gw)){const P=R.closestDatum();O(P,R,R.tag,P===L)}}getTooltipContent(t){const{id:e,properties:i,ctx:n}=this,{labelKey:s,secondaryLabelKey:a,childrenKey:o,sizeKey:r,sizeName:l,colorKey:c,colorName:u,tooltip:d}=i,{formatManager:g}=n,f=t.reduce((O,L)=>O?.children[L],this.rootNode);if(f==null)return;const{datum:y,depth:x}=f;if(y==null||x==null)return;const S=[],D=r==null?void 0:y[r];if(D!=null){const O=[0,this.rootNode?.sumSize??0],L=g.format(this.callWithContext.bind(this),{type:"number",value:D,datum:y,seriesId:e,legendItemName:void 0,key:r,source:"tooltip",property:"size",boundSeries:this.getFormatterContext("size"),domain:O,fractionDigits:void 0,visibleDomain:void 0});S.push({label:l,fallbackLabel:r,value:L??Or(D)})}const A=c==null?void 0:y[c];if(A!=null){const{colorDomain:O}=this,L=g.format(this.callWithContext.bind(this),{type:"number",value:A,datum:y,seriesId:e,legendItemName:void 0,key:c,source:"tooltip",property:"color",boundSeries:this.getFormatterContext("color"),domain:O,fractionDigits:void 0,visibleDomain:void 0});S.push({label:u,fallbackLabel:c,value:L??Or(A)})}const I=this.getItemStyle({...f,colorValue:A??f.colorValue},!1),N={shape:"square",fill:I.fill,fillOpacity:1,stroke:void 0,strokeWidth:0,strokeOpacity:1,lineDash:[0],lineDashOffset:0};return an(N.fill)&&(N.fill={...N.fill,gradient:"linear",rotation:0,reverse:!1}),this.formatTooltipWithContext(d,{title:s==null?void 0:y[s],symbol:{marker:N},data:S},{seriesId:e,datum:y,title:void 0,depth:x,labelKey:s,secondaryLabelKey:a,childrenKey:o,sizeKey:r,sizeName:l,colorKey:c,colorName:u,...I})}createNodeData(){}pickNodeClosestDatum(t){return this.pickNodeNearestDistantObject(t,this.datumSelection.nodes())}animateEmptyUpdateReady(){Zmt(this.id,"nodes",this.ctx.animationManager,[this.scalingGroup],{toFn(){return{scalingX:1,scalingY:1}},fromFn(){return{scalingX:0,scalingY:0}}})}computeFocusBounds(t){return t}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.label.itemStyler!=null}};vY.className="SunburstSeries";vY.type="sunburst";var{sunburstSeriesThemeableOptionsDef:nyt}=j;({...nyt,...At(_e,["highlightStyle","highlight","showInLegend"]),type:ht(Jt("sunburst"))});({...Oe,fontSize:Cn.LARGE},{...Oe,fontSize:Cn.SMALLEST});var{HierarchySeriesProperties:syt,makeSeriesTooltip:ayt,Label:oyt}=j,SY=class extends oyt{constructor(){super(...arguments),this.spacing=0}};M([b],SY.prototype,"spacing");var Cu=class extends xt{};M([b],Cu.prototype,"fill");M([b],Cu.prototype,"fillOpacity");M([b],Cu.prototype,"stroke");M([b],Cu.prototype,"strokeWidth");M([b],Cu.prototype,"strokeOpacity");M([b],Cu.prototype,"opacity");var lE=class extends xt{constructor(){super(...arguments),this.highlightedItem=new Cu,this.unhighlightedItem=new Cu}};M([b],lE.prototype,"highlightedItem");M([b],lE.prototype,"unhighlightedItem");var pl=class extends xt{};M([b],pl.prototype,"fill");M([b],pl.prototype,"fillOpacity");M([b],pl.prototype,"stroke");M([b],pl.prototype,"strokeWidth");M([b],pl.prototype,"strokeOpacity");M([b],pl.prototype,"opacity");var gv=class extends xt{constructor(){super(...arguments),this.highlightedBranch=new pl,this.highlightedItem=new pl,this.unhighlightedItem=new pl,this.unhighlightedBranch=new pl}};M([b],gv.prototype,"highlightedBranch");M([b],gv.prototype,"highlightedItem");M([b],gv.prototype,"unhighlightedItem");M([b],gv.prototype,"unhighlightedBranch");var To=class extends xt{constructor(){super(...arguments),this.fill=void 0,this.fillOpacity=1,this.strokeWidth=1,this.strokeOpacity=1,this.cornerRadius=0,this.textAlign="center",this.gap=0,this.padding=0,this.interactive=!0,this.label=new SY,this.highlight=new lE}};M([b],To.prototype,"fill");M([b],To.prototype,"fillOpacity");M([b],To.prototype,"stroke");M([b],To.prototype,"strokeWidth");M([b],To.prototype,"strokeOpacity");M([b],To.prototype,"cornerRadius");M([b],To.prototype,"textAlign");M([b],To.prototype,"gap");M([b],To.prototype,"padding");M([b],To.prototype,"interactive");M([b],To.prototype,"label");M([b],To.prototype,"highlight");var Ka=class extends xt{constructor(){super(...arguments),this.fill=void 0,this.fillOpacity=1,this.strokeWidth=1,this.strokeOpacity=1,this.cornerRadius=0,this.textAlign="center",this.verticalAlign="middle",this.gap=0,this.padding=0,this.label=new Om,this.secondaryLabel=new PA,this.highlight=new gv}};M([b],Ka.prototype,"fill");M([b],Ka.prototype,"fillOpacity");M([b],Ka.prototype,"stroke");M([b],Ka.prototype,"strokeWidth");M([b],Ka.prototype,"strokeOpacity");M([b],Ka.prototype,"cornerRadius");M([b],Ka.prototype,"textAlign");M([b],Ka.prototype,"verticalAlign");M([b],Ka.prototype,"gap");M([b],Ka.prototype,"padding");M([b],Ka.prototype,"label");M([b],Ka.prototype,"secondaryLabel");M([b],Ka.prototype,"highlight");var Wl=class extends syt{constructor(){super(...arguments),this.tooltip=ayt(),this.group=new To,this.tile=new Ka,this.undocumentedGroupFills=[],this.undocumentedGroupStrokes=[]}getStyle(t,e,i,n){const{fillOpacity:s,strokeWidth:a,strokeOpacity:o,fill:r=t?e[n%e.length]:e[Math.min(n,e.length)],stroke:l=t?i[n%e.length]:i[Math.min(n,i.length)]}=t?this.tile:this.group;return{fill:r,fillOpacity:s,stroke:l,strokeWidth:a,strokeOpacity:o,opacity:1}}};M([b],Wl.prototype,"sizeName");M([b],Wl.prototype,"labelKey");M([b],Wl.prototype,"secondaryLabelKey");M([b],Wl.prototype,"itemStyler");M([b],Wl.prototype,"tooltip");M([b],Wl.prototype,"group");M([b],Wl.prototype,"tile");M([b],Wl.prototype,"undocumentedGroupFills");M([b],Wl.prototype,"undocumentedGroupStrokes");var{createDatumId:ryt,Rect:RH,Group:PH,BBox:Fg,Selection:Uw,Text:Ww,Transformable:lyt,getLabelStyles:cyt,HierarchyHighlightState:Sr,toHierarchyHighlightString:$y}=j,hyt=class extends j.HierarchyNode{constructor(){super(...arguments),this.labelValue=void 0,this.secondaryLabelValue=void 0,this.label=void 0,this.secondaryLabel=void 0,this.bbox=void 0,this.padding=void 0}};function Fh(t){return t.children.length>0?t.sumSize-t.sizeValue:t.sizeValue}var zH={left:0,center:.5,right:1},uyt={top:0,middle:.5,bottom:1};(class extends j.Group{distanceSquared(t,e){return this.getBBox().distanceSquared(t,e)}});var MY=class extends j.HierarchySeries{constructor(){super(...arguments),this.NodeClass=hyt,this.properties=new Wl,this.rectGroup=this.contentGroup.appendChild(new PH),this.datumSelection=Uw.select(this.rectGroup,RH),this.labelSelection=Uw.select(this.labelGroup,PH),this.highlightSelection=Uw.select(this.rectGroup,RH)}groupTitleHeight(t,e){const{label:n}=this.properties.group,{labelValue:s}=t,{fontSize:a}=n;if(n.enabled&&s!=null&&a<=e.width/3&&a<=e.height/3){const{height:o}=Ve(n).measureLines(s);return Math.max(o,a)}}getNodePadding(t,e){if(t.parent==null)return{top:0,right:0,bottom:0,left:0};if(t.children.length===0){const{padding:o}=this.properties.tile;return{top:o,right:o,bottom:o,left:o}}const{padding:i,label:{spacing:n}}=this.properties.group,s=this.groupTitleHeight(t,e),a=s==null?0:s+n;return{top:i+a,right:i,bottom:i,left:i}}sortChildren({children:t}){const e=Array.from(t,(n,s)=>s).filter(n=>Fh(t[n])>0).sort((n,s)=>Fh(t[s])-Fh(t[n]));return{sortedChildrenIndices:e,childAt:n=>{const s=e[n];return t[s]}}}squarify(t,e){const{datum:i,children:n}=t;if(e.width<=0||e.height<=0){t.bbox=void 0,t.padding=void 0,t.midPoint.x=Number.NaN,t.midPoint.y=Number.NaN;return}const s=i==null?{top:0,right:0,bottom:0,left:0}:this.getNodePadding(t,e);t.parent==null?(t.bbox=void 0,t.padding=void 0,t.midPoint.x=Number.NaN,t.midPoint.y=Number.NaN):(t.bbox=e,t.padding=s,t.midPoint.x=e.x+e.width/2,t.midPoint.y=e.y);const{sortedChildrenIndices:a,childAt:o}=this.sortChildren(t),r=a.every(N=>n[N].children.length===0),l=1,c=e.width-s.left-s.right,u=e.height-s.top-s.bottom;if(c<=0||u<=0)return;const d=a.length;let g=0,f=0,y=1/0,x=a.reduce((N,O)=>N+Fh(n[O]),0);const S=new Fg(e.x+s.left,e.y+s.top,c,u),D=S.clone();let A=0;for(;A({left:l.x,top:l.y,right:l.x+l.width,bottom:l.y+l.height}),a=s(t),o=s(e),r=["top","right","bottom","left"];for(const l of r)be(a[l],o[l])||e.shrink(n,l)}createNodeData(){}getItemStyle(t,e,i){const{properties:n,colorScale:s}=this,{itemStyler:a}=n,o=t.datumIndex?.[0]??0,r=e?n.fills:n.undocumentedGroupFills,l=e?n.strokes:n.undocumentedGroupStrokes,c=e?o:t.depth??-1,u=this.getActiveHighlightNode(),d=this.getHierarchyHighlightState(i,u,t),g=this.getGroupHighlightState(i,u,t),f=e?d:g,y=e?this.getTileHighlightStyle(d,g,u):this.getGroupHighlightStyle(g),x=Et(y,n.getStyle(e,r,l,c));e&&t.colorValue!=null&&y?.fill==null&&(x.fill=s.convert(t.colorValue));let S=x;if(a!=null&&t!=null){const D=this.cachedDatumCallback(ryt(this.getDatumId(t),i?"highlight":"node"),()=>{const A=this.makeItemStylerParams(t,S,$y(f));return this.callWithContext(a,A)});D&&(S=Et(D,S))}return S}makeItemStylerParams(t,e,i){const{id:n}=this,s=this.filterItemStylerFillParams(e.fill)??e.fill;return{seriesId:n,datum:t.datum,depth:t.depth??-1,highlightState:i,...e,fill:s}}updateSelections(){const t=this.getActiveHighlightNode();if(this.highlightSelection.update(t==null?[]:[t],void 0,s=>this.getDatumId(s)),!this.nodeDataRefresh)return;this.nodeDataRefresh=!1;const{seriesRect:e}=this.chart??{};if(!e)return;const i=Array.from(this.rootNode),n=s=>{s.append([new Ww({tag:0}),new Ww({tag:1})])};this.datumSelection.update(i,void 0,s=>this.getDatumId(s)),this.labelSelection.update(i,n,s=>this.getDatumId(s))}getActiveHighlightNode(){const t=super.getActiveHighlightNode();if(!(t?.children.length&&!this.properties.group.interactive))return t}updateNodes(){const{rootNode:t,data:e}=this,{childrenKey:i,colorKey:n,colorName:s,labelKey:a,secondaryLabelKey:o,sizeKey:r,sizeName:l,tile:c,group:u}=this.properties,{seriesRect:d}=this.chart??{};if(!d||!e)return;this.rootNode?.walk(A=>{const{datum:I,depth:w,children:N}=A,O=N.length===0,L=O?c.label:u.label;let R;if(L.enabled&&I!=null&&w!=null&&a!=null){const B=I[a];R=this.getLabelText(B,I,a,"label",[],L,{depth:w,datum:I,childrenKey:i,colorKey:n,colorName:s,labelKey:a,secondaryLabelKey:o,sizeKey:r,sizeName:l,value:B})}R===""&&(R=void 0);let P;if(c.secondaryLabel.enabled&&O&&I!=null&&w!=null&&o!=null){const B=I[o];P=this.getLabelText(B,I,o,"secondaryLabel",[],c.secondaryLabel,{depth:w,datum:I,childrenKey:i,colorKey:n,colorName:s,labelKey:a,secondaryLabelKey:o,sizeKey:r,sizeName:l,value:B})}P===""&&(P=void 0),A.labelValue=ce(R),A.secondaryLabelValue=ce(P)});const{width:g,height:f}=d;this.squarify(t,new Fg(0,0,g,f)),this.rootNode?.walk(A=>{const{bbox:I,children:w,labelValue:N,secondaryLabelValue:O}=A;if(A.label=void 0,A.secondaryLabel=void 0,I!=null)if(w.length===0){const L={width:I.width,height:I.height,meta:null},R=EO(N,this.properties.tile.label,O,this.properties.tile.secondaryLabel,{padding:c.padding},()=>L);if(R==null)return;const{height:P,label:B,secondaryLabel:F}=R,{textAlign:H,verticalAlign:$,padding:Y}=c,U=zH[H]??.5,V=I.x+Y+(I.width-2*Y)*U,Z=uyt[$]??.5,W=I.y+Y+P*.5+(I.height-2*Y-P)*Z;if(B!=null){const{fontStyle:q="normal",fontFamily:nt,fontWeight:G="normal",color:et="black"}=this.properties.tile.label;A.label={text:B.text,fontSize:B.fontSize,lineHeight:B.lineHeight,fontStyle:q,fontFamily:nt,fontWeight:G,color:et,textAlign:H,verticalAlign:"middle",x:V,y:W-(P-B.height)*.5}}if(F!=null){const{fontStyle:q="normal",fontFamily:nt,fontWeight:G="normal",color:et="black"}=this.properties.tile.secondaryLabel;A.secondaryLabel={text:F.text,fontSize:F.fontSize,lineHeight:F.fontSize,fontStyle:q,fontFamily:nt,fontWeight:G,color:et,textAlign:H,verticalAlign:"middle",x:V,y:W+(P-F.height)*.5}}}else{if(N==null)return;{const{padding:L,textAlign:R}=u,P=this.groupTitleHeight(A,I);if(P==null)return;const B=I.width-2*L,F=kc(N,{maxWidth:I.width-2*L,font:u.label,textWrap:"never"}),H=zH[R]??.5,{fontStyle:$="normal",fontFamily:Y,fontWeight:U="normal",color:V="black"}=this.properties.group.label;A.label={text:F,fontSize:u.label.fontSize,lineHeight:nr(u.label.fontSize),fontStyle:$,fontFamily:Y,fontWeight:U,color:V,textAlign:R,verticalAlign:"middle",x:I.x+L+B*H,y:I.y+L+P*.5}}}});const y={series:new Fg(0,0,g,f),axis:new Fg(0,0,g,f)},x=(A,I,w)=>{const{bbox:N}=A;if(N==null){I.visible=!1;return}const{depth:O=-1}=A,L=A.children.length===0,R=this.getItemStyle(A,L,w);I.crisp=!0,I.setStyleProperties(R,y),I.cornerRadius=L?c.cornerRadius:u.cornerRadius,I.zIndex=[0,O,w?1:0];const P=A.parent?.children.every(H=>H.children.length===0),B=A.parent==null?void 0:A.parent.bbox,F=A.parent==null?void 0:A.parent.padding;P===!0&&B!=null&&F!=null?(I.clipBBox=N,I.x=B.x+F.left,I.y=B.y+F.top,I.width=B.width-(F.left+F.right),I.height=B.height-(F.top+F.bottom)):(I.clipBBox=void 0,I.x=N.x,I.y=N.y,I.width=N.width,I.height=N.height),I.visible=!0};this.datumSelection.each((A,I)=>x(I,A,!1)),this.highlightSelection.each((A,I)=>{x(I,A,!0)});const S=(A,I,w,N)=>{const O=A.children.length===0,L=w===0?A.label:A.secondaryLabel;if(L==null){I.visible=!1;return}let R,P;w===0?(R=O?c.label:u.label,P=["series",`${this.declarationOrder}`,O?"tile":"group","label"]):(R=c.secondaryLabel,P=["series",`${this.declarationOrder}`,"tile","secondaryLabel"]);const{opacity:B}=this.getItemStyle(A,O,N)??{},F={childrenKey:this.properties.childrenKey,colorKey:this.properties.colorKey,colorName:this.properties.colorName??this.properties.colorKey,depth:A.depth??Number.NaN,labelKey:this.properties.labelKey,secondaryLabelKey:this.properties.secondaryLabelKey,sizeKey:this.properties.sizeKey,sizeName:this.properties.sizeName??this.properties.sizeKey},H=this.ctx.highlightManager?.getActiveHighlight(),$=cyt(this,A,F,R,N,H,P);I.text=L.text,I.fontSize=L.fontSize,I.lineHeight=L.lineHeight,I.fontStyle=L.fontStyle,I.fontFamily=L.fontFamily,I.fontWeight=L.fontWeight,I.fillOpacity=B??1,I.fill=$.color,I.setBoxing($),I.textAlign=L.textAlign,I.textBaseline=L.verticalAlign,I.x=L.x,I.y=L.y,I.visible=!0,I.zIndex=1},D=this.getActiveHighlightNode();for(const A of this.labelSelection.selectByClass(Ww)){const I=A.closestDatum();S(I,A,A.tag,I===D)}}getGroupHighlightState(t,e,i){const n=i.datumIndex,s=e?.datumIndex,a=this.isDescendantDatumIndex(n,s);if(i.children?.length===0)return n==null||e==null||e.children?.length===0?Sr.None:a?Sr.Item:Sr.OtherItem;if(e==null||e.children?.length===0)return Sr.None;const o=i.depth!=null&&e.depth!=null&&i.depth===e.depth;return a&&!o?Sr.None:t?Sr.Item:Sr.OtherItem}getTileHighlightStyle(t,e,i){if(i?.children&&i.children.length>0){const s=this.getGroupHighlightStyle(e);return s?.fillOpacity==null&&s?.strokeOpacity==null?void 0:{fillOpacity:s.fillOpacity,strokeOpacity:s.strokeOpacity}}return this.getHierarchyHighlightStyles(t,this.properties.tile.highlight)}getGroupHighlightStyle(t){const{highlight:e}=this.properties.group;switch(t){case Sr.Item:return e.highlightedItem;case Sr.OtherItem:return e.unhighlightedItem;default:return}}getHighlightStateString(t,e,i){if(i==null)return $y(Sr.None);const n=i.reduce((r,l)=>r?.children[l],this.rootNode),s=this.getActiveHighlightNode();if(n==null)return $y(Sr.None);if((n.children?.length??0)===0){const r=this.getHierarchyHighlightState(e??!1,s,n);return $y(r)}const o=this.getGroupHighlightState(e??!1,s,n);return $y(o)}isDescendantDatumIndex(t,e){if(e==null||e.length===0)return!0;if(t==null||t.lengthn.datumIndex.length-i.datumIndex.length),e}pickNodeClosestDatum(t){const e=this.pickNodesExactShape(t);return e.length!==0?{datum:e[0],distance:0}:this.pickNodeNearestDistantObject(t,this.datumSelection.nodes())}getTooltipContent(t){const{id:e,properties:i,ctx:n}=this,{formatManager:s}=n,{labelKey:a,secondaryLabelKey:o,childrenKey:r,sizeKey:l,sizeName:c,colorKey:u,colorName:d,tooltip:g}=i,f=t.reduce((P,B)=>P?.children[B],this.rootNode);if(f==null)return;const{datum:y,depth:x,children:S}=f;if(y==null||x==null)return;const D=S.length===0,A=[],I=l==null?void 0:y[l];if(I!=null){const P=[0,this.rootNode?.sumSize??0],B=s.format(this.callWithContext.bind(this),{type:"number",value:I,datum:y,seriesId:e,legendItemName:void 0,key:l,source:"tooltip",property:"size",boundSeries:this.getFormatterContext("size"),domain:P,fractionDigits:void 0,visibleDomain:void 0});A.push({label:c,fallbackLabel:l,value:B??Or(I)})}const w=u==null?void 0:y[u];if(w!=null){const{colorDomain:P}=this,B=s.format(this.callWithContext.bind(this),{type:"number",value:w,datum:y,seriesId:e,legendItemName:void 0,key:u,source:"tooltip",property:"color",boundSeries:this.getFormatterContext("color"),domain:P,fractionDigits:void 0,visibleDomain:void 0});A.push({label:d,fallbackLabel:u,value:B??Or(w)})}const N=this.getItemStyle({...f,colorValue:w??f.colorValue},D,!1),L={shape:"square",fill:N.fill,fillOpacity:1,stroke:void 0,strokeWidth:0,strokeOpacity:1,lineDash:[0],lineDashOffset:0};an(L.fill)&&(L.fill={...L.fill,gradient:"linear",rotation:0,reverse:!1});const R=D?{marker:L}:void 0;return this.formatTooltipWithContext(g,{title:a==null?void 0:y[a],symbol:R,data:A},{seriesId:e,datum:y,title:void 0,depth:x,labelKey:a,secondaryLabelKey:o,childrenKey:r,sizeKey:l,sizeName:c,colorKey:u,colorName:d,...N})}computeFocusBounds(t){return lyt.toCanvas(this.contentGroup,t.getBBox())}hasItemStylers(){return this.properties.itemStyler!=null||this.properties.tile.label.itemStyler!=null||this.properties.group.label.itemStyler!=null}};MY.className="TreemapSeries";MY.type="treemap";var{treemapSeriesThemeableOptionsDef:dyt}=j,DY={...dyt,...At(_e,["highlightStyle","highlight","showInLegend"]),type:ht(Jt("treemap"))};DY.undocumentedGroupFills=Mt(Ft(It));DY.undocumentedGroupStrokes=Mt(Ft(It));({...Oe},{...Oe,minimumFontSize:Cn.SMALLER},{...Oe,minimumFontSize:Cn.SMALLER});Cn.LARGE;Cn.SMALLER,Cn.SMALLER;var AY={chartType:dt("candlestick","hollow-candlestick","ohlc","line","step-line","hlc","high-low")};({...Re,...Zt.tooltip});Mt(X);AY.overrideDevicePixelRatio=Mt(X);AY.foreground=Mt(jt);var pyt={setLicenseKey(t){Jg.setLicenseKey(t)}};Jo.create.bind(Jo),Jo.__createSparkline.bind(Jo),Jg.setGridContext.bind(Jg),Jg.setLicenseKey.bind(Jg);Ut.setRegistryMode(Ut.RegistryMode.Enterprise);po.styles=Mst;po.licenseManager=t=>new Jg(t.container?.ownerDocument??(typeof document>"u"?void 0:document));po.injectWatermark=Sst;po.createBackground=t=>new iK(t);po.createForeground=t=>new mA(t);var gyt={ariaAnnounceChart:"图表,共有${seriesCount}[number]个系列",ariaAnnounceFlowProportionLink:"链接 ${index} 总共 ${count},从 ${from} 到 ${to}, ${sizeName} ${size}",ariaAnnounceFlowProportionNode:"节点 ${index} 之 ${count}, ${description}",ariaAnnounceGaugeChart:"仪表盘图表, ${caption}",ariaAnnounceHierarchyChart:"层次图表, ${caption}",ariaAnnounceHierarchyDatum:"级别 ${level}[number], ${count}[number] 子项, ${description}",ariaAnnounceHoverDatum:"${datum}",ariaAnnounceStandaloneChart:"图表, ${caption}",ariaDescriptionLegendItem:"按空格键或回车键切换可见性",ariaInitSeriesArea:"互动图表",ariaLabelAddHorizontalLine:"添加水平线",ariaLabelAnnotationOptionsToolbar:"注释选项",ariaLabelAnnotationSettingsDialog:"注释设置",ariaLabelAnnotationsToolbar:"标注",ariaLabelColor:"颜色",ariaLabelColorPicker:"颜色选择器",ariaLabelColorPickerAlpha:"透明度",ariaLabelColorPickerHue:"色相",ariaLabelColorPickerMultiColor:"多色",ariaLabelColorPickerPalette:"调色板",ariaLabelFinancialCharts:"财务图表",ariaLabelGaugeTarget:"目标",ariaLabelGaugeValue:"“值”",ariaLabelLegend:"图例",ariaLabelLegendItem:"${label}, 图例项 ${index}[number] / ${count}[number]",ariaLabelLegendItemUnknown:"未知图例项目",ariaLabelLegendPageNext:"下一页图例",ariaLabelLegendPagePrevious:"上一传奇页面",ariaLabelLegendPagination:"图例分页",ariaLabelNavigator:"导航器",ariaLabelNavigatorMaximum:"最大值",ariaLabelNavigatorMinimum:"最小值",ariaLabelNavigatorRange:"范围",ariaLabelRangesToolbar:"范围",ariaLabelScrollbarHorizontal:"X轴滚动条",ariaLabelScrollbarVertical:"Y轴滚动条",ariaLabelSettingsTabBar:"设置",ariaLabelZoomToolbar:"缩放",ariaRoleDescription2DSlider:"2D 滑块",ariaValueColorPalette:"s ${s}[percent0to2dp], v ${v}[percent0to2dp]",ariaValueColorPaletteFirstV:"“v ${v}[percent0to2dp], s ${s}[percent0to2dp]”",ariaValuePanRange:"${min}[percent0to2dp] 到 ${max}[percent0to2dp]",contextMenuDownload:"下载",contextMenuPanToCursor:"平移到此处",contextMenuResetZoom:"重置缩放",contextMenuToggleOtherSeries:"切换其他系列",contextMenuToggleSeriesVisibility:"切换可见性",contextMenuZoomToCursor:"缩放到此处",dialogHeaderChannel:"频道",dialogHeaderDatePriceRange:"日期和价格",dialogHeaderDateRange:"日期范围",dialogHeaderFibonacciRange:"斐波那契回撤",dialogHeaderLine:"线",dialogHeaderPriceRange:"价格范围",dialogHeaderText:"文字",dialogInputAlign:"对齐",dialogInputColorPicker:"颜色",dialogInputColorPickerAltText:"文字颜色",dialogInputExtendAbove:"扩展以上",dialogInputExtendBelow:"向下扩展",dialogInputExtendChannelEnd:"扩展通道终点",dialogInputExtendChannelStart:"延长通道开始",dialogInputExtendLeft:"向左延伸",dialogInputExtendLineEnd:"延长线端",dialogInputExtendLineStart:"延长线起点",dialogInputExtendRight:"向右延伸",dialogInputFibonacciBands:"波段",dialogInputFibonacciBandsAltText:"斐波那契波段",dialogInputFillColorPicker:"填充",dialogInputFillColorPickerAltText:"填充颜色",dialogInputFontSize:"大小",dialogInputFontSizeAltText:"字体大小",dialogInputLineStyle:"虚线",dialogInputPosition:"位置",dialogInputReverse:"反转",dialogInputShowFill:"显示填充",dialogInputStrokeWidth:"‘粗细’",dialogInputStrokeWidthAltText:"‘线条粗细’",iconAltTextAlignCenter:"居中",iconAltTextAlignLeft:"居左",iconAltTextAlignRight:"右对齐",iconAltTextClose:"‘关闭’",iconAltTextLineStyleDashed:"长虚线",iconAltTextLineStyleDotted:"短虚线",iconAltTextLineStyleSolid:"实线",iconAltTextPositionBottom:"底部",iconAltTextPositionCenter:"居中",iconAltTextPositionTop:"顶部",inputTextareaPlaceholder:"添加文字",measurerDateRangeBars:"${value}[number] 条",measurerPriceRangePercent:"${value}[percent]",measurerPriceRangeValue:"${value}[number]",measurerVolume:"体积 ${value}",overlayLoadingData:"正在加载数据...",overlayNoData:"没有数据显示",overlayNoVisibleSeries:"没有可见的系列",overlayUnsupportedBrowser:"不兼容的浏览器版本。请升级您的浏览器。",seriesHistogramTooltipCount:"${yName} (计数)",seriesHistogramTooltipFrequency:"频率",seriesHistogramTooltipMean:"${yName} (平均值)",seriesHistogramTooltipSum:"${yName} (总和)",toolbarAnnotationsArrow:"箭头",toolbarAnnotationsArrowDown:"箭头向下",toolbarAnnotationsArrowUp:"向上箭头",toolbarAnnotationsCallout:"标注",toolbarAnnotationsClearAll:"清除所有",toolbarAnnotationsComment:"评论",toolbarAnnotationsDatePriceRange:"日期和价格",toolbarAnnotationsDateRange:"日期范围",toolbarAnnotationsDelete:"删除",toolbarAnnotationsDisjointChannel:"独立通道",toolbarAnnotationsDragHandle:"“拖动工具栏”",toolbarAnnotationsFibonacciAnnotations:"斐波那契",toolbarAnnotationsFibonacciRetracement:"斐波那契回撤",toolbarAnnotationsFibonacciRetracementTrendBased:"基于趋势的斐波纳契",toolbarAnnotationsFillColor:"填充颜色",toolbarAnnotationsHorizontalLine:"水平线",toolbarAnnotationsLineAnnotations:"趋势线",toolbarAnnotationsLineColor:"线条颜色",toolbarAnnotationsLineStrokeWidth:"线条宽度",toolbarAnnotationsLineStyle:"线条样式",toolbarAnnotationsLock:"锁定",toolbarAnnotationsMeasurerAnnotations:"测量工具",toolbarAnnotationsNote:"注释",toolbarAnnotationsParallelChannel:"平行通道",toolbarAnnotationsPriceRange:"价格范围",toolbarAnnotationsQuickDatePriceRange:"测量",toolbarAnnotationsSettings:"设置",toolbarAnnotationsShapeAnnotations:"箭头",toolbarAnnotationsText:"文本",toolbarAnnotationsTextAnnotations:"文本标注",toolbarAnnotationsTextColor:"字体颜色",toolbarAnnotationsTextSize:"文字大小",toolbarAnnotationsTrendLine:"趋势线",toolbarAnnotationsUnlock:"解锁",toolbarAnnotationsVerticalLine:"垂直线",toolbarRange1Month:"1个月",toolbarRange1MonthAria:"1个月",toolbarRange1Year:"1年",toolbarRange1YearAria:"1年",toolbarRange3Months:"3个月",toolbarRange3MonthsAria:"3个月",toolbarRange6Months:"6月",toolbarRange6MonthsAria:"6个月",toolbarRangeAll:"全部",toolbarRangeAllAria:"全部",toolbarRangeSelectRange:"选择范围",toolbarRangeSelectRangeAria:"选择范围",toolbarRangeYearToDate:"年初至今",toolbarRangeYearToDateAria:"年初至今",toolbarSeriesTypeCandles:"蜡烛图",toolbarSeriesTypeDropdown:"图表类型",toolbarSeriesTypeHighLow:"高低",toolbarSeriesTypeHLC:"HLC",toolbarSeriesTypeHollowCandles:"空心蜡烛",toolbarSeriesTypeLine:"线",toolbarSeriesTypeLineWithMarkers:"带标记的折线图",toolbarSeriesTypeOHLC:"OHLC",toolbarSeriesTypeStepLine:"阶梯线",toolbarZoomPanEnd:"移至结尾",toolbarZoomPanLeft:"向左移动",toolbarZoomPanRight:"向右平移",toolbarZoomPanStart:"平移到开始位置",toolbarZoomReset:"重置缩放",toolbarZoomZoomIn:"放大",toolbarZoomZoomOut:"缩小",tooltipPaginationStatus:"${index}[number] / ${count}[number]"};pyt.setLicenseKey("[v3][RELEASE][0102]_NDg2Njc4MzY3MDgzNw==16d78ca762fb5d2ff740aed081e2af7b");Ut.registerModules([Cot,$K,FA,$ot]);const fyt="http://127.0.0.1:9089/api/v1",Kw=[{key:"minValue",label:"最低值",shortLabel:"低"},{key:"maxValue",label:"最高值",shortLabel:"高"},{key:"avgValue",label:"平均值",shortLabel:"均"},{key:"medianValue",label:"中位数",shortLabel:"中"},{key:"dataCount",label:"数据量",shortLabel:"量"}],Yw=[{key:"cost",label:"造价(元)"},{key:"buildingArea",label:"建筑面积指标(元/m²)"},{key:"builtArea",label:"建造面积指标(元/m²)"},{key:"usableArea",label:"使用面积指标(元/m²)"}],$w=[{key:"geoLocation",label:"自然地理区位"},{key:"facilityType",label:"设施类别"},{key:"constructionStage",label:"建设阶段"},{key:"planningForm",label:"规划形式"}];function myt(t){const e=t/1e4,i=Math.abs(e)<1?4:2;return`${e.toLocaleString("zh-CN",{minimumFractionDigits:0,maximumFractionDigits:i})}万`}function yyt(t){return{groupName:t.group_name||String(t.group_key??"未命名"),minValue:t.min_value??null,maxValue:t.max_value??null,avgValue:t.avg_value??null,medianValue:t.median_value??null,dataCount:t.data_count??null}}function IY(t,e,i){return t.map(n=>n.id===e?i(n):{...n,children:IY(n.children,e,i)})}function kY(t,e,i=0){return si.jsx("ul",{className:"content-tree-list",role:i===0?"tree":"group",children:t.map(n=>si.jsxs("li",{className:"content-tree-node",role:"treeitem","aria-expanded":n.hasChildren?n.expanded:void 0,children:[si.jsxs("button",{className:"content-tree-row",type:"button",style:{paddingLeft:8+i*18},onClick:()=>e(n.id),children:[si.jsx("span",{className:`content-tree-caret${n.hasChildren?"":" is-leaf"}`,children:n.hasChildren?n.expanded?"▾":"▸":""}),si.jsx("span",{className:"content-tree-label",children:n.label})]}),n.expanded&&n.children.length>0?kY(n.children,e,i+1):null]},n.id))})}function byt(){const t=Ei.useRef(null),e=Ei.useRef(null),[i,n]=Ei.useState("avgValue"),[s,a]=Ei.useState("cost"),[o,r]=Ei.useState("year"),[l,c]=Ei.useState(!1),[u,d]=Ei.useState(!1),[g,f]=Ei.useState("geoLocation"),[y,x]=Ei.useState({geoLocation:[],facilityType:[],constructionStage:[],planningForm:[]}),[S,D]=Ei.useState([]),[A,I]=Ei.useState(!0),[w,N]=Ei.useState(null),O=Kw.find(H=>H.key===i)??Kw[0],L=Yw.find(H=>H.key===s)??Yw[0],R=$w.find(H=>H.key===g)??$w[0],P=y[g],B=H=>{x($=>({...$,[g]:IY($[g],H,Y=>({...Y,expanded:Y.hasChildren?!Y.expanded:Y.expanded}))}))};Ei.useEffect(()=>{const H=new AbortController;async function $(){I(!0),N(null);try{const Y=new URLSearchParams({groupBy:o,metric:s}),U=await fetch(`${fyt}/zw/getBuildingFunctionCostStats?${Y.toString()}`,{signal:H.signal});if(!U.ok)throw new Error(`HTTP ${U.status}`);const V=await U.json();D((V.data??[]).map(yyt).slice(0,36))}catch(Y){if(H.signal.aborted)return;N(Y instanceof Error?Y.message:"接口请求失败"),D([])}finally{H.signal.aborted||I(!1)}}return $(),()=>{H.abort()}},[o,s]),Ei.useEffect(()=>{const H=e.current,$=t.current;if(!H||!$)return;const Y=()=>H.querySelector(".chart-fullscreen-button"),U=()=>H.querySelector(".ag-charts-myButton-statistic")?.closest(".ag-charts-toolbar__button"),V=()=>{const lt=Y();if(lt){let Dt=lt.querySelector(".ag-charts-myButton-fullScreen");Dt||(lt.innerHTML='',Dt=lt.querySelector(".ag-charts-myButton-fullScreen"));const kt=document.fullscreenElement===$;lt.classList.toggle("ag-charts-toolbar__button--active",kt),Dt?.classList.toggle("anticon-arrow-salt",!kt),Dt?.classList.toggle("anticon-shrink",kt)}const mt=U();mt&&mt.classList.add("chart-statistic-button")},Z=()=>{document.fullscreenElement===$?document.exitFullscreen():$.requestFullscreen()},W=lt=>{lt.key==="F11"&&(lt.preventDefault(),lt.stopPropagation(),Z())},q=()=>{V()},nt=lt=>{const Dt=lt.target?.closest(".chart-fullscreen-button, .chart-statistic-button");!Dt||!H.contains(Dt)||(lt.preventDefault(),lt.stopPropagation(),Dt.classList.contains("chart-statistic-button")?(d(!1),c(kt=>!kt)):Z())},G=lt=>{if(lt.key!==" "&<.key!=="Enter")return;const Dt=lt.target?.closest(".chart-fullscreen-button, .chart-statistic-button");!Dt||!H.contains(Dt)||(lt.preventDefault(),lt.stopPropagation(),Dt.classList.contains("chart-statistic-button")?(d(!1),c(kt=>!kt)):Z())},et=lt=>{lt.preventDefault()},st=new MutationObserver(V);return document.addEventListener("keydown",W,!0),document.addEventListener("fullscreenchange",q),document.addEventListener("contextmenu",et),H.addEventListener("contextmenu",et),H.addEventListener("click",nt,!0),H.addEventListener("keydown",G,!0),st.observe(H,{childList:!0,subtree:!0}),V(),()=>{document.removeEventListener("keydown",W,!0),document.removeEventListener("fullscreenchange",q),document.removeEventListener("contextmenu",et),H.removeEventListener("contextmenu",et),H.removeEventListener("click",nt,!0),H.removeEventListener("keydown",G,!0),st.disconnect()}},[]);const F=Ei.useMemo(()=>{const H=i==="dataCount",$=S.map(Y=>({groupName:Y.groupName,amount:Y[i]}));return{theme:{palette:{fills:["#006f9b","#ff7faa","#00994d","#ff8833","#00a0dd"],strokes:["#003f58","#934962","#004a25","#914d1d","#006288"]},params:{foregroundColor:"#262a33",backgroundColor:"#fff1e5",accentColor:"#0d7680",fontFamily:'"Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif',fontSize:14,tooltipBackgroundColor:"#fff7ef",tooltipTextColor:"#262a33"}},locale:{localeText:gyt},background:{fill:"transparent"},padding:{top:16,right:16,bottom:18,left:24},data:$,zoom:{enabled:!0,anchorPointX:"pointer",anchorPointY:"pointer",buttons:{enabled:!0,visible:"hover",buttons:[{icon:"zoom-out",value:"zoom-out",section:"zoom",tooltip:"缩小"},{icon:"zoom-in",value:"zoom-in",section:"zoom",tooltip:"放大"},{icon:"pan-left",value:"pan-left",section:"pan",tooltip:"左移"},{icon:"pan-right",value:"pan-right",section:"pan",tooltip:"右移"},{icon:"reset",value:"reset",section:"reset",tooltip:"重置"}]}},contextMenu:{enabled:!0,items:["defaults"]},annotations:{enabled:!0,toolbar:{buttons:[{value:"statistic-select",tooltip:"切换统计指标",label:`${O.shortLabel}`},{icon:"trend-line-drawing",value:"line-menu",tooltip:"Line Tool"},{icon:"text-annotation",value:"text-menu",tooltip:"Text Tool"},{icon:"arrow-drawing",value:"shape-menu",tooltip:"Shape Tool"},{icon:"fibonacci-retracement-drawing",value:"fibonacci-menu",tooltip:"Fibonacci Tool"},{icon:"delete",value:"clear",tooltip:"Clear annotations"}]}},series:[{type:"line",xKey:"groupName",yKey:"amount",yName:`${L.label} ${O.label}`,stroke:"#0078a8",strokeWidth:2,marker:{enabled:!0,fill:"#0078a8",stroke:"#0078a8",size:5},interpolation:{type:"smooth"}}],axes:{x:{type:"category",position:"bottom",line:{enabled:!0,stroke:"#c8b9a7"},tick:{enabled:!1},label:{color:"#1f2933",fontSize:12},crosshair:{snap:!1}},y:{type:"number",position:"left",title:{text:""},label:{color:"#1f2933",fontSize:12,formatter:({value:Y})=>H?Number(Y).toLocaleString("zh-CN",{minimumFractionDigits:0,maximumFractionDigits:0}):myt(Number(Y))},line:{enabled:!1},tick:{enabled:!1},gridLine:{enabled:!0,style:[{stroke:"#e5d9ca",lineDash:[0]}]},crosshair:{snap:!1}}},legend:{enabled:!1},tooltip:{enabled:!0}}},[S,L.label,O.label,i]);return si.jsxs("main",{className:"dashboard-shell",children:[si.jsx("div",{className:"watermark-layer","aria-hidden":"true",children:Array.from({length:18}).map((H,$)=>si.jsx("span",{children:"众为数字化管理平台"},$))}),si.jsxs("section",{className:"workspace","aria-label":"年度费用模板",ref:t,children:[si.jsx("section",{className:"chart-area","aria-label":"年度总费用图表",children:si.jsxs("div",{className:"chart-frame",ref:e,children:[l?si.jsx("div",{className:"statistic-switcher-menu",role:"menu","aria-label":"切换统计指标",children:Kw.map(H=>si.jsx("button",{className:"statistic-switcher-menu-item",type:"button",role:"menuitem","aria-current":H.key===i,onClick:()=>{n(H.key),c(!1)},children:H.label},H.key))}):null,si.jsxs("div",{className:"metric-switcher",children:[si.jsx("button",{className:"metric-switcher-button",type:"button",title:"切换纵坐标指标","aria-expanded":u,"aria-haspopup":"menu","aria-label":`纵坐标:${L.label}`,onClick:()=>{c(!1),d(H=>!H)},children:L.label}),u?si.jsx("div",{className:"metric-switcher-menu",role:"menu","aria-label":"切换纵坐标指标",children:Yw.map(H=>si.jsx("button",{className:"metric-switcher-menu-item",type:"button",role:"menuitem","aria-current":H.key===s,onClick:()=>{a(H.key),d(!1)},children:H.label},H.key))}):null]}),A||w?si.jsx("div",{className:"chart-status",children:A?"加载中":w}):null,si.jsx("button",{className:"chart-fullscreen-button ag-charts-toolbar__button",type:"button",title:"全屏(F11)",children:si.jsx("i",{className:"anticon anticon-arrow-salt ag-charts-myButton-fullScreen ag-charts-diy-button"})}),si.jsx(yst,{options:F})]})}),si.jsxs("aside",{className:"right-panel","aria-label":"选择内容",children:[si.jsx("div",{className:"content-tabs",role:"tablist","aria-label":"选择内容切换项",children:$w.map(H=>si.jsx("button",{className:"content-tab",type:"button",role:"tab","aria-selected":H.key===g,onClick:()=>f(H.key),children:H.label},H.key))}),si.jsxs("div",{className:"content-tree-panel",children:[si.jsx("div",{className:"content-tree-title",children:R.label}),P.length>0?kY(P,B):si.jsx("div",{className:"content-tree-empty",children:"接口待接入"})]})]})]})]})}Ut.registerModules([hst]);tX.createRoot(document.getElementById("root")).render(si.jsx(Ei.StrictMode,{children:si.jsx(byt,{})})); diff --git a/zbChart/assets/index-hvfQ0T_3.css b/zbChart/assets/index-hvfQ0T_3.css new file mode 100644 index 0000000..ea43996 --- /dev/null +++ b/zbChart/assets/index-hvfQ0T_3.css @@ -0,0 +1 @@ +:root{color:#161616;background:#f5e8d8;font-family:Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}button{font:inherit}.wea-right-menu-show,.wea-right-menu{display:none!important}.dashboard-shell{position:relative;min-height:100vh;background:#f5e8d8;overflow:hidden}.watermark-layer{position:absolute;inset:-30px;z-index:0;display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));grid-auto-rows:128px;align-items:center;pointer-events:none;color:#968c8033;font-size:16px;letter-spacing:0;transform:rotate(-18deg)}.watermark-layer span{display:block;white-space:nowrap}.workspace{position:relative;z-index:1;display:grid;grid-template-columns:minmax(540px,52vw) 1fr;gap:28px;height:100vh;padding:8px 28px 18px 64px}.chart-area{display:grid;grid-template-rows:minmax(0,1fr);min-width:0}.chart-title{display:flex;align-items:center;justify-content:center;gap:6px}.chart-title h1{margin:0;font-size:16px;font-weight:500;letter-spacing:0;line-height:1}.chart-title button{display:grid;width:18px;height:18px;place-items:center;padding:0;border:1px solid rgba(95,88,80,.18);border-radius:2px;color:#6d6258;background:#fff9f15c;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.chart-title button:hover{border-color:#0078a85c;color:#0078a8;background:#fffcf8f0;box-shadow:0 1px 5px #4536241f}.chart-title button:active{transform:translateY(1px)}.chart-title button:focus-visible{outline:2px solid rgba(0,120,168,.34);outline-offset:2px}.chart-title button span{position:relative;width:11px;height:11px}.chart-title button span:before{position:absolute;top:5px;left:1px;width:10px;height:1px;background:currentColor;transform:rotate(-35deg);content:""}.chart-title button span:after{position:absolute;right:1px;bottom:1px;width:4px;height:1px;background:currentColor;content:""}.chart-frame{position:relative;min-width:0;min-height:0;padding:26px 0 0}.workspace:fullscreen{position:relative;z-index:10;display:grid;grid-template-columns:minmax(540px,52vw) 1fr;gap:28px;width:100vw;height:100vh;padding:8px 28px 18px 64px;background:#f5e8d8}.workspace:fullscreen .chart-area{height:calc(100vh - 26px)}.workspace:fullscreen .right-panel{display:block;min-width:0;height:100%}.chart-frame>div{height:100%}.chart-frame>.statistic-switcher-menu,.chart-frame>.chart-status{height:auto}.chart-frame .ag-charts-wrapper{--ag-charts-accent-color: #0078a8;--ag-charts-button-background-color: rgba(255, 249, 241, .72);--ag-charts-button-border-radius: 3px;--ag-charts-border-color: rgba(90, 82, 72, .22);--ag-charts-chrome-background-color: rgba(255, 249, 241, .84)}.chart-frame .ag-charts-toolbar{gap:8px;padding:0;background:transparent;border:0;box-shadow:none}.chart-frame .ag-charts-annotations__toolbar{left:-46px;top:24px;overflow:visible!important}.chart-frame .ag-charts-annotations__toolbar .ag-charts-toolbar{overflow:visible!important}.statistic-switcher-menu{position:absolute;left:70px;top:24px;z-index:14;width:max-content;min-width:86px;padding:4px 0;border:1px solid rgba(90,82,72,.22);border-radius:3px;background:#fbede1;box-shadow:0 4px 14px #45362424}.statistic-switcher-menu-item{display:block;width:100%;min-height:30px;padding:0 12px;border:0;color:#262a33;background:transparent;font-size:13px;line-height:30px;text-align:left;white-space:nowrap;cursor:pointer}.statistic-switcher-menu-item:hover,.statistic-switcher-menu-item[aria-current=true]{color:#0078a8;background:#fffcf8f0}.metric-switcher{position:absolute;left:74px;top:272px;z-index:12}.metric-switcher-button{display:block;width:22px;min-height:112px;padding:8px 2px;border:1px solid rgba(90,82,72,.16);border-radius:3px;color:#111827;background:#fff1e5ad;font-size:12px;letter-spacing:2px;line-height:1.25;text-align:center;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease;writing-mode:vertical-rl;text-orientation:upright}.metric-switcher-button:hover,.metric-switcher-button[aria-expanded=true]{color:#0078a8;border-color:#0078a85c;background:#fffcf8f0;box-shadow:0 1px 5px #4536241f}.metric-switcher-menu{position:absolute;left:30px;top:8px;width:max-content;min-width:196px;padding:4px 0;border:1px solid rgba(90,82,72,.22);border-radius:3px;background:#fbede1;box-shadow:0 4px 14px #45362424}.metric-switcher-menu-item{display:block;width:100%;min-height:30px;padding:0 12px;border:0;color:#262a33;background:transparent;font-size:13px;line-height:30px;text-align:left;white-space:nowrap;cursor:pointer}.metric-switcher-menu-item:hover,.metric-switcher-menu-item[aria-current=true]{color:#0078a8;background:#fffcf8f0}.chart-status{position:absolute;top:62px;left:74px;z-index:11;padding:4px 8px;border:1px solid rgba(90,82,72,.16);border-radius:3px;color:#262a33;background:#fffcf8f0;font-size:12px;line-height:18px}.chart-frame .chart-fullscreen-button{position:absolute;left:24px;top:252px;z-index:9;display:grid;width:34px;height:34px;min-width:34px;min-height:34px;place-items:center;padding:0;border:1px solid rgba(90,82,72,.22);border-radius:3px;color:#46413b;background:#fff9f1b8;box-shadow:none}.chart-frame .ag-charts-toolbar__button[title="Clear annotations"]{transform:translateY(42px)}.chart-frame .ag-charts-zoom-buttons{inset:auto 24px 34px auto!important;width:auto!important;height:auto!important;z-index:8;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .14s ease,transform .14s ease}.chart-frame:hover .ag-charts-zoom-buttons,.chart-frame:focus-within .ag-charts-zoom-buttons,.chart-frame .ag-charts-zoom-buttons:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.chart-frame .ag-charts-zoom-buttons .ag-charts-toolbar{position:relative!important;z-index:9;gap:0;padding:0;border:0;border-radius:3px;background:transparent;box-shadow:none}.chart-frame .ag-charts-toolbar__button{width:26px;height:26px;color:#46413b;border-color:#5a524838;background:#fff9f1b8;cursor:pointer}.chart-frame .ag-charts-zoom-buttons .ag-charts-toolbar__button{width:26px;height:26px;min-width:26px;min-height:26px;padding:3px;background:#fff9f1b8}.chart-frame .ag-charts-toolbar__button:hover,.chart-frame .ag-charts-toolbar__button--active{color:#0078a8;border-color:#0078a85c;background:#fffcf8f0;box-shadow:0 1px 5px #4536241f}.chart-frame .ag-charts-myButton-fullScreen{position:relative;display:block;width:16px;height:16px}.chart-frame .ag-charts-myButton-fullScreen:before,.chart-frame .ag-charts-myButton-fullScreen:after{position:absolute;inset:0;display:block;width:16px;height:16px;content:""}.chart-frame .anticon-arrow-salt:before{border-top:1px solid currentColor;border-right:1px solid currentColor;clip-path:polygon(54% 0,100% 0,100% 46%,86% 46%,86% 14%,54% 14%)}.chart-frame .anticon-arrow-salt:after{border-bottom:1px solid currentColor;border-left:1px solid currentColor;clip-path:polygon(0 54%,14% 54%,14% 86%,46% 86%,46% 100%,0 100%)}.chart-frame .anticon-shrink:before{top:2px;left:2px;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor}.chart-frame .anticon-shrink:after{inset:auto 2px 2px auto;width:6px;height:6px;border-top:1px solid currentColor;border-left:1px solid currentColor}.chart-frame .ag-charts-toolbar__button:disabled{cursor:not-allowed;opacity:.38}.chart-frame .ag-charts-toolbar__button[aria-disabled=true]{cursor:not-allowed;opacity:.38}.right-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;height:100%;padding-top:24px}.content-tabs{display:flex;align-items:center;gap:6px;min-width:0;padding-bottom:12px}.content-tab{height:28px;padding:0 10px;border:1px solid rgba(90,82,72,.18);border-radius:3px;color:#46413b;background:#fff9f19e;font-size:12px;line-height:26px;white-space:nowrap;cursor:pointer}.content-tab:hover,.content-tab[aria-selected=true]{color:#0078a8;border-color:#0078a85c;background:#fffcf8f0;box-shadow:0 1px 5px #4536241f}.content-tree-panel{min-width:0;min-height:0;overflow:auto;padding:10px 0;border-top:1px solid rgba(90,82,72,.14)}.content-tree-title{margin-bottom:8px;color:#262a33;font-size:13px;font-weight:600;line-height:20px}.content-tree-list{margin:0;padding:0;list-style:none}.content-tree-node{margin:0;padding:0}.content-tree-row{display:flex;align-items:center;width:100%;min-height:30px;border:0;border-radius:3px;color:#262a33;background:transparent;font-size:13px;line-height:30px;text-align:left;cursor:pointer}.content-tree-row:hover{color:#0078a8;background:#fffcf8bd}.content-tree-caret{display:inline-grid;width:18px;height:18px;place-items:center;flex:0 0 18px;color:#6f665e;font-size:12px}.content-tree-caret.is-leaf{color:transparent}.content-tree-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-tree-empty{padding:16px 0;color:#7a7067;font-size:13px;line-height:20px}@media(max-width:900px){body{overflow:auto}.workspace{grid-template-columns:1fr;height:auto;min-height:100vh;padding:8px 18px 18px 56px}.chart-area{min-height:520px}.right-panel{min-height:280px}.content-tabs{flex-wrap:wrap}} diff --git a/zbChart/index.html b/zbChart/index.html new file mode 100644 index 0000000..4c874a9 --- /dev/null +++ b/zbChart/index.html @@ -0,0 +1,13 @@ + + + + + + AG Chart Service + + + + +
+ +